背景:在一台已经搭建好gazebo的ubuntu系统。(此文是窗口操作,所有操作在终端中也可完成,终端操作方式不再叙述)
找到Home/.gazebo/models 目录,发现下面有好多内置的模型文件夹,里面内置了各种描述模型的文件,这些文件都是可以参考和学习的文件。
注意:.gazebo是隐藏文件夹,需要ctrl+H强制显示,才可以在ubuntu的文件管理器中看到。
step1
在models文件夹下面,我们新建一个名为my_robot的文件夹。
step2
进入到my_robot文件夹中,右键新建一个model.config的空白文档。
并编辑此文件,输入以下代码,保存退出。
此段代码用来描述我们新建的仿真模型,具体含义挺通俗易懂的,不再具体解释。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?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> |
step3
在my_robot文件夹中,右键新建一个model.sdf的空白文档。这个是重点的模型文件。
在其中输入以下代码并保存退出。解释在代码中注释过了,可以看一下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
<?xml version="1.0" encoding="utf-8"?> <sdf version="1.4"> <model name="my_robot"> <!--官方文档地址:http://sdformat.org/tutorials?cat=specification&--> <static>true</static> <!--添加长方形底座。 创建的是一个0.4*0.2*0.1米的盒子,由于盒子高为0.2,以盒子的中心点为坐标系, 故需要<pose>0 0 .1 0 0 0</pose>,碰撞元素(collision)指定了所使用的碰 撞检测引擎的形状,视觉元素(visual)指定了视图引擎的形状,大部分的例子中, collision和visual是相同的,最常见的使用不同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> <!--添加一个万向轮,万向轮是一个没有摩擦的球体。--> <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> </link> <!--增加左右轮。--> <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> </model> </sdf> |
保存退出。
至此我们的模型文件夹目录下文件结构如下。
step4
测试我们新建的机器人。
终端中输入gazebo并回车,打开gazebo软件。
我们在左侧选项卡Insert中,往下翻,会找到一个名为My Robot的模型,点击此模型名字,然后在右方地图中合适位置,单击鼠标左键,即可在地图中添加我们新建的机器人小车。
至此,我们的小车模型可以正常在gazebo软件中显示,说明我们的sdf文件没有问题。
其他
SDF官方文档地址:http://sdformat.org/tutorials?cat=specification&
官方网址http://sdformat.org也可以下载SDFFormat软件源码,下载速度挺快的,就不放网盘了。
gazebo地图操作技巧 :
缩放地图:鼠标滚轮在地图上滚动
旋转角度:shift键+鼠标左键按住 上下左右拖拽即可旋转地图视角。
左键选中模型,在上面右键,可以移动或者删除等。
Comments | NOTHING