UTM坐标
参考https://baike.baidu.com/item/%E5%9D%90%E6%A0%87%E7%B3%BB%E7%BB%9F/4725756#5
可以由GPS得经纬度高度转化而来。
Move_base坐标
move_base是ROS框架下的避障导航程序包,主要坐标包括map->odom->base_link->***,一般采用基于激光雷达的amcl定位。
两者关系
先附上官方文档robot_localization 2.5.6 documentation
当机器人将move_base的定位方法换成GPS时,我们就需要把UTM坐标放入move_base自身的坐标变换体系中去。
在他人的工程中,我发现直接采用robot_localization
包中的navsat_transform_node
即可实现UTM与MAP的TF转换广播,但是这个过程有具体是怎么实现的,还需要仔细研究一下。
UTM坐标是一个公共坐标系,不存在初始值;而move_base所有的坐标都随着程序的启动而诞生,随着程序的死亡而消失。
我们首先要弄明白move_base的初始坐标和UTM坐标系的联系是如何建立的。观察rviz里的坐标参数发现,假设机器人初始GPS解算的UTM坐标为30000,40000。
那么在move_base的map坐标系下,该点接近0,0的情况下。UTM的坐标原点为
-40000,30000,四元数取决于姿态角θ。
UTM坐标可以通过GPS解算,UTM的姿态角通过imu的四元数设置。