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_footpri
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
更多推荐
所有评论(0)