多移动机器人(阿克曼小车)在gazebo中的配置
前言
最近需要进行异构多机器人方面的工作,在之前的工作中已经实现了多麦克纳姆轮小车在gazebo中的仿真。
(如何在Gazebo中实现多机器人仿真 https://www.guyuehome.com/4889)
本文主要介绍了多阿克曼结构小车,在gazebo的配置过程。项目参考了古月居的阿克曼小车项目,以阿克曼小车的模型为基础,针对多机器人的仿真目的进行修改。
原项目github地址:https://github.com/guyuehome/guyueclass/tree/main/simulation%26control/ackerman_simulation
(这个项目在古月学院也有课程,因为作者主要是参考模型,所以没有参考课程,直接基于github源码修改,感兴趣的同学可以去看看课程。
如何在Gazebo中实现阿克曼转向车的仿真 • 王泽恩https://class.guyuehome.com/detail/p_60541530e4b05a6195c158f0/6)
配置过程
1. launch文件修改
原有的仿真只考虑单机器人,需要对其launch文件做如下修改:
- 加入group及ns属性
- 去掉原有的全局
/racecar
的namepsace - 使用
<tf_prefix>
重新定义tf关系
原launch文件:
<!-- 加载机器人模型描述参数 -->
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find racecar_description)/urdf/racecar.urdf.xacro'"/>
<!--运行joint_state_publisher节点,发布机器人关节状态-->
<!--<node name = "robot_state_publisher" pkg = "robot_state_publisher" type = "state_publisher">-->
<node name= "robot_state_publisher" pkg= "robot_state_publisher" type= "robot_state_publisher">
<param name="publish_frequency" type="double" value="20.0" />
<remap from="/joint_states" to="/racecar/joint_states"/>
</node>
<!-- 在gazebo中加载机器人模型-->
<node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"