ROS学习之路--创建smartcar仿真机器人(基于kinetic)

根据古月大神的blog和个人调试经验:(古月居blog  http://www.guyuehome.com/243)

1.创建硬件描述包 

roscreat-pkg  smartcar_description  urdf roscpp rospy std_msgs

2.创建URDF文件

cd  smartcar_description && mkdir -p urdf

cd urdf && touch smartcar.urdf

smartcar.urdf 文件内容如下:

   

 
 
<?xml version="1.0"?>  
    <robot name="smartcar">  
      <link name="base_link">  
        <visual>  
          <geometry>  
            <box size="0.25 .16 .05"/>  
        </geometry>  
        <origin rpy="0 0 1.57075" xyz="0 0 0"/>  
        <material name="blue">  
            <color rgba="0 0 .8 1"/>  
        </material>  
        </visual>  
     </link>  

     <link name="right_front_wheel">  
        <visual>  
          <geometry>  
            <cylinder length=".02" radius="0.025"/>  
          </geometry>  
          <material name="black">  
            <color rgba="0 0 0 1"/>  
          </material>  
        </visual>  
      </link>  

      <joint name="right_front_wheel_joint" type="continuous">  
        <axis xyz="0 0 1"/>  
        <parent link="base_link"/>  
        <child link="right_front_wheel"/>  
        <origin rpy="0 1.57075 0" xyz="0.08 0.1 -0.03"/>  
        <limit effort="100" velocity="100"/>  
        <joint_properties damping="0.0" friction="0.0"/>  
      </joint>  

      <link name="right_back_wheel">  
        <visual>  
          <geometry>  
            <cylinder length=".02" radius="0.025"/>  
          </geometry>  
          <material name="black">  
            <color rgba="0 0 0 1"/>  
          </material>  
        </visual>  
      </link>  

      <joint name="right_back_wheel_joint" type="continuous">  
        <axis xyz="0 0 1"/>  
        <parent link="base_link"/>  
        <child link="right_back_wheel"/>  
        <origin rpy="0 1.57075 0" xyz="0.08 -0.1 -0.03"/>  
        <limit effort="100" velocity="100"/>  
        <joint_properties damping="0.0" friction="0.0"/>  
     </joint>  

     <link name="left_front_wheel">  
        <visual>  
          <geometry>  
            <cylinder length=".02" radius="0.025"/>  
          </geometry>  
          <material name="black">  
            <color rgba="0 0 0 1"/>  
          </material>  
        </visual>  
      </link>  

      <joint name="left_front_wheel_joint" type="continuous">  
        <axis xyz="0 0 1"/>  
        <parent link="base_link"/>  
        <child link="left_front_wheel"/>  
        <origin rpy="0 1.57075 0" xyz="-0.08 0.1 -0.03"/>  
        <limit effort="100" velocity="100"/>  
        <joint_properties damping="0.0" friction="0.0"/>  
      </joint>  

      <link name="left_back_wheel">  
        <visual>  
          <geometry>  
            <cylinder length=".02" radius="0.025"/>  
          </geometry>  
          <material name="black">  
            <color rgba="0 0 0 1"/>  
          </material>  
        </visual>  
      </link>  

      <joint name="left_back_wheel_joint" type="continuous">  
        <axis xyz="0 0 1"/>  
        <parent link="base_link"/>  
        <child link="left_back_wheel"/>  
        <origin rpy="0 1.57075 0" xyz="-0.08 -0.1 -0.03"/>  
        <limit effort="100" velocity="100"/>  
        <joint_properties damping="0.0" friction="0.0"/>  
      </joint>  

      <link name="head">  
        <visual>  
          <geometry>  
            <box size=".02 .03 .03"/>  
          </geometry>  
          <material name="white">  
              <color rgba="1 1 1 1"/>  
          </material>  
        </visual>  
      </link>  

      <joint name="tobox" type="fixed">  
        <parent link="base_link"/>  
        <child link="head"/>  
        <origin xyz="0 0.08 0.025"/>  
      </joint>  
    </robot>


3.创建launch文件

cd  ~/smartcar_description  && mkdir -p launch    
cd  launch   && touch base.urdf.rviz.launch 
<launch>  
    <arg name="model" />  
    <arg name="gui" default="False" />  
    <param name="robot_description" textfile="($find urdf_tutorial)/home/daniel/catkin_ws/src/smartcar/urdf/smartcar.urdf)" />  
    <param name="use_gui" value="$(arg gui)"/>  
    <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />  
    <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />  
        <node name="rviz" pkg="rviz" type="rviz" args="-d $(find urdf_tutorial)/urdf.rviz" required="true" />  
</launch>  

4.效果演示

roslaunch  smartcar_description  base.urdf.rviz.launch  gui:=true


猜你喜欢

转载自blog.csdn.net/yhf2333/article/details/79748114
今日推荐