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

2023-05-16

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

在这里插入图片描述

文章目录

  • 【Gazebo入门教程】第二讲 模型库导入与可视化机器人建模(模型编辑器)
    • 一、模型库导入
    • 二、模型编辑器(以轮式车辆构造为例)
      • 1. 用户界面介绍
      • 2. 轮式车辆实例分析
  • 总结

一、模型库导入

  • 1.1 下载模型文件

此处的模型文件可以自行寻找下载,这里提供一个链接供大家参考,此文件包含许多常用模型,使用时下载为压缩包格式即可,Ubuntu下解压缩、移动文件的指令链接博客:Ubuntu常见指令 ,下载链接如下:

	https://github.com/osrf/gazebo_models
  • 1.2 创建models文件夹

\qquad 指令如下:此处需要注意,gazebo文件夹为隐藏文件,需要Ctrl + H解除隐藏

	cd /usr/share/gazebo-11
	mkdir -p models

\qquad 此处的gazebo文件夹路径常为/usr/share/gazebo-11等

  • 1.3 拷贝模型文件
  1. 将压缩包移动到models文件夹下:
sudo mv /home/zhaoxu/Downloads/gazebo_models_master.zip /usr/share/gazebo-11/models
  1. 解压压缩包:转移到指定目录下,使用如下解压指令
sudo unzip gazebo_models_master.zip
  • 1.4 测试

\qquad 打开gazebo,在INSERT面板中选择模型导入(需要增加对应路径),效果如下:

在这里插入图片描述


二、模型编辑器(以轮式车辆构造为例)


1. 用户界面介绍

  • 进入模型编辑器:
  1. 顶部菜单栏点击Edit,选择Model Editor
  2. 使用热键Ctrl + M

\qquad 注意:进入模型编辑器后主界面仿真将会暂停,底部工具栏会隐藏,其余与主界面很相似,具体如下

在这里插入图片描述

① 工具栏:编辑模型的工具

\qquad 工具包含与场景对象交互的工具,从左到右分别是:

平移、缩放、旋转、撤销与重做、复制和粘贴、对齐、捕捉、视图调整及联合创建


② 调色板:左面板

\qquad 左面板具体包含INSERT选项卡和MODEL选项卡,具体介绍如下


\qquad (1)INSERT选项卡

  • 基本功能:将新零件(链接和模型)添加到模型编辑器,具体部分如下;
  1. 简单形状:基本几何形状,在模型中形成链接;
  2. 自定义形状:从模型链接中导入自定义网格,支持COLLADA(.dae),3D Systems(.stl),Wavefront(.obj)和W3C SVG(.svg)文件
  3. 模型数据库:模型列表,可按与简单形状相同方式插入;

\qquad (2)MODEL选项卡

  • 基本功能:设置模型名称和基本参数,显示模型中的链接、关节、模型约束和插件

\qquad 注意:修改参数使用Link Inspector,打开方式如下,具体内部界面在实例中解释:

  1. 双击模型列表中的项目;
  2. 右键单击列表中的项目,选择Open Link Inspector;
  3. 双击场景中的项目;
  4. 右键单击场景中的项目,选择Open Link Inspector;

③ 可视化建模的缺陷:需要通过SDF文件完成

  1. 无法编辑嵌套模型及其中的链接;
  2. 无法添加和编辑类似于“平面、折线”等几何图形;
  3. 不支持高度图、CAD等功能;

2. 轮式车辆实例分析


(1)底盘

\qquad ① 创建底盘(INSERT)

\qquad 左侧面板的INSERT选项卡,单击box图标,拖动移到场景中的目标位置,单击释放:

在这里插入图片描述

\qquad ② 调整底盘尺寸(工具栏缩放)

\qquad 首先选中缩放工具,然后在主界面选中底盘,出现RGB标记,红色标记代表X轴,绿色代表Y,蓝色代表Z,单击拖动对应标记缩放底盘,目标2m长(地面网格单位1m),高度为原本一半;

在这里插入图片描述

\qquad ③ 修改底盘位置(Link Inspector

\qquad 打开底盘对应的关节检查器,其中Link负责设置质量惯性密度等特性,Visual负责设置形状尺寸,Collision负责设置碰撞边界,此处需要修改Link选项卡中的Pose参数,修改Z = 0.4m,然后选择OK保存更改并退出

在这里插入图片描述

(2)前轮

\qquad ① 插入并修改轮子(INSERT&Link Inspector)

\qquad 首先从INSERT选项卡中插入圆柱体(最左侧简单形状),紧接着使用Link Inspector进行修改,将Pose中的Roll角调整为1.5707rad即90°,然后打开Visual栏,展开可视项,将Geometry中的Radius和Length分别调整为0.3m和0.25m,同样打开Collision栏,重复Visual中的操作,保存并关闭

在这里插入图片描述

注意:第一步是为了旋转圆柱,第二步是为了调整视觉尺寸,第三步是调整碰撞模拟尺寸
\qquad (如果visual和collision有差别,会出现圆柱内套圆柱即穿模的情况)

\qquad ② 复制轮子并构建关节联系(Create Joint

\qquad 首先,选中轮子后,选中工具栏中的复制图标,然后单击粘贴图标在场景中插入复制轮:

在这里插入图片描述
\qquad 给车轮和底盘间添加关节,单击工具栏上的Joint图标,进入Create Joint框:单击底盘将其设置为父代,单击轮子设置为子代,Joint Types选择为Revolute(旋转关节)

在这里插入图片描述
\qquad 配置旋转轴:将Joint axis修改为Z(0,0,1);对齐车轮与底盘:使用Joint Creation中的Align links,单击X Align Max(x栏的第三个),单击Y Align Max(Y栏的第三个),并选中右侧Reverse,将轮子的最小值(最大值的反方向)与底盘的最大值对齐,完成后将另一个轮子重复操作(此时Y Align Max应选第一个)

在这里插入图片描述

注意:为位置标准化,可将底盘位置设置为(2.0,0.787,0.332),设置好关节后将两个前轮高度设为0.3m


(3)万向轮

\qquad 首先插入一个球体,设置球体半径为0.2m,紧接着创建关节,注意:Joint types需为Ball,x轴最小对齐,y轴居中对齐,最后将小球的Z调整为0.2m即可(可从model栏中选中小球)

在这里插入图片描述

(4)传感器

\qquad 在INSERT中Model Database找到已有库,添加深度相机(Depth Camera),平移放置在大概y轴中间、小车上方,紧接着创建固定关节,令Joint typesFixed即可,图示如下:

在这里插入图片描述


(5)插件(增强模型)

\qquad 在左侧栏中MODEL选项卡,在Model Plugins下单击Add按钮,进入Model Plugin Inspector界面,按照下图所示添加插件并保存即可:

在这里插入图片描述

注意:Filename对应于本地计算机上存储的插件库的实际文件名。它以动态链接的共享库的形式存在,因此具有命名约定和扩展名.so(在Linux上),且由于Innerxml字段留空,在使用follower插件的情况下,它会对其附加的模型类型做出许多假设,并尝试自动找到关节和传感器


(6)保存模型

\qquad File菜单中选择Save As来保存模型,保存后再次进入 File菜单中选择Exit Model Editor退出模型编辑器回归仿真界面,可以通过插入其他物体开启播放观察汽车移动,编辑模型则需要右键单击小车并选择Edit Model

在这里插入图片描述


总结

  • 内容分析:本篇博客主要介绍了在Gazebo中如何导入已有的模型库,并根据一个轮式小车的详细实例对Gazebo中的模型编辑器进行了深入详细研究,通过图形化方式创建关节连杆,并通过设置关节等完成机器人连接,最后添加相应传感器和插件实现机器人的运动和其他功能,下节博客将会讲述如何使用SDF文件在Gazebo中建立机器人模型并完成仿真,敬请期待。

在这里插入图片描述

  • 注意:本文参考了Gazebo官方网站以及古月居中的Gazebo有关教程,主要目的是方便自行查询知识,巩固学习经验,无任何商业用途
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Gazebo入门教程】第二讲 模型库导入与可视化机器人建模(模型编辑器) 的相关文章

  • 【软工】程序编码

    目录 前言正文 程序设计语言 分类 选择原则 程序编码总原则 好程序的标准 结构化程序设计 主要内容 主要原则 程序设计风格 源程序文档化 数据说明 语句结构 输入输出方法 程序设计质量评价 正确性结构清晰性易修改性 易读性 简单性 程序复
  • TPM1.2到TPM 2.0的变化

    原文地址 xff1a http www vonwei com mod 61 pad amp act 61 view amp id 61 11 TPM 1 2规范主要面向PC平台 xff0c 其103版本在2009年被接受为ISO标准 xff
  • 关于Cmake与CmakeLists(一)--背景,须知,示例

    一 背景及须知 1 背景 xff1a VS2019与VS2010在编写程序时都是创建了一个工程 xff0c 然后直接打开 sln即可 但是vscode仅仅是一个编辑器 xff0c 打开之后只有 c或者 cpp文件 xff0c 故需要手动编译
  • webgl(three.js)实现室内定位,楼宇bim、实时定位三维可视化解决方案——第五课

    webgl three js 实现室内定位 楼宇bim 实时定位三维可视化解决方案 第五课 参考文章 xff1a xff08 1 xff09 webgl three js 实现室内定位 楼宇bim 实时定位三维可视化解决方案 第五课 xff
  • Linux虚拟机在线扩容lvm类型root分区

    目录 Linux虚拟机在线扩容lvm类型root分区写在前面正文写在后面 Linux虚拟机在线扩容lvm类型root分区 写在前面 这是我在CSDN上的第一篇文章 作为一个半江湖的IT人 xff0c 这些年来也在CSDN受益很多 今天是20
  • 无vCenter创建vSAN集群

    无vCenter创建vSAN集群 最近仍有朋友在问题 xff0c vCenter如果 挂了 xff0c vSAN还能正常运行吗 xff1f 这个小文通过手动创建vSAN集群的方式来解答下这个问题吧 xff08 生产环境慎用 xff01 xf
  • 记一次mdadm软raid1升级容量

    MDRaid 2块4TB做了软RAID1 xff0c 需要升级成2块8TB盘 查看磁盘信息 xff0c SerialNumber等会儿会用到 xff0c 防止换错盘 span class token function sudo span h
  • [简洁版]youtube-dl下载命令

    简介 YouTube dl是python上的pip模块 xff08 开源 xff09 xff0c 可以用来下载YouTube Bilibili等多个平台的视频 音频文件 xff0c 可谓是居家旅行必备小工具 本文主要介绍一些常用的youtu
  • [简版]VMware强大的管理工具-PowerCLI

    一 PowerCLI介绍 什么是 PowerCLI PowerCLI 是一个命令行工具 xff0c 可以用于自动化vSphere管理 xff0c 包括网络 存储 虚拟机以及其他很多功能 PowerCLI包含超过700个命令 要安装Power
  • [简版]使用PowerCLI自定义vSphere ISO安装镜像

    一 什么情况下要自定义ISO镜像 一般来说 xff0c 对于DELL Lenovo HPE这类主流的服务器厂商 xff0c VMware官方vSphere ISO镜像或者官网的第三方客制镜像 xff08 由服务器厂商提供的封装镜像 xff0
  • [简版] 关于vSphere漏洞-OpenSLP

    一 前言 近期vSphere OpenSLP漏洞在野利用的新闻频频被爆出来 xff0c 大伙儿非常关注 由于vSphere虚拟化客户之广泛 xff0c 很多朋友都表达了自己的焦虑 xff0c 同时也会担心自己管理的vSphere虚拟化平台是
  • [简版] Linux搭建SAMBA文件共享服务

    SMB服务搭建 更多参数含义参考链接 常用配置 安装samba span class token comment Ubuntu span span class token function sudo span span class toke
  • STM32 HAL库详解

    STM32 HAL库整体总结 STM32 之二 HAL库详解 及 手动移植 本篇博客是对以上参考资源的一个二次总结与整理 1 HAL库文件结构 对于开发人员而言 xff0c 首先要清楚 HAL 库的文件结构 根据文件类型可认为以下两大类 x
  • STM32 HAL库学习(四):DMA之串口空闲中断

    STM32CubeMX 配置实现参考这里 1 串口空闲中断 1 1 UART DMA方式接收数据 STM32串口使用DMA方式接收数据可以减小CPU的开销 对于接收定长数据 xff0c 可以将DMA接收缓冲区的长度设定为待接收数据的长度 x
  • Android Studio 启动模拟器出现“Timed out after 300seconds waiting for emulator to come online“解决方案

    Android Studio 启动模拟器出现 34 Timed out after 300seconds waiting for emulator to come online 34 解决方案 参考文章 xff1a xff08 1 xff0
  • 结构体中的位定义

    1 结构体位定义 在工作中 xff0c 经常遇到按位 xff08 bit xff09 定义结构体 的情况 由于一个字节有8个位 xff0c 这时 xff0c 程序员往往对bit的位置产生困惑 现在给出2个例子 xff0c 来说明位的定义次序
  • 蓝牙基础(三):蓝牙协议栈总体认知

    蓝牙基础 xff08 三 xff09 xff1a 蓝牙协议栈总体认知 0 前言 初入门经典蓝牙学习 xff0c 网上资料参差不齐 xff0c 本博客旨在整理自己的一些总结内容 xff0c 建立整体功能认识 xff0c 以便后续深入学习 1
  • FreeRTOS学习(四)任务调度与切换

    文章目录 1 任务调度2 任务切换2 1 SVC 和 PendSV2 2 上下文2 3 切换场景2 4 PendSV Handler 3 总结 1 任务调度 在建立完任务后紧接着调用任务调度函数 xff0c 便会使系统运行起来 span c
  • FreeRTOS学习(五)队列与信号量

    文章目录 1 队列1 1 队列特性1 2 队列创建1 2 1 接口函数1 2 2 内存占用1 2 3 创建过程分析 1 3 入队与出队1 3 1 队列项入队1 3 1 队列项出队 2 信号量2 1 二值信号量2 2 计数型信号量2 3 互斥
  • FreeRTOS学习(六)时间管理

    文章目录 1 延时函数1 1 vTaskDelay 1 2 vTaskDelayUntil 1 3 系统时钟节拍 2 软件定时器2 1 定时器概述2 2 定时器 API 3 总结 1 延时函数 当任务需要调用延时函数延时时 xff0c 任务

随机推荐

  • C语言 sscanf库函数

    目录 1 函数描述2 函数应用2 1 基础应用2 2 高级应用 1 函数描述 xff08 1 xff09 函数功能 xff1a 通常被用来解析并转换字符串 xff0c 从str指定的字符串读取数据 xff0c 并根据参数format字符串来
  • C语言 文件读写

    目录 1 文件打开与关闭1 1 打开文件 fopen 1 2 关闭文件 fclose 2 读取文件2 1 fgetc 2 2 fgets 2 3 fscanf 3 写入文件3 1 fputc 3 2 fputs 3 3 fprintf 1
  • C语言 条件编译

    目录 1 if elif else endif 2 ifdef else endif 3 ifndef else endif 4 三者区别 根据不同情况编译不同代码 产生不同目标文件的机制 xff0c 称为条件编译 条件编译是预处理程序的功
  • yolo 学习系列(三):训练参数与网络参数

    yolo 学习系列 xff08 三 xff09 xff1a 训练参数与网络参数 手把手教你做目标检测 xff08 YOLO SSD xff09 视频链接 1 训练参数 博主在使用 yolov2 tiny voc 训练 人 这一类目标物体时
  • Caffe 学习系列(七):MobileNet-YOLO 安装与训练

    Caffe 学习系列 xff08 七 xff09 xff1a MobileNet YOLO 安装与训练 基于darknet实现mobilenet 基于darknet框架实现DepthwiseConvolutional层 深度学习 xff08
  • 完美解决api-ms-win-crt-runtime-l1-1-0.dll 丢失问题

    完美解决api ms win crt runtime l1 1 0 dll 丢失问题 参考文章 xff1a xff08 1 xff09 完美解决api ms win crt runtime l1 1 0 dll 丢失问题 xff08 2 x
  • Moveit!入门——古月居机械臂开发笔记(一)

    Moveit 入门 古月居机械臂开发笔记 xff08 一 xff09 引言Moveit xff01 与机械臂控制1 创作机械臂模型2 生成配置文件3 如何使用Moveit xff01 实现机械臂仿真 xff08 gazebo xff09 完
  • 数据处理:Excel读取txt文本

    数据处理 xff08 一 xff09 xff1a Excel读取txt文本 1 1 任务需求 txt 文本为四列数据 xff0c 以空格为分隔符号 xff0c 现导入 Excel 中 1 2 实现步骤 新建 excel 文件点击 数据 来自
  • Raspberrypi 3 系统备份还原, 基于最小系统镜像实现

    Raspberrypi 3 备份还原系统 一 为什么要备份系统 xff1f 1 经常在树莓派上调试程序 xff0c 安装各种软件 xff0c 越来越多的库和程序的安装带来的系统更改几乎是不可逆的 xff0c 一旦某个程序或者驱动出现问题 x
  • linux 内核链表

    linux内核中大量使用如下数据结构实现双向链表 xff1a struct list head struct list head next prev 如果需要有某种数据结构的双向队列 xff0c 就在这种结构内部放一个list head数据
  • FreeRTOS任务基础知识总结

    1 单任务系统 前后台系统 xff1a 中断服务函数为前台程序 xff0c 大循环while 1 作为后台程序 前后台系统的实时性差 xff0c 但是前后台系统简单 xff0c 资源消耗少 2 FreeRTOS是一种抢占式的实时多任务系统
  • 第一章面试题整理

    一 C 43 43 域操作符的使用 include 34 stdio h 34 include 34 windows h 34 int value 61 0 初始化全局变量 void printvalue printf 34 value 6
  • 第十三届蓝桥杯JAVAB组国赛部分思路及代码

    JAVA B组参考代码 文章目录 JAVA B组参考代码 试题 A 重合次数 答案 494 试题 B 数数 答案 25606 试题 C 左移右移 思路 xff1a 对于操作从后向前记录 xff0c 最后操作的肯定是在两端 xff0c 并对该
  • MicroStrategy的面经(from bbs.byr..

    搜了一下论坛 xff0c 发现基本上没有MicroStrategy的面经 xff0c 既然有幸参加了他们的面试 xff0c 这里把面试过程给大家描述一下 xff0c 希望对后来的人有点帮助吧 1 公司介绍 xff1a 中文叫凌策软件 xff
  • 4G工业路由器的透传好处与安全因素

    透传 xff0c 通俗了说就是 透明传输 需要在保证质量的前提下 xff0c 将数据传送到目的节点 xff0c 并且不对数据做任何处理 透传一般都是用来读取远程的串口数据 例如火车站都需要刷身份证信息才能进入 xff0c 但身份证信息数据库
  • 程序员迷茫:30岁以上的“大龄程码农”出路在哪?java码农该怎么办?

    程序员生存 成功 制胜的法则源自IT精英的职业发展秘诀热爱工作 xff0c 享受生活 为什么程序员过了30就不行了 xff1f 我们被固定在 敲代码 的坑里 xff0c 一干就是10年 xff0c 再干别的早已不会 敲代码已经成了一项流水线
  • 【ROS进阶篇】第八讲(上) URDF文件的语法详解

    ROS进阶篇 第八讲 xff08 上 xff09 URDF文件的语法详解 文章目录 ROS进阶篇 第八讲 xff08 上 xff09 URDF文件的语法详解前言一 URDF的基本概念二 link标签1 标签作用2 子标签 三 joint标签
  • push to origin/master was rejected错误解决方案(IDEA)

    push to origin master was rejected错误解决方案 IDEA 参考文章 xff1a xff08 1 xff09 push to origin master was rejected错误解决方案 IDEA xff
  • 【Gazebo入门教程】第一讲 Gazebo的安装、UI界面、SDF文件介绍

    Gazebo入门教程 第一讲 Gazebo的安装 UI界面 SDF文件介绍 文章目录 Gazebo入门教程 第一讲 Gazebo的安装 UI界面 SDF文件介绍一 Gazebo的简介与安装1 基本介绍2 性能要求与安装 二 GUI界面详解1
  • 【Gazebo入门教程】第二讲 模型库导入与可视化机器人建模(模型编辑器)

    Gazebo入门教程 第二讲 模型库导入与可视化机器人建模 xff08 模型编辑器 xff09 文章目录 Gazebo入门教程 第二讲 模型库导入与可视化机器人建模 xff08 模型编辑器 xff09 一 模型库导入二 模型编辑器 xff0