turtlebot3-burger_150.png
turtlebot3-waffle-pi_150.png
turtlebot3-arm_150.png
walking-y2_150.png
turbot3-multi_150.png
turbot3-dl-ros1_150.png
turbot3-ai.png
turbot3-dl-ros2_150.png
turbot3-slam_150.png
turbot3-arm_150.png
turtlebot4-lite_150.png
turtlebot4-pro_150.png
turbot4-dl_150.png
turbot4-ai_150.png
aidriving-racebot_150.png
aidriving-autodrive_150.png
turtlebot-arm_150.png
openmanipulator-x_150.png
Home » Ailibot模型入门教程 » Ailibot模型入门教程-添加在gazebo使用的xacro配置文件

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
  • 上述两个文件位于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群进行交流

获取最新文章: 扫一扫加入“创客智造”公众号


标签: ailibot模型入门教程