OdomLaserCalibraTool标定工具的使用及踩坑记录

举报
kobesdu 发表于 2022/01/27 15:40:11 2022/01/27
【摘要】 简要说明轮差速轮式机器人可以基于码盘数据和两轮间距以及车轮半径进行航迹推演,得到机器人的轨迹。激光雷达也可以利用 icp 等算法计算出两时刻间机器人的相对运动量。因此,可以利用两者数据进行融合定位,这个工具的功能是标定里程计内参数 ( 轮子半径,两轮间距),以及外参数(激光和里程计之间的坐标关系)说明: 这里的标定仅仅是 3 自由度的(激光坐标系和机器人坐标系都是平行于地面的,只能标定 ya...

简要说明

轮差速轮式机器人可以基于码盘数据和两轮间距以及车轮半径进行航迹推演,得到机器人的轨迹。激光雷达也可以利用 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

image.png

这个是由于odom消息的类型不对

这个是通过 rostopic info /odom 来查看odom类型,然后在源码的io.cpp中修改具体的odom获取方式。代码中有三种odom的类型分别是Odometry,JointState,Vector3Stamped

代码如下

image.png

把代码中的三段按照自己的里程计话题类型进行替换即可。

同时修改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文件依然报错如下

image.png

是求解出错

重新录制包以后解决了

走直线标轮子直径,旋转标轮轴间距

最终结果

标定结果中,其中的l: -0.0091079 -0.0333625 3.11636 指的是激光雷达位置的x y 和角度。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。