再装gazebo和turtlebot
再次安装gazebo和turtlebot
两天左右的调bug时间让我明白了一个道理:官方文档最稳!能apt-get尽量不要github
gazebo9没装成,在gazebo8的时候还没发现有什么问题,但是当我按着某个教程从github下载了一堆源码编译并且完成编译,但是不知道哪里出了问题,当运行完了roslaunch turtlebot_gazebo turtlebot_world.launch
之后,打开键盘控制的节点,却怎么也动不起来,狠心卸载,重头再来。
turtlebot 官方文档:http://wiki.ros.org/Robots/TurtleBot
找到6.SImulation >> gazebo :
http://wiki.ros.org/turtlebot_gazebo/Tutorials/indigo/Gazebo%20Bringup%20Guide
Turtlebot Installation :
http://wiki.ros.org/turtlebot/Tutorials/indigo/Turtlebot%20Installation
Gazebo & Turtlebot Installation
#这个安装是对于indigo版本的,在kinetic并不是全部适用
sudo apt-get install ros-indigo-turtlebot ros-indigo-turtlebot-apps ros-indigo-turtlebot-interactions ros-indigo-turtlebot-simulator ros-indigo-kobuki-ftdi ros-indigo-rocon-remocon ros-indigo-rocon-qt-library ros-indigo-ar-track-alvar-msgs
#下面为kinetic版本应该操作的
sudo apt-get install ros-kinetic-turtlebot ros-kinetic-turtlebot-apps ros-kinetic-turtlebot-interactions ros-kinetic-turtlebot-simulator ros-kinetic-kobuki-ftdi
sudo apt-get install ros-kinetic-rocon-*
#因为本人用的zsh好像不支持*这种用法,所以这行命令切换到了bash运行
ros-kinetic-turtlebot-simulator
在安装这个包的时候,开始出错,因为之前装的gazebo8版本,这个要求好多7的版本的库和文件,于是乎,再次对gazebo进行降级,到了gazebo7。
#以下是我的安装历程
sudo apt-get install ros-kinetic-turtlebot-simulator
sudo apt-get install ros-kinetic-turtlebot-gazebo
sudo apt-get install ros-kinetic-gazebo-ros
sudo apt-get install libgazebo7
sudo apt-get install gazebo7
##################################################################################
#在次之前一直是报错提示少依赖,但是这个依赖包有更新版本的在gazebo8中使用,所以必须先下载gazebo8
sudo apt-get remove gazebo8
sudo apt-get install libignition-math2 libsdformat4
sudo apt-get install libgazebo7
sudo apt-get install gazebo7
sudo apt-get install ros-kinetic-turtlebot-simulator
就这样把turtlebot的东西装的差不多了,以后提示却什么包就ros-kinetic-
安装应该就没问题了
中间出了一个问题,turtlebot是使用kinect深度摄像头的,所以他有一个把深度摄像头的数据压缩转化为scan类型的数据,当我运行样例roslaunch turtlebot_gazebo turtlebot_world.launch
的时候,提示报错depthimage_to_laserscan
这个节点崩了,还是根本没有运行起来,然后我从launch里边把这个node的启动注释掉,在运行没有错误,但是显然激光数据也没有了。
注意这个有坑!!!
这个包其实很好装
sudo apt-get install ros-kinetic-depthimage-to-laserscan
,你会注意到,之前我们并没有主动装这个包,这个是被作为某个依赖一起装上去的,所以当我在想卸载了这个包重新装一下的时候,连带卸载了几个其他的包,还好注意到了,又单独把那个几个包重新装,但是重新装那几个包的时候又连带把这个装上了,所以这样直接卸载是行不通的。
接着上文,把这个节点注释掉,于是单独跑这个节点rosrun depthimage_to_laserscan depthimage_to_laserscan
,同样是报错,但是这次的错误原因显示的更清楚,他要求一个opencv的库是3.3.0版本的,但是我的opencv是3.2版本的,我这几天被各种库的版本搞来搞去,已经不再想去在搞opencv的版本了
sun@sun ~ opencv_version
3.2.0-dev
http://wiki.ros.org/depthimage_to_laserscan
https://github.com/ros-perception/depthimage_to_laserscan
找一个工作空间,然后去github源码,编译,然后记得source setup.*,这样运行之后,这个节点就没有毛病了,可以正常使用。
roslaunch turtlebot_gazebo turtlebot_world.launch
sudo apt-get install ros-indigo-turtlebot-apps ros-indigo-turtlebot-rviz-launchers
roslaunch turtlebot_teleop keyboard_teleop.launch
roslaunch turtlebot_gazebo gmapping_demo.launch
#roslaunch turtlebot_rviz_launchers view_robot.launch
#这样就可以看到东西了
上一篇: Git 安装win7
下一篇: 纯css实现单张图片无限循环无缝滚动
推荐阅读