
ros系统
文章平均质量分 91
永望
这个作者很懒,什么都没留下…
展开
-
ros的init机制续篇
这篇博客主要探讨init的实现过程ros::init(argc, argv, "add_two_ints_client")实现代码在init.cpp文件,这里直接给出来/* * Software License Agreement (BSD License) * * Copyright (c) 2009, Willow Garage, Inc. * All rights reserved. * * Redistribution and use in source and binar原创 2022-05-27 23:45:31 · 491 阅读 · 0 评论 -
ros的init机制
动机:这篇博客主要关注一个问题:ros系统中init()的运行过程是怎么样的?调用这个函数后会生成哪些东西或者说系统开辟了哪些服务线程?语句: ros::init(argc, argv, "add_two_ints_client");note:这条语句来源于ros的Wiki教程,链接完整的程序端如下:/* * Copyright (C) 2008, Morgan Quigley and Willow Garage, Inc. * * Redistribution and use in sou原创 2022-05-23 23:40:42 · 2023 阅读 · 0 评论 -
C++容器之基于哈希表实现的unordered_set
1. 基本概念unordered_set是无序数据集,也就是没有以特别的顺序存储数据。这个是基于哈希表实现的数据容器。哈希表本质上是一个数组,与常见的数组不同的是,哈希表中存放的值是键值对。键值对就是可以根据一个键值获取对应的一个值。而对于键值,百度百科的解释是“键值(key)是windows中注册表中的概念。键值位于注册表结构链末端,和文件系统的文件类似,包含当前计算机及应用程序执行时使用的实际配置信息和数据。键值包含几种数据类型,以适应不同环境的使用需求。”通过一个键值获取对应的一个值,这个有点类似高原创 2022-05-23 22:08:33 · 692 阅读 · 0 评论 -
Ubuntu16.04使用Hokuyo-UTM30-lx激光雷达
环境:Ubuntu系统版本:16.04采用的方法:源码安装系列包一、下载系列包:1、下载urg_c包https://github.com/ros-drivers/urg_c2、下载laser_proc包https://github.com/ros-perception/laser_proc/tree/hydro-devel3、下载urg_node包git clone https://github.com/ncnynl/urg_node.git4、下载turtlebot_apps包git原创 2020-11-06 09:58:37 · 906 阅读 · 0 评论 -
Ubuntu serial库使用
1、安装:sudo apt-get install ros-kinetic-serial2、库的详细介绍:http://docs.ros.org/en/kinetic/api/serial/html/classserial_1_1Serial.html#afa2c1f9114a37b7d140fc2292d1499b9原创 2020-10-27 10:46:18 · 4909 阅读 · 0 评论 -
laser_geometry.h
原创 2019-10-29 21:54:40 · 676 阅读 · 0 评论 -
Sensor_msgs/range
原创 2019-10-29 20:46:35 · 1639 阅读 · 0 评论 -
gazebo仿真之传感器噪声
详细的官网教程:http://gazebosim.org/tutorials?tut=sensor_noise&cat=sensors这里汇总三种传感器添加噪声的方法以便到时查找:Ray:<?xml version="1.0" ?><sdf version="1.6"> <model name="hokuyo"> <link n...原创 2019-08-25 11:22:06 · 955 阅读 · 0 评论 -
urdf机器人robot建模语言学习
《一》语言格式 1 <robot name="pr2"> 2 <!-- pr2 robot links and joints and more --> 3 </robot>来源:http://www.guyuehome.com/372的例子如下:《二》基本属性link、joint、origin(大小)、axis等《三》基本工具...原创 2019-08-21 15:38:27 · 348 阅读 · 0 评论 -
仿真之sensor的模型描述
官网教程:http://wiki.ros.org/urdf/XML/sensor官网两个实例:camera和ray描述的内容:(1)name(必须):传感器本身的名字(2)type(必须):传感器的类型,官网的描述是:The type of the sensor as camera, ray, imu, magnetometer, gps, force_torque, contact,...原创 2019-08-21 16:08:05 · 609 阅读 · 0 评论 -
仿真之link模块描述
官网:http://wiki.ros.org/urdf/XML/link官网实例:基本组成部分:原创 2019-08-21 16:19:51 · 337 阅读 · 0 评论 -
gazebo仿真之Velodyne
学习的内容:(1)创建HDL-32传感器的SDF文件模型(2)将创建的模型应用到gazebo的模型库(3)实现模型的显示和输出(4)使用插件控制模型(5)在gazebo和RViz中可视化模型《一》模型的创建模型:(1)a base cylinder and top cylinder, where the top cylinder spins, and(2)a set of las...原创 2019-08-22 15:19:22 · 2722 阅读 · 0 评论 -
gazebo仿真之Model Appearance
这部分的内容是如何将模型进行外观的优化显示。官网教程:http://gazebosim.org/tutorials?cat=guided_i&tut=guided_i2两个工具:freecad和blender,需要提前下载对于Model Appearance:官网的介绍:Models with textures and 3D meshes can improve your visual...原创 2019-08-22 17:41:45 · 490 阅读 · 0 评论 -
gazebo仿真系列之plugin三
官方教程:http://gazebosim.org/tutorials?tut=plugins_world&cat=write_plugin本系列关注的 是如何在仿真的过程中加入已经生成好的模型,就是仿真实际情况下物体出现的随机性。仿真无人机在实际过程中遇到 突然出现的障碍物的反应和路径规划等。《一》模型的插入方法模型有三种方法在plugin中插入到仿真环境:其一:利用gazebo...原创 2019-08-25 09:28:38 · 1030 阅读 · 3 评论 -
gazebo仿真之plugin系列二
官网教程:http://gazebosim.org/tutorials?tut=plugins_model&cat=write_plugin系列二主要关注点在于modelPlugin在模型中插入plugin是能够控制模型的运行,模型的性质的体现。给一些元素在特性,比如速度等。官方的例程:model_push.cc文件#include <functional>#inc...原创 2019-08-25 08:56:32 · 1323 阅读 · 0 评论 -
ros系统学习之Catkin编译系统
《一》基本概述(1)一个可执行程序的生成:源代码的编译和链接(2)Catkin集成了Cmake和make的功能,一条命令就可以将源代码生成可执行程序。(3)Catkin的工作过程:(4)ros存在两种编译系统:rosbuild和Catkin,但rosbuild逐步被淘汰掉。(5)Catkin是对包进行操作的。《二》Catkin工作条件两个不可缺少的文件:描述包的xml文件:pack...原创 2019-08-15 09:15:12 · 1286 阅读 · 0 评论 -
ros系统学习之catkin工作空间
《一》空间创建和初始化catkin_ws:可修改成自己的,但src不能变《二》空间结构原创 2019-08-15 09:25:59 · 206 阅读 · 0 评论 -
ros系统学习之package软件包
《一》概述(1)软件包:二进制包和源代码包(2)包是Catkin编译系统的单元,源代码应该保存在package中。《二》package结构必不可少文件:CmakeLists.txt和package,xmlC++ 程序:src/ 、include/《三》package的创建...原创 2019-08-15 09:47:15 · 205 阅读 · 0 评论 -
无人机仿真之间与ros通信
官网教程:http://gazebosim.org/tutorials?cat=guided_i&tut=guided_i6《一》ros通信的意义在利用gazebo仿真时。我们可以利用gazebo的通信机制进行创建节点和发布消息。但是这只是在仿真平台实现。如果想要实际使用,就需要利用ros系统的通信机制对模型进行控制。这一节内容就是如果在plugin中加入ros系统的节点,利用ros系...原创 2019-08-24 09:04:30 · 1188 阅读 · 0 评论 -
无人机学习之gazebo仿真文件
《一》仿真文件SDF文件、xacro文件(gazebo可以显示)、urdf文件(在rviz显示)。三个文件都可以加载dae等三位模型文件。《二》model模型文件database.config数据坤的元数据xxx.config模型的元数据xxx.sdf模型的SDF文件描述plugin文件夹《三》模型的.config 的内容name:名字version:版本sdf:描述模型的SD...原创 2019-08-20 14:33:40 · 3191 阅读 · 0 评论 -
gazebo仿真之plugin系列一
官网教程:http://gazebosim.org/tutorials?tut=plugins_hello_world&cat=write_plugin本次内容涉及五个方面:plugin的基本介绍与简单实现、模型的plugin、world plugin、Programma world control 和 System Plugin##plugin的意义在于提供一种手段帮助我们控制模型、...原创 2019-08-24 11:25:31 · 1473 阅读 · 0 评论 -
Cmake学习之基本
一个简单的程序:PROJECT (HELLO)SET(SRC_LIST main.c)MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})MESSAGE(STATUS "This is SOURCE dir "${HELLO_SOURCE_DIR})ADD_EXECUTABLE(hello ${SRC_LIST})(1)P...原创 2019-08-15 14:05:07 · 174 阅读 · 0 评论 -
Cmake学习之静态库与动态库的构建
学习的任务:1,建立一个静态库和动态库,提供 HelloFunc 函数供其他程序编程使用,HelloFunc向终端输出 Hello World 字符串。2,安装头文件与共享库。将一个函数链接成库供其他程序去使用实现既定的功能。必备:头文件、源代码文件生成共享库的指令:ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC})hello是生成共享库的名字,系统会...原创 2019-08-15 15:07:51 · 299 阅读 · 0 评论 -
CMake学习之使用共享库和头文件
**(1)引入头文件搜索路径**INCLUDE_DIRECTORIES([AFTER|BEFORE] [SYSTEM] dir1 dir2 …)这条指令可以用来向工程添加多个特定的头文件搜索路径,路径之间用空格分割,如果路径中包含了空格,可以使用双引号将它括起来,默认的行为是追加到当前的头文件搜索路径的后面INCLUDE_DIRECTORIES(/usr/include/hello)...原创 2019-08-15 15:20:16 · 1173 阅读 · 0 评论 -
Cmake学习之常用指令
(1)ADD_DEFINITIONS向 C/C++编译器添加-D 定义,比如:ADD_DEFINITIONS(-DENABLE_DEBUG -DABC)(2)ADD_DEPENDENCIES定义 target 依赖的其他 target:ADD_DEPENDENCIES(target-name depend-target1: depend-target2 ...)(3)ADD_EXEC...原创 2019-08-15 15:50:18 · 219 阅读 · 0 评论 -
ros系统之package.xml编写
以版本2编写:包含的内容:模板: <?xml version="1.0"?> <!-- 1.0根据实际修改--> <package format="2"> <name>package name</name> <!--package name 根据实际的包进行修改 --> <version>...原创 2019-08-15 16:40:19 · 754 阅读 · 0 评论 -
无人机学习之launch文件的学习
(1)ros系统launch文件出现的原因:一个功能的实现包括比较多的节点的运行,并且每个节点的启动是有顺序要求的。一步一步的启动一个个节点明显不是最佳的选择,为此出现了lunch文件的批量化操作。launch文件实际上是启动master和node,并且编写launch文件时已经制定好启动的规则、启动的过程控制。(2)文件:×.launch(3)运行的命令:roslaunch launch文...原创 2019-08-20 10:43:35 · 443 阅读 · 0 评论