ROS机器人操作系统
前言
前面学习了ROS中的一些基本知识,但是我们在使用ROS时,有很多工具需要我们去学习。比如机器人的坐标变换,通过一个4*4的矩阵进行平移和旋转。
一、TF坐标变换
在我们使用机器人的时候,通常存在很多坐标,就比如摄像头和底盘的坐标是完全不同的,我们需要通过复杂的计算可以将两个坐标系结合起来,但是这是非常复杂的一个办法,在ROS中就提供一种功能包TF坐标变换,通过查询的关系就可以查看两个坐标系之间的关系。
二、小海龟案例
1.安装功能包
sudo apt-get install ros-你的ros版本-turtle-tf
查看ros版本
roscore
rosparam list
rosparam get /rosdistro
2.运行功能包
roslaunch turtle_tf turtle_tf_demo.launch
这是因为安装python或者python没有设置软连接
安装python
sudo apt-get install python3.8
设置软连接
cd /usr/bin
sudo ln -s /usr/bin/python3.8 python
然后运行功能包,可以看到有两只小乌龟。
3.运行代码
rosrun turtlesim turtle_teleop_key
运行小海龟键盘控制节点,可以看到其中一只小海龟会跟着另一只小海龟走(类似于多车编队)
三、TF工具
1.view_frames
可是这个和TF又有什么关系呢
我们可以运行TF小工具 view_frames,可以可视化看到所有TF之间的关系
rosrun tf view_frames
他会监听5秒钟的时间,会将5秒钟内的所有TF关系都保存下来,最后会生成一个PDF文件。
如果这个位置报错,赋予文件夹权限
sudo chmod 777 ×××
加上如图所示那句话。
会看到有PDF文件生成。
这个就是TF之间的关系,world是全局坐标系,同样可以看到另外两个坐标系。
2.tf_echo
可以实时看到坐标,表述的是怎么通过一个坐标系变成另一个坐标系的。
3.Rviz可视化工具
rosrun rviz rviz -d `rospack find turtle_tf`/rviz/turtle_rviz.rviz
总结
ROS中的可视化工具可以帮助我们很好的去处理数据,就比如通过两个向量计算速度
𝑇𝑡𝑢𝑟𝑡𝑙𝑒1_𝑡𝑢𝑟𝑡𝑙𝑒2 = 𝑇𝑡𝑢𝑟𝑡𝑙𝑒1_𝑤𝑜𝑟𝑙𝑑 ∗ 𝑇𝑤𝑜𝑟𝑙𝑑_𝑡𝑢𝑟𝑡𝑙𝑒2