目录
安装Gazebo
1.添加源
2.安装gazebo
使用Gazepo 实现摄像头仿真
1.工作空间与功能包的创建
2)Gazebo配置文件
3)车体urdf建模与控制程序
4)launch文件
5)执行launch文件运行程序
使用Gazepo 实现雷达仿真
1)Launch文件
2) 执行
使用Gazepo 实现Kinect仿真
1)launch文件
2)执行
Gazeop是一款仿真软件,和ROS有非常好的兼容性,通常来说使用rviz就可以满足绝大部分需求,但是要考虑真实世界的物理属性的话(比如摩擦力,空气阻力,湿度,地面凹凸程度等),就需要用到Gazepo
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install gazebo7
sudo apt-get install libgazebo7-dev
//创建工作空间
$ source /opt/ros/kinetic/setup.zsh
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
$ cd ~/catkin_ws
$ catkin_make
$ souce ~/catkiin_ws/devel/setup.zsh
$ cd ~/catkin_ws/src
//创建功能包
$ catkin_create_pkg my_gazebo gazebo_plugins gazebo_ros gazebo_ros_control roscpp rospy
$ cd ~/catkin_ws
$ catkin_make
$ source devel/setup.zsh
//创建目录结构
$ cd ~/catkin_ws/src/my_gazebo
$ mkdir world launch
请按照下列方式命名,或修改launch文件
$ cd world
$ touch playground.world
该文件由Gazebo界面配置后导出,非手动编写,复制即可
1
0 0 10 0 -0 0
0.8 0.8 0.8 1
0.2 0.2 0.2 1
1000
0.9
0.01
0.001
0.5 0.1 -0.9
0.4 0.4 0.4 1
0.7 0.7 0.7 1
1
0.01
1
100
0 0 -9.8
1
1
0 0.005 0.6 0 -0 0
0.9 0.01 1.2
10
0 0.005 0.6 0 -0 0
0.9 0.01 1.2
0.45 -0.195 0.6 0 -0 0
0.02 0.4 1.2
10
0.45 -0.195 0.6 0 -0 0
0.02 0.4 1.2
-0.45 -0.195 0.6 0 -0 0
0.02 0.4 1.2
10
-0.45 -0.195 0.6 0 -0 0
0.02 0.4 1.2
0 -0.195 0.03 0 -0 0
0.88 0.4 0.06
10
0 -0.195 0.03 0 -0 0
0.88 0.4 0.06
0 -0.195 1.19 0 -0 0
0.88 0.4 0.02
10
0 -0.195 1.19 0 -0 0
0.88 0.4 0.02
0 -0.195 0.43 0 -0 0
0.88 0.4 0.02
10
0 -0.195 0.43 0 -0 0
0.88 0.4 0.02
0 -0.195 0.8 0 -0 0
0.88 0.4 0.02
10
0 -0.195 0.8 0 -0 0
0.88 0.4 0.02
0
0
0
0
1
0 1.53026 0 0 -0 0
1
model://jersey_barrier/meshes/jersey_barrier.dae
0 0 0.5715 0 -0 0
4.06542 0.3063 1.143
10
0 0 0.032258 0 -0 0
4.06542 0.8107 0.064516
10
0 0 0.1 0 -0 0
4.06542 0.65 0.1
10
0 0 0.2 0 -0 0
4.06542 0.5 0.1
10
0 -0.224 0.2401 0.9 -0 0
4.06542 0.5 0.064516
10
0 0.224 0.2401 -0.9 0 0
4.06542 0.5 0.064516
10
0
0
0
0
1
-4 -1 0 0 -0 -0.7
1
0 0 1
100 100
100
50
10
0
0 0 1
100 100
0
0
0
0
1
0.497681 0 0 0 -0 0
0 0
0 44986
1377677575 940727583
1 -3.44458 0 0 -0 0
1 -3.44458 0 0 -0 0
0 0 0 0 -0 0
0 0 0 0 -0 0
0 0 0 0 -0 0
1.41131 -1 0 0 -0 0.9
1.41131 -1 0.5 0 -0 0.9
0 0 0 0 -0 0
0 0 0 0 -0 0
0 0 0 0 -0 0
-2 -3.4888 0.5 0 -0 0
-2 -3.4888 0.5 0 -0 0
0 0 0 0 -0 0
0 0 0 0 -0 0
0 0 0 0 -0 0
1.33336 -0.422442 27.6101 3e-06 1.5698 3.04015
orbit
-2 -3.4888 0.5 0 -0 0
1
1
0
0
1
0
1
0.5
1
10
0.5
1
0
0
0
0
1
0
model://dumpster/meshes/dumpster.dae
10
model://dumpster/meshes/dumpster.dae
0
0
0
1
0
0
1
0
1
1
0
1
1 -3.44458 0 0 -0 -0.3
0
0 0 0.5 0 -0 0
model://cube_20k/meshes/cube_20k.stl
0.5 0.5 0.5
10
model://cube_20k/meshes/cube_20k.stl
0.5 0.5 0.5
0
0
0
1
0
0
1
0
1
1
0
1
1.41131 -1 0 0 -0 0.9
0
非常建议阅读该篇文章后再阅读下面内容
ROS ArbotiX控制+xacro机器人仿真模型设计 实现初级建模与车体控制
或下载
urdf描述包:https://gitee.com/alen2020/mbot_description.git
车体控制包:https://gitee.com/alen2020/mbot_teleop.git
在加载机器人模型描述参数这里引入了功能包,若没有该功能包需要看上一节给出的链接文件,里面介绍到xacro文件的编写,或有自己的一套车体模型,则引入自己的,注意命名。
开启三个终端,执行下三条指令
$ roslaunch test1 view_mbot_with_camera_gazebo.launch
$ roslaunch mbot_teleop mbot_teleop.launch
$ rqt_image_view
在rqt_image_view中选择订阅/camera/image_raw话题,移动车体,即可看到实时视图
使用雷达仿真修改launch文件即可,前提是有车体urdf建模这个包,我在上一节给出
与摄像头不同的是xacro的引入文件
开启三个终端,执行下三条指令
$ roslaunch test1 view_mbot_with_laser_gazebo.launch
$ roslaunch mbot_teleop mbot_teleop.launch
$ rviz
可以看到单线激光雷达的点云数据,控制车体移动,点云数据实时变动
使用Kinect仿真修改launch文件即可,前提是有车体urdf建模这个包,我在第一节给出
与摄像头和激光雷达不同的是xacro的引入文件
$ roslaunch test1 view_mbot_with_laser_gazebo.launch
$ roslaunch mbot_teleop mbot_teleop.launch
$ rqt_image_view
$ rviz
kinect既可以看到点云数据,也可以看到摄像头信息,相对于激光雷达来说,Kinect的点云扫射访问很窄(通常不超过180度)