Merokes 2022-08-08 17:11 采纳率: 0%
浏览 62
已结题

ROS导航小车如何用base_footprint作为旋转中心

问题遇到的现象和发生背景

使用的是EAIBOT小车,配有雷达和IMU,使用amcl定位和ekf传感器融合,车比较旧了,两三年前买的。

小车一开始启动时,雷达激光与map是贴合的,但随着小车运动和旋转后,激光越来越偏移,无法与map重合,导致导航有很大的误差。

运行结果及报错内容

img

上图为小车的运行一圈后返回原点,以及/odom的输出信息。可以看到在原点位置,odom的坐标值正常应该贴近0,数值却还这么大,有相当的误差。
补充:经过测试后发现,导致激光偏移主要是因为小车旋转导致的误差,小车并没有严格按照旋转中心旋转,存在平移。所以问题变成了如何更改旋转中心,且采用base_footprint作为旋转中心!

我的解答思路和尝试过的方法

我有自制简单导航小车的经验,使用其他类型的车,激光都是贴合map的,但这辆车仍然存在问题。
尝试过更改小车模型urdf和xcaro里base_link和base_footprint的转换关系,但是没有效果。

我想要达到的结果

用base_footprint作为旋转中心在小车运动过程中,激光仍然贴合map

  • 写回答

2条回答 默认 最新

  • ilmss 2022-08-08 19:57
    关注
    <!-- 设置一个 baselink与 laser之间的静态坐标变换 -->
    
    <node pkg="tf" type="static_transform_publisher" name="base_to_laser_broadcaster" args="0 0 0 0 0 0 /base_link /laser 100"/>
    
    把map_odom_broadcaster 的注释调,二选一,这样小车就不再乱跳
    
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月15日
  • 修改了问题 8月10日
  • 创建了问题 8月8日

悬赏问题

  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样