用 Gazebo 仿真器进行模型搭建并用Rviz进行图像显示
首先启动gazebo(如果安装的是ros-full的话就自带有),否则需要自己安装。
注意:
gazebo最好是在版本7以上(7.xx),我的版本是7.0的时候用rviz查看图像会报错,所以强烈建议将其更新到7.0以上。
在7.0的基础上升级gazebo的步骤如下:
①
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 gazebo7-common
下面开始搭建模型
有两种方法:
①使用模型库,这个需要在官网下载,之后导入到你的工作空间的models文件夹下
https://bitbucket.org/osrf/gazebo_models/downloads/
当然网上有别人提供的网盘连接,那个快一点
②在gazebo界面使用Ctrl+B或者菜单栏找到Building Editor出现自主编辑界面,可以自己做出你想要的模型。
下面显示的是利用gazebo自带的模型进行的操作(做这个之前有三个文件夹是必须要有的)
命令行输入:
roslaunch mbot_gazebo view_mbot_with_camera_gazebo.launch
会出现如下界面:
这个是自带摄像头的模型,为了方便结合rviz进行图像查看,这个模型再好不过。
如果想要在自己建造的模型中添加摄像头等则需要自己编写代码了。下面是我将摄像头与激光结合的代码。
编写完成之后需要catkin_make
,之后再source ./devel/setup.bash
如果catkin_make没有成功,解决方式可能是如下:
缺少控制,所以需要增加控制:
sudo apt-get install ros-kinetic-gazebo-ros-control
还有就是缺少导航:
sudo apt-get install ros-kinetic-navigation
下面的机器人就是运行成功之后将两种结合的样子。
rviz查看图像:
rosrun rviz rviz
第一个kinetic的位置应该会有下拉框供你选择,可能是camera_link,如果是lasar就是laser_link
然后需要add一个话题(image/laserscan),将下图所示位置修改,一般也会有下拉框,如果没有则需要根据rostopic list
查看话题信息。
上述的话题输进去之后gazebo报错的话一般就是gazebo的版本低了,参考文章开头位置说的更新gazebo。
接着就会出现摄像头或者激光的图像:
激光就不用在意了,参数可能没设对就只有这么一点。
此外:如果想要移动小车则需另开一个终端:
roslaunch mbot_teleop mbot_teleop.launch
如果第一次没有成功则需要进行
source ./devel/setup.bash
然后点击键盘的进行移动和转向。