ROS、base_footprint和base_link的区别及Gazebo差速小车建模遇到的坑汇总

ROS、base_footprint和base_link的区别及Gazebo差速小车建模遇到的坑汇总

1.base_footprint和base_link区别及用处

base_link是固定在机器人本体上的坐标系,通常选择机器人腰部。
base_footprint表示机器人base_link原点在地面上的投影,区别base_link之处是其“z”坐标不同。
一般为了模型不陷入地面,base_footprint的“z”坐标比base_link高。

turtlebot3示例:

<link name="base_footprint"/>

  <joint name="base_joint" type="fixed">
    <parent link="base_footprint"/>
    <child link="base_link"/>
    <origin xyz="0.0 0.0 0.010" rpy="0 0 0"/> //此处z设置比base_link高,此处效果就是底盘离地面1cm
  </joint>

  <link name="base_link">
    <visual>
      <origin xyz="-0.032 0 0.0" rpy="0 0 0"/>//底盘中心坐标(-0.032 0 0.01)
      <geometry>
        <mesh filename="package://turtlebot3_description/meshes/bases/burger_base.stl" scale="0.001 0.001 0.001"/>
      </geometry>
      <material name="light_black"/>
    </visual>

2.搭建gazebo仿真模型遇到的问题:

要搭建的小车模型图
在这里插入图片描述

问题1:轮子沉入地面
可能的解决方法:
(1)采用base_footprint提高地盘与地面之间的距离。本模型中 wheel的半径 = base_footprint的“z” + wheel_left_joint的“z”
(2)在urdf中设置轮子collision中的”geometry“与visual的”geometry“参数一致。

问题2:主动轮旋转,从动轮不转,小车不行进
试图在turtlebot3模型上改造,修改了轮距、安装位置、外形尺寸,添加了从动轮,发现主动轮转动而小车不动。
原因:忘记将从动轮的gazebo属性加入,导致无法再gazebo环境中正常滚动
解决方法:添加gazebo属性

 <gazebo reference="caster_back_left_link">
    <mu1>0.1</mu1>
    <mu2>0.1</mu2>
    <kp>1000000.0</kp>
    <kd>100.0</kd>
    <minDepth>0.001</minDepth>
    <maxVel>1.0</maxVel>
    <material>Gazebo/FlatBlack</material>
  </gazebo>

参考资料:
https://answers.ros.org/question/291600/base_link-vs-base_footprint/
https://blog.csdn.net/weixin_42143481/article/details/104389402

  • 8
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
差速小车在仿真环境中的路径规划可通过ROS中的Cartographer和Move_base功能包来实现。 首先,我们需要将仿真环境的地图信息输入到Cartographer中,进行建图。Cartographer是一个实时SLAM(Simultaneous Localization and Mapping)系统,它能够使用激光雷达等传感器数据生成精确的环境地图。在启动Cartographer之前,需要先配置传感器参数和机器人模型等信息。然后在launch文件中指定map_publisher和trajectory_node,并连接激光雷达数据源。启动Cartographer后,它将不断地从传感器接收数据,并根据这些数据实时生成地图。 接下来,我们可以使用move_base功能包进行路径规划。move_baseROS中的导航功能包,它可以根据Cartographer生成的地图信息,使用全局路径规划器(如global_planner)和局部路径规划器(如base_local_planner),实现差速小车的路径导航。 在配置move_base之前,需要定义在规划过程中使用的局部和全局costmap(代表机器人周围的障碍物信息),并将Cartographer生成的地图信息传入costmap。同时,还要设置机器人的起点和目标点。 在launch文件中,需要加载move_base节点,并连接costmap和地图信息。move_base节点将使用全局路径规划器进行全局路径规划,然后将路径传递给局部规划器,以生成差速小车的速度和方向指令。 一旦配置完成,启动move_base节点后,差速小车将根据全局路径规划器生成的路径,实时导航并移动到目标点。 综上所述,通过Cartographer和Move_base功能包的配合,我们可以实现差速小车在仿真环境中的路径规划。通过Cartographer建图,生成地图信息,然后使用Move_base进行路径规划和导航,使得差速小车可以自主地在仿真环境中移动和导航。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值