Ailibot模型入门教程-添加在gazebo使用的xacro配置文件
纠错,疑问,交流: 请进入讨论区或 请点击进入页面,扫码加入微信群或Q群进行交流
获取最新文章: 扫一扫加入“创客智造”公众号
文章说明
- 本教程主要介绍如何添加在gazebo使用的xacro配置文件
- 通过导入的ROS模型包只有URDF模型部分,如果要在gazebo上显示,还需要进一步完善,增加相关gazebo插件和配置
- 比如轮子的摩擦系数、雷达的模拟、相机的模拟等等
- 本教程所提及的仿真ROS包已上传上gitee | 获取地址
文件说明
- 在gazebo加载和使用模型除了传统的URDF设置之后,还需要添加各种不同的配置
- 此处可以将xacro配置文件分成两部分
- 一个部分是默认的urdf设置:
ailibot_model.urdf.xacro - 另一部分是gazebo中的设置:
ailibot_model.gazebo.xacro
- 一个部分是默认的urdf设置:
- 上述两个文件位于https://gitee.com/ncnynl/ailibot_model/tree/master/urdf
操作步骤
- 下面来简单介绍一下这些修改的配置内容,同时也定义更规范的关节名称
- 我们假设以后TF显示效果如下:

base_footprint与base_link
- 本处是基于导出的URDF的base_link上再添加base_footprint的tf设定
<!-- base_footprint -->
<link name="base_footprint"/>
<!-- d4_base -->
<!-- base_link -->
<link name="base_link">
<inertial>
<origin xyz="0 0 0.0" rpy="0 0 0" />
<mass value="${d4_base_mass}" />
<xacro:box_inertial mass="${d4_base_mass}" length="${d4_base_length}" width="${d4_base_width}" height="${d4_base_height}"/>
</inertial>
`
##### Wheel 部分
- 此处主要是简化了车轮urdf配置的代码
`
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://ailibot_model/meshes//wheel_${prefix}.STL" />
</geometry>
<material name="light_black"/>
</visual>
<collision>
<origin xyz="0 0 0" rpy="-1.57 0 0" />
<geometry>
<cylinder length="${wheel_thickness}" radius="${wheel_diameter/2}"/>
</geometry>
</collision>
</link>
</xacro:macro>
<xacro:wheel_link prefix="left_front" />
<xacro:wheel_link prefix="right_front" />
<xacro:wheel_link prefix="left_back" />
<xacro:wheel_link prefix="right_back" />
<xacro:macro name="wheel_joint" params="prefix origin_x origin_y origin_z">
</xacro:macro>
<xacro:wheel_joint prefix="left_front" origin_x="0.065" origin_y="0.123" origin_z="-0.0207" />
<xacro:wheel_joint prefix="right_front" origin_x="0.065" origin_y="-0.123" origin_z="-0.0207" />
<xacro:wheel_joint prefix="left_back" origin_x="-0.065" origin_y="0.123" origin_z="-0.0207" />
<xacro:wheel_joint prefix="right_back" origin_x="-0.065" origin_y="-0.123" origin_z="-0.0207" />
##### laser
- 这部分为雷达的urdf定义
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://ailibot_model/meshes/laser.STL" />
</geometry>
<material name="light_black"/>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://ailibot_model/meshes/laser.STL" />
</geometry>
</collision>
`
##### camera 部分
- 此处主要调用realsense_ros_gazebo插件来实现d435i在gazebo的仿真
`
`
##### imu部分的urdf定义
- 添加imu传感器,此处可以不将imu设为一个实体
`
`
##### wheel_friction
- 这部分主要为车轮在gazebo中的摩擦系数以及颜色等配置
`
0.001
0.1
1 0 0
Gazebo/DarkGrey
<xacro:wheel_friction prefix="left_front" />
<xacro:wheel_friction prefix="right_front" />
<xacro:wheel_friction prefix="left_back" />
<xacro:wheel_friction prefix="right_back" />
##### Gazebo中的单线雷达配置
- 添加单线雷达配置
Gazebo/DarkGrey
0 0 0 0 0 3.1415
true
5
3600
1
-3.14
3.14
0.120
8
0.015
gaussian
0.0
0.01
scan
laser
`
##### 差分驱动插件
- 添加gazebo中四轮小车运动所需的差分驱动插件
`
10.0
wheel_left_front_joint
wheel_right_front_joint
wheel_left_back_joint
wheel_right_back_joint
0.246
0.09
base_footprint
10
cmd_vel
odom
odom
cmd_vel
cmd_vel
odom
joint
true
0.0001
0.0001
0.01
`
##### imu插件
- 添加imu插件
`
true
imu_link
imu_link
imu/data
imu_service
0.0
0
gaussian
0.0
2e-4
0.0000075
0.0000008
0.0
1.7e-2
0.1
0.001
`
##### Wheel 部分
- 此处主要是简化了车轮urdf配置的代码
`
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://ailibot_d4_test/meshes//wheel_${prefix}.STL" />
</geometry>
<material name="light_black"/>
</visual>
<collision>
<origin xyz="0 0 0" rpy="-1.57 0 0" />
<geometry>
<cylinder length="${wheel_thickness}" radius="${wheel_diameter/2}"/>
</geometry>
</collision>
</link>
</xacro:macro>
<xacro:wheel_link prefix="left_front" />
<xacro:wheel_link prefix="right_front" />
<xacro:wheel_link prefix="left_back" />
<xacro:wheel_link prefix="right_back" />
<xacro:macro name="wheel_joint" params="prefix origin_x origin_y origin_z">
</xacro:macro>
<xacro:wheel_joint prefix="left_front" origin_x="0.065" origin_y="0.123" origin_z="-0.0207" />
<xacro:wheel_joint prefix="right_front" origin_x="0.065" origin_y="-0.123" origin_z="-0.0207" />
<xacro:wheel_joint prefix="left_back" origin_x="-0.065" origin_y="0.123" origin_z="-0.0207" />
<xacro:wheel_joint prefix="right_back" origin_x="-0.065" origin_y="-0.123" origin_z="-0.0207" />
##### laser
- 这部分为雷达的urdf定义
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://ailibot_d4_test/meshes/laser.STL" />
</geometry>
<material name="light_black"/>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://ailibot_d4_test/meshes/laser.STL" />
</geometry>
</collision>
`
##### camera 部分
- 此处主要调用realsense_ros_gazebo插件来实现d435i在gazebo的仿真
`
`
##### imu部分的urdf定义
- 添加imu传感器,此处可以不将imu设为一个实体
`
`
##### wheel_friction
- 这部分主要为车轮在gazebo中的摩擦系数以及颜色等配置
`
0.001
0.1
1 0 0
Gazebo/DarkGrey
<xacro:wheel_friction prefix="left_front" />
<xacro:wheel_friction prefix="right_front" />
<xacro:wheel_friction prefix="left_back" />
<xacro:wheel_friction prefix="right_back" />
##### Gazebo中的单线雷达配置
- 添加单线雷达配置
Gazebo/DarkGrey
0 0 0 0 0 3.1415
true
5
3600
1
-3.14
3.14
0.120
8
0.015
gaussian
0.0
0.01
scan
laser
`
##### 差分驱动插件
- 添加gazebo中四轮小车运动所需的差分驱动插件
`
10.0
wheel_left_front_joint
wheel_right_front_joint
wheel_left_back_joint
wheel_right_back_joint
0.246
0.09
base_footprint
10
cmd_vel
odom
odom
cmd_vel
cmd_vel
odom
joint
true
0.0001
0.0001
0.01
`
##### imu插件
- 添加imu插件
`
true
imu_link
imu_link
imu/data
imu_service
0.0
0
gaussian
0.0
2e-4
0.0000075
0.0000008
0.0
1.7e-2
0.1
0.001
``
纠错,疑问,交流: 请进入讨论区或 请点击进入页面,扫码加入微信群或Q群进行交流
获取最新文章: 扫一扫加入“创客智造”公众号


















