欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

再装gazebo和turtlebot

程序员文章站 2022-07-06 12:28:12
...

再次安装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

再装gazebo和turtlebot

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
#这样就可以看到东西了

再装gazebo和turtlebot