ROS中gazebo工具学习(使用gazebo加载机器人模型)
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加载机器人模型)相关推荐
- 用launch文件在rviz中加载机器人模型
1.创建功能包:"catkin_creak_pkg 功能包名 依赖"(catkin_create_pkg mrobot_description xacro urdf) 2.urdf ...
- 【ROS】中级操作学习整理-gazebo机器人仿真
系列文章目录 ·[ROS]中级操作学习整理-gazebo机器人仿真 ·[ROS]中级操作学习整理-TF坐标变换 ·[ROS]中级操作学习整理-传感器建模 ·[ROS]中级操作学习整理-激光SLAM 目 ...
- gazebo加载world模型
使用launch文件启动gazebo加载world模型,或者说是将world模型加入gazebo仿真器中作为环境. first,我们应该告诉gazebo 要加载的world文件放在哪里.并通过arg标 ...
- ROS系统SLAM基础学习:gazebo仿真机器人自主导航
ROS系统SLAM基础学习:gazebo仿真机器人自主导航 move_base节点配置 amcl节点配置 导航仿真 导航SLAM仿真 自主探索SLAM仿真 自主导航:避障 遇到的问题及解决方法和总结 ...
- Pytorch:NLP 迁移学习、NLP中的标准数据集、NLP中的常用预训练模型、加载和使用预训练模型、huggingface的transfomers微调脚本文件
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) run_glue.py微调脚本代码 python命令执行run ...
- Gazebo仿真--加载世界模型
加载世界模型 例子: <launch><include file="$(find gazebo_ros)/launch/empty_world.launch"&g ...
- postgresql源码学习(57)—— pg中的四种动态库加载方法
一. 基础知识 1. 什么是库 库其实就是一些通用代码,可以在程序中重复使用,比如一些数学函数,可以不需要自己编写,直接调用相关函数即可实现,避免重复造轮子. 在linux中,支持两种类型的库: 1. ...
- xBIM 实战01 在浏览器中加载IFC模型文件
系列目录 [已更新最新开发文章,点击查看详细] 一.创建Web项目 打开VS,新建Web项目,选择 .NET Framework 4.5 选择一个空的项目 新建完成后,项目结构如下: 二.添 ...
- 2、Ktor学习-自动重新加载;
在开发过程中,快速反馈循环周期非常重要. 通常,重新启动服务器可能需要一些时间,因此Ktor提供了一个基本的自动重载工具,可以重新加载Application类. 注:自动重载不支持java 9, ...
- 深入java虚拟机学习 -- 类的加载机制(续)
昨晚写 深入java虚拟机学习 -- 类的加载机制 都到1点半了,由于第二天还要工作,没有将上篇文章中的demo讲解写出来,今天抽时间补上昨晚的例子讲解. 这里我先把昨天的两份代码贴过来,重新看下: ...
最新文章
- 重构风险程序员一定要遵守的规则
- cocos dos命令
- 【mycat】简介及安装
- [转载] 人类智能PK人工智能——06 计算智能
- Android开发中Handler的经典总结
- 看看,这就是微软的“万物互联”系统 window10 IOT
- python参考手册 豆瓣_python之父亲自撰写两年后豆瓣评分9.8《python深度学习》PDF分享...
- C++ Boost库简介
- mvnrepository总是出现烦人的one more step验证
- checkbox wpf 改变框的大小_【论文阅读】倾斜目标范围框(标注)的终极方案
- pci内存控制器是什么驱动_以微软的技术实力, win10还会出现硬盘100%占用的问题,为什么呢?...
- 图像质量评价(Image Quality Assessment,IQA)
- Android 图片文字识别
- win7忘记密码解决,Administrator账号密码忘记 解决办法
- HTML和CSS小知识点笔记
- page loading strategy
- 用windows server 2003搭建文件服务器,windows server 2003文件服务器搭建的权限划分.doc...
- 利用数据库在java实现已读未读消息公告
- python打开word并定位_python自动化办公之 python操作Word
- onblur和onfocus