当前位置:   article > 正文

(二)基于虚拟机ubuntu18的机器人系统仿真(rviz、urdf、xacro)-机器人_ubuntu18.04四轮圆柱移动机器人urdf文件

ubuntu18.04四轮圆柱移动机器人urdf文件

描述:创建一个四轮圆柱状机器人模型,机器人参数如下,底盘为圆柱状,半径 10cm(可自定义),高 8cm(可自定义),四轮由两个驱动轮和两个万向支撑轮组成,两个驱动轮半径为 3.25cm(可自定义),轮胎宽度1.5cm(可自定义),两个万向轮为球状,半径 0.75cm(可自定义),底盘离地间距为 1.5cm(与万向轮直径一致-根据自己定义即可)

效果如下:

步骤实现

  1. 新建 urdf (demo_02.urdf)文件,并与 launch (demo_02.launch)文件集成

  2. 搭建底盘

  3. 在底盘上添加两个驱动轮

  4. 在底盘上添加两个万向轮

步骤一:新建功能包,导入依赖,创建相应的文件

  1. 1.mkdir -p urdf_rviz/src
  2. 2.cd urdf_rviz/src
  3. 3.catkin_create_pkg urdf_rviz urdf xacro
  4. 4.cd urdf_rviz/src/urdf_rviz
  5. 4.1 mkdir urdf //存储 urdf 文件的目录
  6. 4.2 mkdir meshes //机器人模型渲染文件
  7. 4.3 mkdir config //配置文件
  8. 4.4 mkdir launch //存储 launch 启动文件

步骤二:创建urdf文件

  1. 1.cd urdf文件下
  2. 1.1 mkdir urdf
  3. 1.2 mkdir xacro
  4. 2.cd 1.1的urdf文件下:
  5. touch demo_02.urdf //新建.urdf文件

2.1基本框架(在demo_02.urdf文件中编辑)

  1. <robot name="mycar">
  2. <!-- 设置 base_footprint -->
  3. <link name="base_footprint">
  4. <visual>
  5. <geometry>
  6. <sphere radius="0.001" />
  7. </geometry>
  8. </visual>
  9. </link>
  10. </robot>

2.2底盘搭建(在demo_02.urdf文件中编辑)

  1. <!--
  2. 参数
  3. 形状:圆柱
  4. 半径:10 cm
  5. 高度:8 cm
  6. 离地:1.5 cm
  7. -->
  8. <link name="base_link">
  9. <visual>
  10. <geometry>
  11. <cylinder radius="0.1" length="0.08" />
  12. </geometry>
  13. <origin xyz="0 0 0" rpy="0 0 0" />
  14. <material name="yellow">
  15. <color rgba="0.8 0.3 0.1 0.5" />
  16. </material>
  17. </visual>
  18. </link>
  19. <joint name="base_link2base_footprint" type="fixed">
  20. <parent link="base_footprint" />
  21. <child link="base_link"/>
  22. <origin xyz="0 0 0.055" />
  23. </joint>

2.3添加驱动轮(在demo_02.urdf文件中编辑)

  1. <!-- 添加驱动轮 -->
  2. <!--
  3. 驱动轮是侧翻的圆柱
  4. 参数
  5. 半径: 3.25 cm
  6. 宽度: 1.5 cm
  7. 颜色: 黑色
  8. 关节设置:
  9. x = 0
  10. y = 底盘的半径 + 轮胎宽度 / 2
  11. z = 离地间距 + 底盘长度 / 2 - 轮胎半径 = 1.5 + 4 - 3.25 = 2.25(cm)
  12. axis = 0 1 0
  13. -->
  14. <link name="left_wheel">
  15. <visual>
  16. <geometry>
  17. <cylinder radius="0.0325" length="0.015" />
  18. </geometry>
  19. <origin xyz="0 0 0" rpy="1.5705 0 0" />
  20. <material name="black">
  21. <color rgba="0.0 0.0 0.0 1.0" />
  22. </material>
  23. </visual>
  24. </link>
  25. <joint name="left_wheel2base_link" type="continuous">
  26. <parent link="base_link" />
  27. <child link="left_wheel" />
  28. <origin xyz="0 0.1 -0.0225" />
  29. <axis xyz="0 1 0" />
  30. </joint>
  31. <link name="right_wheel">
  32. <visual>
  33. <geometry>
  34. <cylinder radius="0.0325" length="0.015" />
  35. </geometry>
  36. <origin xyz="0 0 0" rpy="1.5705 0 0" />
  37. <material name="black">
  38. <color rgba="0.0 0.0 0.0 1.0" />
  39. </material>
  40. </visual>
  41. </link>
  42. <joint name="right_wheel2base_link" type="continuous">
  43. <parent link="base_link" />
  44. <child link="right_wheel" />
  45. <origin xyz="0 -0.1 -0.0225" />
  46. <axis xyz="0 1 0" />
  47. </joint>

2.4添加万向轮(在demo_02.urdf文件中编辑)

  1. <!-- 添加万向轮(支撑轮) -->
  2. <!--
  3. 参数
  4. 形状: 球体
  5. 半径: 0.75 cm
  6. 颜色: 黑色
  7. 关节设置:
  8. x = 自定义(底盘半径 - 万向轮半径) = 0.1 - 0.0075 = 0.0925(cm)
  9. y = 0
  10. z = 底盘长度 / 2 + 离地间距 / 2 = 0.08 / 2 + 0.015 / 2 = 0.0475
  11. axis= 1 1 1
  12. -->
  13. <link name="front_wheel">
  14. <visual>
  15. <geometry>
  16. <sphere radius="0.0075" />
  17. </geometry>
  18. <origin xyz="0 0 0" rpy="0 0 0" />
  19. <material name="black">
  20. <color rgba="0.0 0.0 0.0 1.0" />
  21. </material>
  22. </visual>
  23. </link>
  24. <joint name="front_wheel2base_link" type="continuous">
  25. <parent link="base_link" />
  26. <child link="front_wheel" />
  27. <origin xyz="0.0925 0 -0.0475" />
  28. <axis xyz="1 1 1" />
  29. </joint>
  30. <link name="back_wheel">
  31. <visual>
  32. <geometry>
  33. <sphere radius="0.0075" />
  34. </geometry>
  35. <origin xyz="0 0 0" rpy="0 0 0" />
  36. <material name="black">
  37. <color rgba="0.0 0.0 0.0 1.0" />
  38. </material>
  39. </visual>
  40. </link>
  41. <joint name="back_wheel2base_link" type="continuous">
  42. <parent link="base_link" />
  43. <child link="back_wheel" />
  44. <origin xyz="-0.0925 0 -0.0475" />
  45. <axis xyz="1 1 1" />
  46. </joint>

步骤三:创建launch文件(demo_02.launch)

  1. 在launch文件夹下创建demo_02.launch
  2. 1.touch demo_02.launch
  3. 2.编写touch demo_02.launch内容
  4. <launch>
  5. <!-- 将 urdf 文件内容设置进参数服务器 -->
  6. <param name="robot_description" textfile="$(find urdf_rviz)/urdf/urdf/demo_02.urdf" />
  7. <!-- 启动 rivz -->
  8. <node pkg="rviz" type="rviz" name="rviz" />
  9. <!--node pkg="rviz" type="rviz" name="rviz_test" args="-d $(find urdf_rviz)/config/my_car.rviz" /-->
  10. <!-- 启动机器人状态和关节状态发布节点 -->
  11. <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" />
  12. <node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher" />
  13. <!-- 启动图形化的控制关节运动节点 -->
  14. <!--node pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" name="joint_state_publisher_gui" /-->
  15. </launch>

步骤四:

4.1编译功能包

  1. 在urdf文件下:
  2. catkin_make

4.2运行

roslaunch urdf_rviz demo_02.urdf

步骤五:rviz显示

rviz 启动后,会发现并没有盒装的机器人模型,这是因为默认情况下没有添加机器人显示组件,需要手动添加,添加方式如下:

步骤刘:rviz显示优化

重复启动launch文件时,Rviz 之前的组件配置信息不会自动保存,需要重复执行步骤五的操作,为了方便使用,可以使用如下方式优化:

保存至config文件下,命名:my_car.rviz。在demo_2.launch文件中添加:

<node pkg="rviz" type="rviz" name="rviz_test" args="-d $(find urdf_rviz)/config/my_car.rviz" />

再启动时,就可以包含之前的组件配置了,使用更方便快捷。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/776825
推荐阅读
相关标签
  

闽ICP备14008679号