自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 ROS参数服务器深度解剖(二)

ROS参数服务器中使用的命令rosparam 命令行工具:rosparam 命令参数选项有(set, get, load, dump, delete, list),其中load, dump, delete选项同时可在luanch文件运行有效, 向set,get,load,list 选项应用前提是ros参数服务器中有参数,否则不能使用,当然参数一定要加上命名空间,下面是详解:set:假设节点有一个PI参数,参数默认值为3.14,那么运行节点PI的初始值是3.14,当执行rosparam set /no

2021-05-18 23:43:43 597

原创 ROS参数服务器,深度解剖(一)

在ROS系统中参数服务器是一个很重要的功能,我们给程序传递初始化参数,可以通过运行节点时命令行传递,也可以通过配置文件传递,配置文件传递又分成几种,第一种:绕开ROS,直接用C++代码以读文件的方式读取参数;第二种:使用ros参数服务器中读取文件参数传递给程序,包括launch文件,xml文件,yaml文件。yaml也可使用读取yaml库去读取参数.**从命令行读取参数: *最简单的就是通过main函数传递参数,然后在读取再从main函数参数中读取参数,通过main函数传递参数又分两种:rosrun

2021-05-16 23:27:41 209

原创 ROS 命名空间,名称

基本概念如果不同包内含有相同的节点,不同的节点发布同名的话题会不会产生二义性?答案是会。从编译的角度讲,同名的节点指的是生成同样节点名的可执行程序,而从运行的角度讲,只要ros::init(“node_name”) 函数内的node_name相同就是同名的节点,不管运行程序的名字叫什么,都视为同名的节点,当同一个节点在没终止前,再一次运行它,与同名的两个节点同时运行时,两种情况都会异常退出。不同节点发布同名的话题,两个节点能正常运行,但是使用命令rostopic list查看是,列表中只会有一个top

2021-05-15 22:56:40 524

原创 launch 文件以及相关操作

单独运行一个节点我们可以用这样运行 rosrun pkg_name node_name […][…]内部是可省略的参数,和一般C++程序一样,参数可以通过终端传递。需要注意的是参数个数从可执行程序名算起往后数,这可执行程序名node_name在main函数参数内argv是argv[0]的位置,以此往后推。rosrun 命令虽然简单,但是需要运行多节点和传递多个参数时就比较麻烦。roslaunch 命令就很好的解决了这个问题。launch文件遵循xml格式规范,即便使用.xml后缀封装一样可以使用,使用标

2021-05-14 22:10:49 207

原创 ROS构建系统

前面简单的提到catkin是基于cmake构建系统的基础上封装的,所以cmake对CMakeLists.txt的相关配置,在catkin上面依然能使用,但是catkin 构建系统需要CMakeLists.txt和package.xml一起使用,package.xml文件作用是描述功能包的属性,配合CMakeLists.txt一起使用,package.xml文件里面依赖不存在,或者配置出错。catkin 不会去编译这功能包(官方说法是可能在本机上可以使用),如果关键标签数值错了,也是无法编译的。当我们执行c.

2021-05-14 21:46:16 117

原创 ROS action通信

Action通信与服务通信一样也是双向通信,最主要的不同的是action通信可以在任务没结束前可以有很多中间状态的过程反馈,同时服务器上的服务同一时刻只能处理一个请求,因此先收到goal有可能被后来的goal给挤掉,所以异步竞争会有状态的转变。ROS把action通信都放在actionlib这个库中了。action文件有三个区域组成:goal,result,feedback. goal部分由客户端发送目标任务的数值,result与feedback由服务器端反馈给客户端。以上是通信需求的应用,除此之外伴随着

2021-05-14 21:41:18 191

原创 ROS服务

服务服务-是客户端和服务器端请求和反馈的过程,客户端请求发送给服务器服务器就反馈给客户端,一旦服务器出现问题,客户端连接失败会得到出错的信息。服务的创建过程与消息类似,因此这里只讲不同点,服务文件的后缀名是srv,文件内把请求数据字段和服务器返回数据字段通过一行“—”隔开,然后功能包里面的CMakeLists.txt文件里面对应的 add_service_files()注释打开,添加对应的服务文件名即可。服务与消息差别:1.消息通过话题发布消息时,不需要理会有没有订阅者,同样,订阅者订阅话题,不需要

2021-05-12 23:43:28 2938

原创 ROS 消息

ROS消息可以是ROS系统自带消息,也可以是自定义消息。使用ROS系统自带消息,可以先用命令rosmsg show 找出想要消息,然后再把消息功能包名添加到CMakeLists.txt文件中的find_package选项里,这样就可以在节点中使用了。比如消息包std_msgs,用命令行rosmsg show std_msgs Tab键补齐后,可以看到很多数据类型,上一节中使用的std_msgs::String 就是std_msgs包里面的一种。自定义消息功能包:消息功能包也是功能包的一种,因此与创建功能

2021-05-11 22:58:12 235

原创 话题发布者与订阅者

写发布和订阅代码前都需要一个节点处理。写节点发布消息代码前需要注意三个关键点:发布消息的话题名称,发布消息数据的类型,发布消息数据的频率,发布消息队列的大小以及发布消息的发布器。写节点订阅话题代码前也需要注意几个关键点:接受消息的话题名称,接受消息的回调函数,接受消息的队列大小,接受消息的接收器。一个节点既可以是发布者也可以是订阅者,主要是看数据流向来区分什么时候以何种身份讨论。注意:在一个运行空间里面话题名称是唯一的存在的,比如说一个节点发布了名叫“topic_name”的话题,其他节点就不能发布

2021-05-10 21:50:37 474

原创 工作空间、功能包、节点

工作空间(构建工作空间和运行工作空间)构建工作空间: 只需要建一个以构建空间命名的文件夹,然后在此下面再建一个src目录,再在工作空间下打开终端并运行catkin_make命令,这样ros的构建工作空间就算建成了。构建空间下必须要有一个src目录,也就是说所有的功能包都放在src目录下运行工作空间: 很容易理解,就是ros master节点运行了,运行空间也就建立起来了。换而言之,就是运行roscore 或者 roslaunch 某个launch 文件就启动了运行空间。一个电脑里可以有多个构建工作空间

2021-05-09 22:49:13 363

原创 初识ROS

ROS简介官方介绍:ROS(Robot Operating System,下文简称“ROS”)是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。ROS 的主要目标是为机器人研究和开发提供代码复用的支持。ROS是一个分布式的进程(也就是“节点”)框架,这些进程被封装在易于被分享和发布的程序包和功能包中。ROS也支持一种类似于代码储存库的联合系统,这个

2021-05-08 22:41:02 142

原创 入驻CSDN啦!

当程序员这么多年了,一直用离线的markdown作笔记,今儿要传到CSDN上来,坚持每天一篇博文。如果对博文有什么不懂得地方,可以给我留言也可以通过QQ找到我QQ:451800861.

2021-05-07 16:01:13 75

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除