教程一:创建一个模型
一.简述
该教程主要讲述SDF文件的细节.
二.SDF模型的组成部分
links:它描述了一个模型的的一部分身体的物理属性.每一个link都可能包含许多个collision和visual属性.减少links的数量能够提升模型的稳定性.
collision:它封装了geometry属性来用于碰撞检测.一个link可能由多个collision元素.
visual:它用于可视化link的各个部分.一个link可能包含0个或多个visual元素.
inertial:它描述了link的动态属性,例如质量和转动惯量矩阵.
sensor:它为插件收集外界数据.一个link可能包含0个或多个sensors.
light:它描述光源.一个link可能包含0个或多个lights.
joints:它连接两个link.
plugins:它是由第三方为了控制模型建立的共享库.
三.建立一个模型
第一步:收集meshes(网格)
这一步包括获取你所需要的所有三维mesh文件.Gazebo提供了一些简单的形状:方形,圆形,圆柱.如果需要更复杂的形状,继续往下读.
Meshes可以从许多地方获得.Google's 3D warehouse是一个获取3D模型的不错的库.或者如果你已经有了必要的文件的话,可以通过Blender或Sketchup建立一个自己的mesh.
Gazebo要求mesh文件以STL,Collada或OBJ格式存储,后两者是首选.
第二步:为你的模型建立SDF文件
最好以一个简单的模型开始,或者复制已有的模型文件来开始.这样的好处是不用从头开始且便于调试.
现在有一个非常基础的小盒子模型文件.
创建 box.sdf 模型文件
gedit box.sdf
复制下列内容到 box.sdf 文件中
要注意这个物体的原点在盒子的几何中心,所以为了把它放在地面上,设置
Tip:在建立模型时设置为不可移动是很有用的.一旦那你完成了模型的建立,可以设置
第三步:向SDF文件中添加属性
添加特征的一个比较好的顺序是:
1.添加一个link
2.设置collision标签
3.设置visual标签
4.设置inertial属性
5.回到步骤1直到所有links都被添加
6.添加所有的joints(如果有)
7.添加所有的plugins(如果有)
教程二:创建一个移动机器人
一.创建你的model文件夹
1.创建model文件夹
mkdir -p ~/.gazebo/models/my_robot
2.创建一个model config文件
gedit ~/.gazebo/models/my_robot/model.config
3.复制以下内容
My awesome robot.
4.在该路径~/.gazebo/models/my_robot/下创建model.sdf文件
gedit ~/.gazebo/models/my_robot/model.sdf
5.复制以下内容
通过这一部分内容我们已经拥有了模型的一些基础内容.model.config文件描述了这个机器人的一些额外的属性.model.sdf文件包含了必要的标签,来实例化名为my_robot的模型.
二.建立模型框架
这一步将建立一个带两个轮子的长方体模型
第一步是布局模型的基本形状.为了完成这个我们需要使模型固定.
1.在 ~/.gazebo/models/my_robot/model.sdf中通过
2.添加长方体
这里建立了一个0.4x0.2x0.1米的长方体.在大多数情况下,collision和visual元素是相同的.
3.运行Gazebo查看你的模型,通过Insert Model插入模型并显示.
gazebo
你会看到一个白的漂浮的长方体.在地面上方1m处.
4.现在我们可以添加一些附属物.比如一个没有摩擦的球体.这种方法比添入一个带关节的车轮好,因为他带来的限制更少.
确认它在模型中出现了.(不需要重启Gazebo)
5.现在我们添加一个左轮.在上面的程序中添加如下代码
再次确认.
6.我们可以复制左轮然后调整他的位姿来作为右轮.继续添加如下代码
7.设置
这两个关节绕y轴旋转
8.启动Gazebo,并插入模型.然后拖拽屏幕右边的小点.
9.这样会出现一个包含各个关节不同类型控制器的窗口.
10.在Force栏下,给每个关节添加一个0.1N/m的力,这个机器人会向前移动.