Gazebo系列教程< 构建一个机器人 2.1> 创建本体

本文介绍如何使用Gazebo创建机器人模型,包括模型结构、SDF文件编写及构建差动驱动机器人等关键技术。

目录

一、模型结构与要求

1.模型数据库结构

二、设计一个模型

1.SDF模型组成

2.构建一个模型

三、构建一个可移动的机器人

1.建立模型路径

2.建立模型的结构


 

一、模型结构与要求

gazebo可以通过GUI或者编程方式动态的加载模型。

Gazebo中的模型定义了具有动态、运动学和视觉属性的物理实体。另外,一个模型可能有一个或多个插件,这些插件会影响模型的行为。

模型可以代表任何东西,从简单的形状到复杂的机器人;甚至地面也是一个模型。

可以通过一下方式下载模型数据库:

 git clone https://github.com/osrf/gazebo_models

1.模型数据库结构

 为了更好的管理以及设计,模型数据库必须遵循特定的目录和文件结构。

数据库的结构如下所示(仅有一个model_1的情况下):

模型数据库的根目录包含两部分:(1)一个保存数据库信息的database.config配置文件;(2)所有模块的目录;

在每个模块的目录之下也包含一个model.config,内部是关于每个model的meta-data(应该翻译成元数据吧,我理解的就是原始数据吧)。

同时模型的目录下还包含模型、任何材质和插件的SDF文件。

以下是针对上述根目录包含的两部分,分别就具体内容进行说明:

(1)database 配置

注意编辑这里采用gedit,如果采用gvim编辑config与sdf可能存在gazebo不识别模型的情况。

database.config的格式如下:

<?xml version='1.0'?>
<database>
  <name>name_of_this_database</name>
  <license>Creative Commons Attribution 3.0 Unported</license>
  <models>
    <uri>file://model_directory</uri>
  </models>
</database>

database.config包含了数据库名字、模型的license信息,以及一个有效模型的列表。

(2)模型配置

每个模块必须在其根目录包含一个模型的配置文件

model.config的格式如下所示:

<?xml version="1.0"?>

<model>
  <name>My Model Name</name>
  <version>1.0</version>
  <sdf version='1.5'>model.sdf</sdf>

  <author>
    <name>My name</name>
    <email>name@email.address</email>
  </author>

  <description>
    A description of the model
  </description>
</model>

关于name、version、author这几项参数此处不解释,相信大家也能明白。

sdf参数,需要填入sdf文件,这里的sdf文件可以是网上下载的也可以是自己编辑的,description则是对于该模型的描述;

 

二、设计一个模型

SDF模型可以从简单的形状到复杂的机器人。其本质上就是连接(link),关节(joint)、碰撞对象、视觉效果和插件的集合。

1.SDF模型组成

sdf的模型组成主要包括links、joints、plugins,其中links又包括collision、visual、inertial、sensor、light。

(1)links

是一个模型的实体的物理特性,links可以是一个车轮、一个链环。每个link又可能包含可视化与碰撞部分。

因为碰撞检测的计算量非常大,甚至占到整个机器人控制中的90%以上,所以往往会通过简化模型的方式来降低碰撞检测的运算量。

所以才会有碰撞模型与可视化模型,可视化模型一般就是实际的模型外观,而碰撞模型则尽量采用规则的形状,力求简单。

(2)joints

joint是连接两个link的节点,也就是关节,关节参数主要包括子节点、父节点、旋转轴以及关节角限制。

(3)plugins

插件是由第三方创建的库

2.构建一个模型

gazebo到这里才开始涉及到实际的东西,终于可以动手操作一些东西了!

gazebo提供一些简单的例如长方体、球、圆柱基本的模型,在不满足设计要求的情况下,也可以通过绘图软件自己设计。

gazebo需要的模型文件的格式包括:STL,Collada,OBJ

产生一个简单的SDF文件:

<?xml version='1.0'?>
<sdf version="1.4">
  <model name="my_model">
    <pose>0 0 0.5 0 0 0</pose>
    <static>true</static>
    <link na
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值