sdf 与 urdf 的转换

首先建立一个简单的sdf文件熟悉语法

  1. 创建一个模型目录

    mkdir -p ~/.gazebo/models/my_robot
    
  2. 创建config文件

    gedit ~/.gazebo/models/my_robot/model.config
    
  3. 粘贴以下代码

<?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. 创建sdf文件
gedit ~/.gazebo/models/my_robot/model.sdf
  1. 粘贴如下文件
<?xml version='1.0'?>
<sdf version='1.4'><model name="my_robot"></model>
</sdf>

建立模型的结构

  1. 建立一个长方体
      <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>

在这里,我们创建了一个大小为0.4 x 0.2 x 0.1米的长方体。碰撞元素指定碰撞检测引擎使用的形状。视觉元素指定渲染引擎使用的形状。对于大多数用例,碰撞和可视元素是相同的。不同碰撞和视觉元素最常用的用法是将简化碰撞元素与使用复杂网格的视觉元素配对。这将有助于提高性能。

  1. 查看机器人
gazebo
  1. 添加脚轮。脚轮是一个没有摩擦力的球体。这种脚轮后倾角比添加带接头的车轮要好,因为它对物理引擎的约束更少。
  <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>
  1. 添加左轮
 <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>
  1. 添加右轮
   <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>
  1. 添加joint 以及改变 false

  2. 最后陈列全部代码

<?xml version='1.0'?>
<sdf version='1.4'><model name="my_robot"><static>false</static><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><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></model>
</sdf>
  1. 建议利用相同的方法建立自己的sdf模型

sdf 模型gazebo入门相关推荐

  1. 【Gazebo入门教程】第二讲 模型库导入与可视化机器人建模(模型编辑器)

    [Gazebo入门教程]第二讲 模型库导入与可视化机器人建模(模型编辑器) 文章目录 [Gazebo入门教程]第二讲 模型库导入与可视化机器人建模(模型编辑器) 一.模型库导入 二.模型编辑器(以轮式 ...

  2. 【Gazebo入门教程】第三讲 SDF文件的静/动态编程建模

    [Gazebo入门教程]第三讲 SDF文件的静/动态编程建模 文章目录 [Gazebo入门教程]第三讲 SDF文件的静/动态编程建模 一.自定义模型并导入Gazebo 1. 基础操作准备 2. 建立模 ...

  3. 【Gazebo入门教程】第一讲 Gazebo的安装、UI界面、SDF文件介绍

    [Gazebo入门教程]第一讲 Gazebo的安装.UI界面.SDF文件介绍 文章目录 [Gazebo入门教程]第一讲 Gazebo的安装.UI界面.SDF文件介绍 一.Gazebo的简介与安装 1. ...

  4. 【从零开始的ROS四轴机械臂控制】(三) - 为机械臂添加摄像头和夹爪、解决gazebo模型抖动、使用gazebo建立sdf模型

    [从零开始的ROS四轴机械臂控制(三)] 五.在gazebo中添加摄像头 1.修改arm1.gazebo.xacro文件 2.修改arm1.urdf.xacro文件 3.查看摄像头图像 六.为模型添加 ...

  5. gazebo入门_Gazebo仿真控制中,有哪些你不知道的秘密?

    大家好,我是(月更侠)小明,很高兴我们又见面啦.相信大家从我之前的文章中能看出来,我所讲的内容基本都面向ROS新人,因为大家刚入门时,往往很难一窥程序的深层运行逻辑,使得许多问题迟迟无法解决,甚是耽误 ...

  6. 【Gazebo入门教程】第四讲 场景建模/建筑编辑器

    [Gazebo入门教程]第四讲 场景建模/建筑编辑器 文章目录 [Gazebo入门教程]第四讲 场景建模/建筑编辑器 一.场景编辑器 1.1 打开方式: 1.2 UI界面分析: 二.导入平面图 2.1 ...

  7. 【Gazebo入门教程】第六讲 控制器插件的编写与配置(下)

    [Gazebo入门教程]第六讲 控制器插件的编写与配置(下) \qquad 文章目录 [Gazebo入门教程]第六讲 控制器插件的编写与配置(下) 一.系统插件 二.Velodyne传感器插件 1. ...

  8. 【Gazebo入门教程】第五讲 控制器插件的编写与配置(上)

    [Gazebo入门教程]第五讲 控制器插件的编写与配置(上) 文章目录 [Gazebo入门教程]第五讲 控制器插件的编写与配置(上) 一.控制插件的使用方法 1. 插件简介 2. 插件编写流程 二.模 ...

  9. EJB-Java服务器端构件模型使用入门(2)

    -------------------------------------------------------------------------------- 好喜爱学习网 HaoXiAi.Net ...

最新文章

  1. PointASNL: 点云的Adaptive Sampling(CVPR2020)
  2. 操作系统四: 内存连续分配
  3. 调用Win32 API 之CreateCursor函数失败
  4. rowdata java_Java RowDataUtil.addRowData方法代碼示例
  5. 形象化理解 SpringBoot + SpringCloud
  6. 有道云怎么换行_markdown换行语法 有道云笔记markdown怎么换行?
  7. ocienvcreate php 失败_win7 homebasic下,.net2008 连接oracle,提示错误OCIEnvCreate
  8. linux下mysql主从不同步
  9. Java注解之自定义注解
  10. 【干货】PS 如何快速抠图示例
  11. win10计算机升级系统,微软Win10升级助手
  12. 我的科四刷题笔记,记完就能过
  13. 微信打开网页 提示防诈骗
  14. Postek博思得打印机
  15. 华为手机备忘录怎样设置每个月12号短信提醒要做的事
  16. 前端SEO优化的一些解决方案
  17. 好久不见我亲爱的东东了
  18. background-position什么意思
  19. 教你如何用duilib实现控件可拖动,可拖拽
  20. 网络合同翻译 英中互译常用术语有哪些

热门文章

  1. MySQL排序规则批量修改
  2. 烤仔建工 | 友谊长存,2022新年派对中韩社区艺术交流展圆满落幕
  3. 0基础学习VR全景平台篇第46篇:底部菜单- 【开场地图】与【高清矩阵】的对比
  4. 通过 POP3 协议下载电子邮件
  5. c++ byte数组转int, int转byte数组,byte数组转16进制字符串,16进制字符串转byte数组
  6. 前端知识小报第二十期
  7. 沉睡者-持久可积累的全自动网盘赚钱项目
  8. 3网口som9331搭建openwrt问题结语言
  9. 达达盈利新故事,得靠智能化“省”出来?
  10. 最全面的python编辑器/IDE介绍