ROS运行bag文件及其坐标系转换

参考

https://blog.csdn.net/adamshan/article/details/82901295(adamshan大神博客24期激光雷达的地面-非地面分割和pcl_ros实践)

https://blog.csdn.net/elsa211/article/details/88209247

https://blog.csdn.net/xu_fengyu/article/details/86562827

https://www.cnblogs.com/li-yao7758258/p/7672521.html

TF命令行工具

(1) tf_monitor工具的功能是打印tf树中的所有参考系信息,通过输入参数来查看指定参考系之间的信息  用法: rosrun tf tf_monitor

  tf_monitor    监视一个特定的转换 For example, to monitor the transform from /base_footprint to /odom:

  (2) tf_echo工具的功能是查看指定参考系之间的变换关系。命令的格式: tf_echo  

 (3)static_transform_publisher工具的功能是发布两个参考系之间的静态坐标变换,两个参考系一般不发生相对位置变化

(4)view_frames 是可视化的调试工具,可以生成pdf文件,来显示整棵tf树的信息。用法:rosrun tf view_frames 

坐标系问题及其解决

运行adamshan的bag时候打开rviz会有一个/map坐标系找不到的问题,这个时候就要考虑使用tf工具包发布一个静态tf变换,从激光雷达的坐标系到/map坐标系。但是激光雷达的坐标系我们不知道,只知道激光雷达的话题名称为/velodyne_points,如何通过这个这个话题的名称找到其所在的坐标系呢?可以使用以下命令:

   rostopic echo /velodyne_points | grep frame_id

ROS运行bag文件及其坐标系转换_第1张图片

可以得到该话题的所在坐标系是/velodyne。

得到坐标系之后,我们用一个从/map到/velodyne的tf变换,在launch文件中添加以下命令:


 或者直接在命令行运行:

 rosrun tf static_transform_publisher 0.0 0.0 0.0 0.0 0.0 0.0 map xxx 100 ;//将xxx映射为map

即可解决该问题

你可能感兴趣的:(PointCloud,ros)