OdomLaserCalibraTool标定工具的使用及踩坑记录
简要说明
轮差速轮式机器人可以基于码盘数据和两轮间距以及车轮半径进行航迹推演,得到机器人的轨迹。激光雷达也可以利用 icp 等算法计算出两时刻间机器人的相对运动量。因此,可以利用两者数据进行融合定位,这个工具的功能是标定里程计内参数 ( 轮子半径,两轮间距),以及外参数(激光和里程计之间的坐标关系)
说明: 这里的标定仅仅是 3 自由度的(激光坐标系和机器人坐标系都是平行于地面的,只能标定 yaw 和xy),如果还想标定激光相对于水平面的(pitch,roll,主要是安装误差,激光安装的并不水平)
GitHub地址
GitHub - tzhangZJU/OdomLaserCalibraTool: Extrinsic Calibration of a Odom and 2d Laser
作者博客
2d Laser 和 Odomter 内外参数标定工具原理及使用方法_知行合一-CSDN博客 https://heyijia.blog.csdn.net/article/details/88571176
其实只是记录了一下我自己的标定过程,和错误解决方法。其实解决方法在作者博客和GitHub的issue中也有提及。
Error1
这个是由于odom消息的类型不对
这个是通过 rostopic info /odom 来查看odom类型,然后在源码的io.cpp中修改具体的odom获取方式。代码中有三种odom的类型分别是Odometry,JointState,Vector3Stamped
代码如下
把代码中的三段按照自己的里程计话题类型进行替换即可。
同时修改launch文件里面odom的话题名称
<param name="file_path" type="string" value="/home/heyijia/ros_ws/OLCalibra_ws/" />
<param name="bagname" type="string" value="2019-02-26-12-01-45" />
<param name="laser_topic" type="string" value="/scan" />
<param name="odom_topic" type="string" value="/odom" />
2 当odom的话题名称与类型都对上以后,我运行launch文件依然报错如下
是求解出错
重新录制包以后解决了
走直线标轮子直径,旋转标轮轴间距
最终结果
标定结果中,其中的l: -0.0091079 -0.0333625 3.11636 指的是激光雷达位置的x y 和角度。
- 点赞
- 收藏
- 关注作者
评论(0)