1.9ROS中的坐标系管理系统

   1、TF功能包可以记录10秒钟之内的机器人所有坐标系之间的位置关系,TF坐标变换是通过监听和广播的机制实现的,当我们启动节点管理器和TF之后,就会在后台去维护一个TF树

   

   2、本部分我们要实现的内容是通过键盘控制第一个海龟移动,让另一个海龟通过TF坐标变换自动的跟踪第一个海龟

   3、接下来需要通过以下指令来安装turtle-tf示例的功能包

 sudo apt-get install ros-melodic-turtle-tf
 

   注意这个地方因安装的ROS的版本不同,安装语句也不同,比如我安装的ROS是noetic版本,而不是上面那条语句中的melodic版本,需要将该语句中的melodic改为noetic,如下所示:

 sudo apt-get install ros-noetic-turtle-tf

 

 sudo apt-get install ros-noetic-turtle-tf
 

   4、接下来用到了ROS中的roslaunch 指令,去启动一个launch文件,launch文件可以理解为一个脚本文件,可以把很多节点的启动都写进去,运行一下的语句(内容后面再做介绍

 roslaunch turtle_tf turtle_tf_demo.launch


 rosrun turtlesim turtle_teleop_key

 

5、接下来运行键盘控制节点,使用↑↓←→键来控制第一个海龟移动,可以发现第二个海龟会跟踪第一个海龟移动

   6、在tf功能包里提供了一个小工具view_frames可以可视化的看见系统中所有tf间的关系,使用 rosrun tf view_frames命令来运行它,它会先监听5s的时间,然后把5s内的所有坐标系之间的关系保存下来,它会生成一个pdf文件,默认放在主文件夹下

 

 

  7、其中的world坐标系是建立在仿真器左下角的,坐标系turtle1和turtle2是建立在两个海龟上的,若是turtle与world之间的箭头没有则说明坐标系没有建立成功


  8、接下来我们看一下另一个tf工具:tf_echo工具,这个工具可以直接查询任意两个节点在树中的坐标关系,如rosrun tf tf_echo turtle1 turtle2 可以查看节点turtle1 到节点turtle2的坐标变换,也就是turtle2坐标系如何变换到turtle1坐标系,我们用键盘控制第一个海龟运动,可以发现数据会变化,其中Translation表示的是平移,Rotation表示的是旋转,在Rotation中,Quaternion行是用四元数表示的,下一行是RPY(通过XYZ轴旋转)是通过的弧度来描述的,下一行的RPY是通过角度来描述的。


  9、接下来看一个更加可视化的工具rviz工具,他是一个三维可视化的显示平台,我们通过以下的指令来运行该工具,运行后点击Add添加tf,然后就可以直观的看到坐标系之间的关系,使用键盘指令控制第一只海龟移动可以发现坐标系的移动

rosrun rviz rviz -d `rospack find turtle_tf`/rviz/turtle_rviz.rviz
 

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值