目录
分布式通信
ROS是一种分布式框架,节点间通过松耦合方式组合。
多机通讯
1.设置IP地址,确保底层链路的联通。
将IP地址分别放入对方电脑的Host中,使用
sudo vi /etcs/hosts
将对方的ip地址放到对方的Hosts地址中。
2.在从机端设置ROS_MASTER_URI,让从机找到ROS Master。具体命令为:
3.配置好进行尝试
ROS的关键组件
Launch文件
launch文件来实现多个节点的启动,给出例子:
1)Launch可以自动启动ROS Master,不需要手动启动。
2)launch是根元素标签,所有的元素都要放在这个标签内。
3) node的格式为:
output用来选择是否将日志文件打印到屏幕上。
respwan是说当这个节点失效之后是否会重新启动。
required表明是不是一个必须的节点。
ns是namspace是节点的命名空间的信息。
args是节点的参数信息。
参数的两种形式:一种是全局变量,一种是只能用在launch中的局部变量。
重映射和嵌套指令:
注意: 重映射会导致资源名字改变很多依赖可能会改变。
TF坐标变换(参考《机器人学导论》)
TF功能包的主要功能
1.有时间跨度的坐标变换,如: 五秒钟之前,头部坐标相对全局坐标的关系。
2.机器人夹取的物体相对于机器人忠心坐标系的位置。
3.机器人忠心坐标系相对于全局坐标系的位置。
实现TF坐标变换
1.将已经知道的坐标变换用广播广播出去。
2.监听TF变换的广播,获取两个坐标变换。
实例(两只海龟位置变换矩阵):
1.TF广播器
2.TF监听器
3.编译
4.用launch启动小海龟
QT工具箱
日志输出工具 rqt_console
能够监听集中各种信息,方便调试。
计算图可视化工具 rqt——graph
在上一个博客计算图部分有使用。
数据绘图工具 rqt_plot
在上一个博客计算图部分有使用。
参数动态配置工具 rqt_reconfigure
用来改变一个值之后,所有依赖这个值的都会改变。
Rviz可视化平台
使用最频繁的工具。
可以用来展示机器人模型、坐标、运动规划、导航等等,是一个可检测信息的图形显示。
界面展示
插件
可以用来开发插件(详见古月居博客)
Gazebo物理仿真环境
是一款功能强大的三位物理仿真平台(开源)。
界面
Gazebo启动会要求很多国外的资源,可以先下载到本地,详情.
使用过程
1.创建仿真环境
2.配置机器人模型
3.开始仿真