1. 程式人生 > >ROS_機器人urdf建模模擬實踐

ROS_機器人urdf建模模擬實踐

實踐內容:
1、運用 urdf建模 實現案例中的機器人。
2、根據以上掌握的方法,再快速建立一個機器人模型。

成果圖:

9125154-5f2a85b2a2c84c08.png 成果圖

建立需要用到的功能包以及各種資料夾:

9125154-0489860f0269bd6a.png

9125154-5ad5b5fe9bedd0f3.png
Build跟devel兩個資料夾在catkin_make之後會自動生成:
9125154-0e737dd9e9ae7c2e.png

編寫launch檔案:
9125154-3abfb347117f60f4.png

新增左輪:

9125154-69018e4ffb65d539.png
編譯:
9125154-03874cc24a381f07.png
啟動:

roslaunch mbot_description display_mbot_base_urdf.launch
9125154-d9530df46bf14ae2.png

效果:
(當然開啟之後需要進行下面一番騷操作先——設定好RobotModel)


9125154-726100494cd9b25a.png

拖動滑動條控制輪子轉動:

9125154-f42f8b3a71643ee2.png

新增右輪:

9125154-6a08e57511abe80a.png

編譯,啟動,

9125154-a7fa8009861e6947.png

效果如下:

9125154-06218eed3fd0ef8d.png

使用球體建立前後支撐輪:


9125154-4ae334b6000781a9.png

編譯,啟動,效果如下:

9125154-47af76849ae9d19a.png

建立一個自己的機器人模型:
程式碼:

<?xml version="1.0"?>
<robot name="mbot">
  
   <link name="base_link">
      <visual>
          <origin xyz="0 0 0" rpy="0 0 0"/>
          <geometry>
              <cylinder length="0.06" radius="0.20"/>
          </geometry>
          <material name="yellow">
              <color rgba="1 0.4 0 1"/>
          </material>
      </visual>
   </link>

   <joint name="left_wheel_joint" type="continuous">
        <origin xyz="0 0.19 -0.05" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="left_wheel_link"/>
        <axis xyz="0 1 0"/>
   </joint>

   <link name="left_wheel_link">
        <visual>
             <origin xyz="0 0 0" rpy="1.5707 0 0" />
             <geometry>
                 <cylinder radius="0.03" length = "0.025"/>
             </geometry>
             <material name="white">
                 <color rgba="1 1 1 0.9"/>
             </material>
        </visual>
   </link>

   <joint name="right_wheel_joint" type="continuous">
        <origin xyz="0 -0.19 -0.05" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="right_wheel_link"/>
        <axis xyz="0 1 0"/>
   </joint>

   <link name="right_wheel_link">
        <visual>
             <origin xyz="0 0 0" rpy="1.5707 0 0" />
             <geometry>
                 <cylinder radius="0.03" length = "0.025"/>
             </geometry>
             <material name="white">
                 <color rgba="1 1 1 0.9"/>
             </material>
        </visual>
   </link>

   <joint name="front_caster_joint" type="continuous">
        <origin xyz="0.18 0 -0.045" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="front_caster_link"/>
        <axis xyz="0 1 0"/>
   </joint>

   <link name="front_caster_link">
        <visual>
             <origin xyz="0 0 0" rpy="0 0 0" />
             <geometry>
                 <sphere radius="0.03" />
             </geometry>
             <material name="black">
                 <color rgba="0 0 0 0.95"/>
             </material>
        </visual>
   </link>

   <joint name="back_caster_joint" type="continuous">
        <origin xyz="-0.18 0 -0.045" rpy="0 0 0"/>
        <parent link="base_link"/>
        <child link="back_caster_link"/>
        <axis xyz="0 1 0"/>
   </joint>

   <link name="back_caster_link">
        <visual>
             <origin xyz="0 0 0" rpy="0 0 0" />
             <geometry>
                 <sphere radius="0.03" />
             </geometry>
             <material name="black">
                 <color rgba="0 0 0 0.95"/>
             </material>
        </visual>
   </link>
   
</robot>

效果:

9125154-4a9abf75472cc220.png