1.分布式通信
下文linux主机名称:shuaimou
下文linux从机名称:plus
ros是一种分布式软件框架,节点之间通过松耦合方式组合
2.分布式通信步骤
(1)设置IP地址
sudo vi /etc/hosts
设置对方的IP地址别名,类似于宏定义IP地址,方便远程登录。
(2)从机设置ros_MSSTER_URI.从机找到ROS MASTER——ros core只能运行到一台计算机上
export ROS_MASTER_URI=http:// 你的 IP地址 :11311
11311,是端口号
(3)实验
本地端口打开小海龟历程,
从机(建议远程登录)打开小海龟控制,如下图:
可以看到从机plus可以打印出主机小海龟的节点。
注意:只能主机运行roscore,从机运行结果如下:
提示:roscore只能运行在主机,从机不能运行。
2.ros中的关键组件——launch文件
launch文件:是通过xml文件实现多节点的配置和启动(可自动启动ros master)
launch文件是可以同时很多节点自启动,非常重要
(1)launch文件介绍:
output:控制节点的打印,是否打印在电脑屏幕上
respawn:当前节点失效,重新启动。
required:launch最重要节点,required启动失败,ros启动失败。
重映射:移植别人功能包,把别人接口重新定义。
更多标签请参考网站:
https://wiki.ros.org/roslaunch/XML
3.TF坐标变换——妈耶,这么巧的嘛,我们正在学习。
(1)安装小海龟TF坐标变换节点包
sudo apt-get install ros-kinetic-turtle-tf
(2)启动节点(roslaunch)
roslaunch turtle_tf turtle_tf_demo.launch
可以看到,中心出现一只小乌龟,过一会屏幕又出现移植小乌龟,后出现的小乌龟正在向最先出现的小乌龟哪里移动(跟随)
(3)启动键盘控制
rosrun turtlesim turtle_teleop_key
可以看到小海龟跟随现象。(外面是键盘控制的,里面是小乌龟跟随)
(4)查看TF坐标变换
rosrun tf view_frames
可以看到在根目录下生成哟个PDF文件。
我的是在home里面,打开PDF:
可以看到三个坐标系:Word,turtle1,turtle2 。
rosrun tf tf_echo tuetle1 turtle2
可以查看两个海龟之间坐标变换关系。
可以看到,PDF通过四种不同方式(表达意思一样)表示两种小海龟之间关系:
translation:空间位置关系,上图可以看到最终小海龟基本重合。
rotation:quaternion–>四元素法,本人才疏学浅,还没有学习。
RPY(radian)–>弧度表示
rpy(degree)–>角度表示
也可以使用RVIZ来显示可视化界面:
rosrun rviz rviz -d `rospack find turtle_tf`/rviz/turtle_rviz.rviz
黄色为世界坐标系,可以清楚显示两个小海龟相对于世界坐标系的位置。
4,TF广播器
源文件上传,下载链接:
https://download.csdn.net/download/weixin_43262513/10931519
运行命令
roslaunch learning_tf start_demo_with_listener.launch
期间遇到错误,如下:
[start_demo_with_listener.launch] is neither a launch file in package [rbx1_bringup] nor is [rbx1_bringup] a launch file name The traceback for the exception was written to the log file
具体解决方法见我的博客,连接:
https://blog.csdn.net/weixin_43262513/article/details/88049606