gazebo是ROS中的一个实现物理仿真的工具包,gazebo本身就是一款机器人的仿真软件,基于ODE的物理引擎,可以模拟机器人以及环境中的很多物理特性。
注意,gazebo和rviz是不同的工具包,不要混淆。
类似于rviz工具,在gazebo工具中也可以加载机器人模型。
加载的步骤:
(1)安装gazebo工具包
(2)新建工程,将包的路径位置加入到环境变量ROS_PACKAGE_PATH中
(3)新建.xacro文件并编辑内容
(4)新建.world文件并编辑内容
(5)新建.launch文件并编辑内容
(6)使用命令显示
其中.xacro文件包括机器人模型信息的文件,.world是gazebo环境地图文件,.launch为启动脚本。
1)安装gazebo工具包
sudo apt-get install ros-hydro-gazebo-ros-pkgs ros-hydro-gazebo-roscontrol
1
安装成功
运行
rosrun gazebo_ros gazebo
1
打开gazebo工具界面

(2)新建工程,将包的路径位置加入到环境变量ROS_PACKAGE_PATH中

mkdir -p workspace/src
cd workspace
catkin_make
出现以下代码则成功:

source devel/setup.bash
cd src
catkin_create_pkg gazebotest urdf xacro
如下:

(3)新建.xacro文件并编辑内容
a)新建文件夹urdf
mkdir urdf
b)在urdf文件夹下编辑touch robot1_xacro.xacro文件如下

<?xml version="1.0"?>

<xacro:property name="length_wheel" value="0.05" />
<xacro:property name="radius_wheel" value="0.05" />
<xacro:macro name="default_inertial" params="mass"><inertial><mass value="${mass}" /><inertia ixx="1.0" ixy="0.0" ixz="0.0"iyy="1.0" iyz="0.0"izz="1.0" /></inertial>
</xacro:macro><link name="base_footprint"><visual><geometry><box size="0.001 0.001 0.001"/></geometry><origin rpy="0 0 0" xyz="0 0 0"/></visual><xacro:default_inertial mass="0.0001"/>
</link><gazebo reference="base_footprint"><material>Gazebo/Green</material><turnGravityOff>false</turnGravityOff>
</gazebo><joint name="base_footprint_joint" type="fixed"><origin xyz="0 0 0" /><parent link="base_footprint" /><child link="base_link" />
</joint><link name="base_link"><visual><geometry><box size="0.2 .3 .1"/></geometry><origin rpy="0 0 1.54" xyz="0 0 0.05"/><material name="white"><color rgba="1 1 1 1"/></material></visual><collision><geometry><box size="0.2 .3 0.1"/></geometry></collision><xacro:default_inertial mass="10"/>
</link><link name="wheel_1"><visual><geometry><cylinder length="${length_wheel}" radius="${radius_wheel}"/></geometry><!-- <origin rpy="0 1.5 0" xyz="0.1 0.1 0"/> --><origin rpy="0 0 0" xyz="0 0 0"/><material name="black"><color rgba="0 0 0 1"/></material></visual><collision><geometry><cylinder length="${length_wheel}" radius="${radius_wheel}"/></geometry></collision><xacro:default_inertial mass="1"/>
</link><link name="wheel_2"><visual><geometry><cylinder length="${length_wheel}" radius="${radius_wheel}"/></geometry><!-- <origin rpy="0 1.5 0" xyz="-0.1 0.1 0"/> --><origin rpy="0 0 0" xyz="0 0 0"/><material name="black"/></visual><collision><geometry><cylinder length="${length_wheel}" radius="${radius_wheel}"/></geometry></collision><xacro:default_inertial mass="1"/></link><link name="wheel_3"><visual><geometry><cylinder length="${length_wheel}" radius="${radius_wheel}"/></geometry><!-- <origin rpy="0 1.5 0" xyz="0.1 -0.1 0"/> --><origin rpy="0 0 0" xyz="0 0 0"/><material name="black"/></visual><collision><geometry><cylinder length="${length_wheel}" radius="${radius_wheel}"/></geometry></collision><xacro:default_inertial mass="1"/>
</link><link name="wheel_4"><visual><geometry><cylinder length="${length_wheel}" radius="${radius_wheel}"/></geometry><!--    <origin rpy="0 1.5 0" xyz="-0.1 -0.1 0"/> --><origin rpy="0 0 0" xyz="0 0 0" /><material name="black"/></visual><collision><geometry><cylinder length="${length_wheel}" radius="${radius_wheel}"/></geometry></collision><xacro:default_inertial mass="1"/></link>

可以看到标签设置了物理属性如颜色为绿色 (4)新建.world文件并编辑内容 a)新建文件夹world mkdir world b)在world 文件夹下新建并编辑touch robot.world文件 如下 <?xml version="1.0" ?> model://ground_plane

<!-- Global light source -->
<include><uri>model://sun</uri>
</include><!-- Focus camera on tall pendulum -->
<gui fullscreen='0'><camera name='user_camera'><pose>4.927360 -4.376610 3.740080 0.000000 0.275643 2.356190</pose><view_controller>orbit</view_controller></camera>
</gui>

发现文件的参数就是配置些灯光视角参数。
(5)新建.launch文件并编辑内容
新建lauch文件夹并新建gazebo.launch如下

<?xml version="1.0"?>

注意着行代表表示加载的.world文件位置,(find gazebotest)返回的是包的绝对路径。

1
(6)使用命令显示
使用如下命令
roslaunch gazebotest gazebo.launch model:="$(rospack find gazebotest)/urdf/robot1_xacro.xacro"//或者使用绝对路径命令
roslaunch gazebotest gazebo.launch model:="/root/dev/workspace/gazebotest/urdf/robot1_xacro.xacro"

ROS中gazebo工具学习(使用gazebo加载机器人模型)相关推荐

  1. 用launch文件在rviz中加载机器人模型

    1.创建功能包:"catkin_creak_pkg 功能包名 依赖"(catkin_create_pkg mrobot_description xacro urdf) 2.urdf ...

  2. 【ROS】中级操作学习整理-gazebo机器人仿真

    系列文章目录 ·[ROS]中级操作学习整理-gazebo机器人仿真 ·[ROS]中级操作学习整理-TF坐标变换 ·[ROS]中级操作学习整理-传感器建模 ·[ROS]中级操作学习整理-激光SLAM 目 ...

  3. gazebo加载world模型

    使用launch文件启动gazebo加载world模型,或者说是将world模型加入gazebo仿真器中作为环境. first,我们应该告诉gazebo 要加载的world文件放在哪里.并通过arg标 ...

  4. ROS系统SLAM基础学习:gazebo仿真机器人自主导航

    ROS系统SLAM基础学习:gazebo仿真机器人自主导航 move_base节点配置 amcl节点配置 导航仿真 导航SLAM仿真 自主探索SLAM仿真 自主导航:避障 遇到的问题及解决方法和总结 ...

  5. Pytorch:NLP 迁移学习、NLP中的标准数据集、NLP中的常用预训练模型、加载和使用预训练模型、huggingface的transfomers微调脚本文件

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) run_glue.py微调脚本代码 python命令执行run ...

  6. Gazebo仿真--加载世界模型

    加载世界模型 例子: <launch><include file="$(find gazebo_ros)/launch/empty_world.launch"&g ...

  7. postgresql源码学习(57)—— pg中的四种动态库加载方法

    一. 基础知识 1. 什么是库 库其实就是一些通用代码,可以在程序中重复使用,比如一些数学函数,可以不需要自己编写,直接调用相关函数即可实现,避免重复造轮子. 在linux中,支持两种类型的库: 1. ...

  8. xBIM 实战01 在浏览器中加载IFC模型文件

    系列目录    [已更新最新开发文章,点击查看详细]  一.创建Web项目 打开VS,新建Web项目,选择 .NET Framework 4.5  选择一个空的项目 新建完成后,项目结构如下: 二.添 ...

  9. 2、Ktor学习-自动重新加载;

       在开发过程中,快速反馈循环周期非常重要. 通常,重新启动服务器可能需要一些时间,因此Ktor提供了一个基本的自动重载工具,可以重新加载Application类. 注:自动重载不支持java 9, ...

  10. 深入java虚拟机学习 -- 类的加载机制(续)

    昨晚写 深入java虚拟机学习 -- 类的加载机制 都到1点半了,由于第二天还要工作,没有将上篇文章中的demo讲解写出来,今天抽时间补上昨晚的例子讲解. 这里我先把昨天的两份代码贴过来,重新看下: ...

最新文章

  1. 重构风险程序员一定要遵守的规则
  2. cocos dos命令
  3. 【mycat】简介及安装
  4. [转载] 人类智能PK人工智能——06 计算智能
  5. Android开发中Handler的经典总结
  6. 看看,这就是微软的“万物互联”系统 window10 IOT
  7. python参考手册 豆瓣_python之父亲自撰写两年后豆瓣评分9.8《python深度学习》PDF分享...
  8. C++ Boost库简介
  9. mvnrepository总是出现烦人的one more step验证
  10. checkbox wpf 改变框的大小_【论文阅读】倾斜目标范围框(标注)的终极方案
  11. pci内存控制器是什么驱动_以微软的技术实力, win10还会出现硬盘100%占用的问题,为什么呢?...
  12. 图像质量评价(Image Quality Assessment,IQA)
  13. Android 图片文字识别
  14. win7忘记密码解决,Administrator账号密码忘记 解决办法
  15. HTML和CSS小知识点笔记
  16. page loading strategy
  17. 用windows server 2003搭建文件服务器,windows server 2003文件服务器搭建的权限划分.doc...
  18. 利用数据库在java实现已读未读消息公告
  19. python打开word并定位_python自动化办公之 python操作Word
  20. onblur和onfocus

热门文章

  1. ModBus那些傻傻分不清
  2. MySQL系统认识与使用-----最全MySQL应用
  3. 淘宝数据魔方技术架构解析
  4. GUI-Guider中文手册
  5. 新手学编程?选python吧!
  6. 蜂鸣器音乐代码 天空之城_歌单 | 音乐拥有魔力
  7. 层次分析法(AHP)模型的应用案例
  8. java打开教程,jar文件打开教程
  9. 巧用CSS文件愚人节恶搞
  10. 武汉纺织大学计算机考试在哪个校区,武汉纺织大学校区有几个 地址是什么