麦克纳姆轮小车在gazebo中的实现

搞毕设看的是赵虚左老师的视频,在视频中赵老师只介绍了两轮差速小车和阿克曼底盘的小车的控制器插件,麦克纳姆轮的小车并没有介绍到,在这里给大家分享一下麦轮小车的简单实现。

<robot name="mycar" xmlns:xacro="http://wiki.ros.org/xacro">

    <!-- 传动实现:用于连接控制器与关节 -->
    <xacro:macro name="joint_trans" params="joint_name">
        <!-- Transmission is important to link the joints and the controller -->
        <transmission name="${joint_name}_trans">
            <type>transmission_interface/SimpleTransmission</type>
            <joint name="${joint_name}">
                <hardwareInterface>hardware_interface/VelocityJointInterface</hardwareInterface>
            </joint>
            <actuator name="${joint_name}_motor">
                <hardwareInterface>hardware_interface/VelocityJointInterface</hardwareInterface>
                <mechanicalReduction>1</mechanicalReduction>
            </actuator>
        </transmission>
    </xacro:macro>

    <!-- 每一个驱动轮都需要配置传动装置 -->
    <xacro:joint_trans joint_name="LeftFrontwheelToBase" />
    <xacro:joint_trans joint_name="LeftBackwheelToBase" />
    <xacro:joint_trans joint_name="RightFrontwheelToBase" />
    <xacro:joint_trans joint_name="RightBackwheelToBase" />

    <!-- 麦轮控制器 -->
    <gazebo>
        <plugin name="mecanum_controller" filename="libgazebo_ros_planar_move.so">
            <commandTopic>cmd_vel</commandTopic>
            <odometryTopic>odom</odometryTopic>
            <odometryFrame>odom</odometryFrame>
            <leftFrontJoint>LeftFrontwheelToBase</leftFrontJoint>
            <rightFrontJoint>RightFrontwheelToBase</rightFrontJoint>
            <leftRearJoint>LeftBackwheelToBase</leftRearJoint>
            <rightRearJoint>RightBackwheelToBase</rightRearJoint>
            <odometryRate>100</odometryRate>
            <robotBaseFrame>base_footprint</robotBaseFrame>
            <broadcastTF>1</broadcastTF>
        </plugin>
    </gazebo>

</robot>

这是move.xacro,只需要将前后左右四个轮的joint改名成自己取得名字就可以了。

  • 12
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
Gazebo 是一款广泛应用于机器人仿真的开源软件,其小车看不到可能由以下几个原因导致: 1. 传感器故障:小车在仿真环境可能配备了各种传感器,例如摄像头、激光雷达等。如果其某个传感器出现故障,将导致小车无法观测到周围环境。可以通过检查传感器的连接是否正常,并确保其正常工作来排除该问题。 2. 仿真场景设置不当:在 Gazebo ,仿真场景的设置影响着小车的可视范围。如果场景存在遮挡物或者光照条件不佳,小车就无法看到周围的物体。可以通过调整场景的遮挡物位置、修改光照设置等来改善问题。 3. 小车视觉算法问题:小车观测周围环境主要依靠视觉算法进行图像处理和物体检测。如果小车的视觉算法不正确或者参数设置有误,可能导致小车无法正确地识别物体。可以检查小车程序的图像处理算法和参数设置是否合理。 4. 传输数据丢失:在仿真,传感器获取的数据需要通过网络传输到小车的控制程序进行处理。如果在数据传输过程丢失了部分或全部数据,小车就无法看到周围物体。可以检查网络连接是否正常,或者重新配置网络设置来解决该问题。 综上所述,如果在 Gazebo 小车看不到周围物体,可能是由于传感器故障、仿真场景设置不当、小车视觉算法问题或者传输数据丢失等原因造成的。通过逐一排查这些可能的原因,并进行相应的调整和修复,可以解决该问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值