Gazebo教程(五)——创建一个两轮小机器人

1、配置model的目录。

1.1创建一个model的目录。

  1. mkdir -p ~/.gazebo/models/my_robot
    

    1.2创建一个model的config文件

    gedit ~/.gazebo/models/my_robot/model.config
    
    <?xml version="1.0"?>
    <model>
      <name>My Robot</name>
      <version>1.0</version>
      <sdf version='1.4'>model.sdf</sdf>
    
      <author>
       <name>My Name</name>
       <email>me@my.email</email>
      </author>
    
      <description>
        My awesome robot.
      </description>
    </model>

    1.3创建~/.gazebo/models/my_robot/model.sdf文件

  1. gedit ~/.gazebo/models/my_robot/model.sdf
    
<?xml version='1.0'?>
<sdf version='1.4'>
  <model name="my_robot">
  </model>
</sdf>

现在我们就有了一个基本的model,这个model.config文件描述了其他元数据。这个model.sdf文件包括了所有必要的标签来例化my_robot这个model,用的是SDF 的1.4版本。

2、创建model的结构

首先我们会让model保持静止,这样物理仿真引擎就会忽略它,这样就可以让它不动方便添加其他东西。

2.1在~/.gazebo/models/my_robot/model.sdf文件中添加<static>true</static>标签,来让model保持静止不动。

2.2添加方形的盒子,单位是米,一般来说collision和visual是一样的。

          <link name='chassis'>
            <pose>0 0 .1 0 0 0</pose>

            <collision name='collision'>
              <geometry>
                <box>
                  <size>.4 .2 .1</size>
                </box>
              </geometry>
            </collision>

            <visual name='visual'>
              <geometry>
                <box>
                  <size>.4 .2 .1</size>
                </box>
              </geometry>
            </visual>
          </link>

2.3利用gazebo测试model。

2.4现在我们给机器人添加一个万向轮,这个万向轮是球形的,没有摩擦力。万向轮的好处是在物理仿真引擎中的限制更少。

<collision name='caster_collision'>
            <pose>-0.15 0 -0.05 0 0 0</pose>
            <geometry>
                <sphere>
                <radius>.05</radius>
              </sphere>
            </geometry>

            <surface>
              <friction>
                <ode>
                  <mu>0</mu>
                  <mu2>0</mu2>
                  <slip1>1.0</slip1>
                  <slip2>1.0</slip2>
                </ode>
              </friction>
            </surface>
          </collision>

          <visual name='caster_visual'>
            <pose>-0.15 0 -0.05 0 0 0</pose>
            <geometry>
              <sphere>
                <radius>.05</radius>
              </sphere>
            </geometry>
          </visual>

2.5现在添加左右轮。

      <link name="left_wheel">
        <pose>0.1 0.13 0.1 0 1.5707 1.5707</pose>
        <collision name="collision">
          <geometry>
            <cylinder>
              <radius>.1</radius>
              <length>.05</length>
            </cylinder>
          </geometry>
        </collision>
        <visual name="visual">
          <geometry>
            <cylinder>
              <radius>.1</radius>
              <length>.05</length>
            </cylinder>
          </geometry>
        </visual>
      </link>
      <link name="right_wheel">
        <pose>0.1 -0.13 0.1 0 1.5707 1.5707</pose>
        <collision name="collision">
          <geometry>
            <cylinder>
              <radius>.1</radius>
              <length>.05</length>
            </cylinder>
          </geometry>
        </collision>
        <visual name="visual">
          <geometry>
            <cylinder>
              <radius>.1</radius>
              <length>.05</length>
            </cylinder>
          </geometry>
        </visual>
      </link>

2.6把<static>标签设置为false,并且为左右轮子添加hinge joints。

 <joint type="revolute" name="left_wheel_hinge">
        <pose>0 0 -0.03 0 0 0</pose>
        <child>left_wheel</child>
        <parent>chassis</parent>
        <axis>
          <xyz>0 1 0</xyz>
        </axis>
      </joint>

      <joint type="revolute" name="right_wheel_hinge">
        <pose>0 0 0.03 0 0 0</pose>
        <child>right_wheel</child>
        <parent>chassis</parent>
        <axis>
          <xyz>0 1 0</xyz>
        </axis>
      </joint>

2.7启动gazebo,插入my_robot并通过鼠标拖动它转动。

2.8在新的窗口中,每个joint都可能包含多个驱动器。

2.9在force tab下面,给诶个joint的驱动力设置为0.1Nm,这样机器人就会自己运动了。

 

 

 

 

发布者

harifun

小学的时候,说自己要当一名科学家!那时候,看到新闻联播在宣传“四化”,立志要为现代化作出贡献!高中立志要做机器人,本科和硕士学的自动化!毕业进入华为,因为是测试岗位而离开,然后进入创业公司做工业扫地机器人和服务式机器人!A轮完成数千万级融资后因家庭原因离开上海,回武汉进入一家上市公司从事激光雷达设计工作!机器人是我一直以来的追求,希望有一天我能实现我的理想!

发表评论

电子邮件地址不会被公开。 必填项已用*标注