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中的可视化工具可以帮助我们很好的去处理数据,就比如通过两个向量计算速度