有关ROS部分的笔记总结

 下·1.5.1ROS文件系统 34

1、数据交换的格式:

通过以下三种,进行设定。

2、package.xml文件中的解释:

编译时的编译工具、编译时依赖的工具包、 导出依赖、执行依赖。

二、ROS通信机制

1、ROS是进程(Nodes)的分布式构架

2、每个功能点都是被称为一个进程,每个进程之间的数据交换(通信)

3、通信机制:话题、

2.1话题通信

1、话题通信适用于数据不断更新的场景当中。发布、订阅。

2、2.1.2和2.1.3对应案例一。2.1.4、2.1.5和2.1.6对应案例二。

2.1.1话题通信机制模型

一般函数的调用,我有需要就可以去调用,自己可以把控去调用使用。

回调函数:需要外部消息的进入,告知使用才会去被调用使用。(类似中断,外部信息相当于中断信息)

 注意:python与c++两者之间的匹配,将两者之间的话题对象进行统一设置,发布者就能够在订阅者收到了。

2.2服务通信 

2.2.1服务通信模型

 2.2.2服务通信自定义srv 64

srv:需要由两部分组成:请求+响应

为何是三个?

节点文件名、两个参数的输入。一共三个 

 第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要我们输入的main函数的参数个数应该是argc-1个

注意:

1、如果没有任何设置的话,先启动客户端,会出现报错。一般是需要先启动服务端,后开启客户端。

2、如果没有先开启客户端,则需要进行设置说明。71

2.2.3参数服务器 78

2.4常用的命令 90

用途:用于不同节点之间自定义的节点与已存在的节点之间的通信,获取对方的话题、以及消息的承载格式。

通信机制部分的总结:

节点之间通过话题关联到一起,并使用某中类型的数据载体实现数据传输。

三、ROS通信机制进阶

3.1常用API

3.1.1初始化 125

 

3.1.2话题与服务相关对象 126

发布对象:

 3.1.3回旋函数

 作用:ros::spin() 和 ros::spinOnce() 用于处理回调函数。

spin():是执行到回调函数处,并处理在回调函数处再对回调函数自身进行循环。

spinOnce(): 

 

 3.1.4时间

定时器的使用:

 关闭节点指令:

 

3.2自定义头文件的调用  143

3.2.1自定义头文件的调用 143

3.2.2自定义源文件的调用 144

解决rosrun执行不到.py文件。需要进行以下的配置。

视频145

比较重要,看视频进行配置。python3就可以执行所编写的文件。

方案一:

 方案二:

四、 ROS运行管理 

问题一:功能包之间的关联

解决三个问题:

4.1元功能包

步骤一、在package.xml中添加可执行依赖 

 自己定义设置的功能包

 步骤二、在CMakeLists中进行设置

 

 注:内部括号内不需要有空格

4.2launch文件启动

 4.2.3include

.launch文件复用:启动已存在的launch文件。复用!!

4.2.4对节点进行重新命名

4.2.5parm参数的设置 

 

 而本例子中name:是被称为私有名空间

4.2.6rosparm使用

从yaml中获得参数:load

 结果:

而且还能够获取得到后面对应的数值,比如说.yaml文件中的数值数据。

 从parm导入到.yaml文件当中:dump

 

 4.2.7group使用

结果:

 4.2.8arg的使用

实际上相当于编程语言中的宏定义功能。

 结果:

 自定义设置参数输入:

快捷键:

pwd:查看路径信息

ctrl+alt+a:加注释

alt + 方向键移动:所在的命令行整体的上下移动。(也可能是需要先复制)

问题:

1、如何将自己创建的python程序,生成ROS下的节点

2、节点之间的交互?拍摄照片节点、ICP算法定位节点、Moveit!运动控制节点。

目前最佳的选择是通过:服务通信。

思路:利用前面两个部分节点融合获取到的定位内容数据,通过服务通信来进行传递获取得到的定位数据内容发送回给Moveit!运动控制这部分的节点,进行控制机械臂进行向下运动处理。

3、控制执行:可以使用定时器,控制一个大致时间后,再进行另外的节点操作。参考视频131

4、梳理根据自己由python编写的功能包在ROS下进行。实际上我所编写的功能包的作用实际上就是经过ICP处理后得到的工件位姿的X、Y、Z的三维坐标进行订阅以及发布。

步骤一:创建工作空间,并根据python编写功能包的流程就行设置

步骤二:根据订阅将内容进行修改,把xyz的坐标进行处理,作为数据信息通过ROS订阅进行输出

步骤三:进行测试,使用一个订阅者,查看是否能够接收到发布者发的的数据。

步骤四:或者使用服务通信进行设置。

注意:

自己创建的信息、节点等要在自己的所创建的工作空间下进行操作!!!!!!

yaml格式的文件是存放在磁盘当中的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值