gazebo基础学习
前言
- 在算法人员开发出可以真机使用的算法之前进行仿真
- 学习机器人物理仿真器的基本使用,包括创建场景,制作ROS控制接口等
目录
gazebo基础学习
前言
目录
参考
学习记录
基础
安装gazebo7(ubuntu 14.04)
安装ROS通讯包
ros-kinetic自带gazebo7不能正常打开
cs架构
World Files环境文件
Model Files模型文件
环境变量
模型构建
单个模型构建
创建一个基本sdf模型
添加力学特性:惯性
添加运动关节
添加传感器
添加外观
模型拓扑结构
使用meshes
模型纹理和花纹
传感器定义及噪声
显示传感器数据
添加噪声
写插件来使用这个传感器
源文件中加载这个模型和插件
与ROS连接
前言
目录
参考
学习记录
基础
安装gazebo7(ubuntu 14.04)
安装ROS通讯包
ros-kinetic自带gazebo7不能正常打开
cs架构
World Files环境文件
Model Files模型文件
环境变量
模型构建
单个模型构建
创建一个基本sdf模型
添加力学特性:惯性
添加运动关节
添加传感器
添加外观
模型拓扑结构
使用meshes
模型纹理和花纹
传感器定义及噪声
显示传感器数据
添加噪声
写插件来使用这个传感器
源文件中加载这个模型和插件
与ROS连接
参考
gazebo_ros_pkgs
ros intergration with gazebo
gazebo tutorials
sdf file specification
plugins 101
ROS探索总结(二十四)——使用gazebo中的插件
学习记录
基础
安装gazebo7(ubuntu 14.04)
- 注意:ros-indigo-desktop-full 与 gazebo2共同依赖libsdformat1,安装gazebo7需要卸载gazebo2,也会卸载ros-indigo-desktop-full,注意之后还要继续安装ros-indigo-desktop,以保证其他包不被autoremove掉
- 注意:以后不要使用sudo apt-get autoremove
sudo apt-get remove gazebo2
sudo apt-get install ros-indigo-desktop
sudo apt-get install gazebo7
sudo apt-get install
liballegro4.4 liballegro4.4-plugin-alsa libcegui-mk2-0.7.6 libcegui-mk2-dev
libdevil-dev libdevil1c2 libfltk1.1 libfltk1.1-dev liblcms1 liblcms1-dev
liblcms2-dev liblodo3.0 liblua5.1-0-dev libmng-dev libois-1.3.0 libpmap3.0
libreadline-dev libreadline6-dev libsilly robot-player
ros-indigo-driver-base ros-indigo-stage ros-indigo-stage-ros
安装ROS通讯包
sudo apt-get install ros-indigo-gazebo7-ros-pkgs ros-indigo-gazebo7-ros-control
ros-kinetic自带gazebo7不能正常打开
- 由于gazebo无法自动成功下载到应该有的模型
- 将下载好的模型复制到~/.gazebo/models中即可
- 调试技巧-gazebo --verbose
cs架构
- gazebo实际上运行了两个可执行程序,一个是gzserver,一个是gzclient。gzserver运行传感器数据产生程序和物理引擎更新程序,能够脱离图形界面独立运行,一个例子是gzserver运行于云计算机上;gzclient运行一个基于QT的用户界面,作为仿真的可视化以及一些仿真参数的设置。
- 当分别运行gzserver和gzclient时,可以运行多个gzclient实例。
World Files环境文件
- 环境描述文件包含仿真中所有的元素,包括机器人,光线,传感器以及静物等。此文件具有SDF格式,以*.world为扩展名
- sdf文件是一种xml格式文件,用于描述机器人仿真器的物体和环境,经过多年发展SDF已经成为一个稳定,鲁棒的格式,并已经具有描述各种形式的机器人,静态或运动的物体,光线,障碍,甚至物理属性。
Model Files模型文件
- 模型文件拥有与环境文件一样的文件语法SDF,但是只能包含一个
对,此文件的用途是重复使用模型文件,下面的语法可以使用模型文件
<include>
<uri>model://model_file_name</uri>
</include>
环境变量
GAZEBO_MODEL_PATH
GAZEBO_RESOURCE_PATH # 其他搜索资源,如环境和媒体文件的路径 # gzserver,gazebo目标文件位置相对路径的起点
GAZEBO_MASTER_URI
GAZEBO_PLUGIN_PATH # 放置插件的路径
GSZEBO_MODEL_DATABASE_URI # 在线下载模型的网络地址
- 默认的setup.bash存放在
source <install_path>/share/gazebo/setup.sh
- 插件打开方法示例
gzserver -s <plugin_filename> <world_file>
gzclient -g <plugin_filename>
模型构建
单个模型构建
创建一个基本sdf模型
添加力学特性:惯性
添加运动关节
添加传感器
添加外观
- 使用freecad,blender,采用中间格式dae
- 使用solidworks也是可以的
模型拓扑结构
- .config文件中声明sdf文件,sdf文件中包含.world内容和机器人部件sdf内容,sdf文件中包含dae,模型和力学特性内容
使用meshes
- 也就是在sdf文件的
中定义 和 等内容
模型纹理和花纹
- 略
传感器定义及噪声
显示传感器数据
添加噪声
- 在sdf文件中添加
等参数
写插件来使用这个传感器
- 是一个cpp文件
- 添加CMake支持,生成一个插件名称和一个.so库文件
- 在world文件中添加一些声明,与插件绑定
源文件中加载这个模型和插件
- 在源文件中编辑,添加这个传感器,创建接口API即消息发送和接收渠道
- 测试
与ROS连接
- 添加ROS的传输层,在源文件中编辑
- 修改CMakeLists.txt,编译
- 完成了