ROS入门配置及turtlebot碰到的坑

暑期学校用turltebot做了diy项目,在配置环境时碰到了不少坑,在这里记录一下自己的辛酸历程。

安装Ubuntu14.04双系统

注意Ubuntu的版本跟ROS的版本是相对应的,每一版ROS都有对应的Ubuntu版本,不要装错了,我这里装的是Ubuntu14.04+indigo

这个双系统安装过程就没什么好说的了,网上安装博客一大堆,我遇到的问题就是开机时会在logo处卡死,是NVIDIA显卡的问题,开机摁e进入设置模式,将splash quiet后面加上nomodeset就好了,开机后再修改grub文件

sudo gedit /etc/default/grub     打开grub文件

将     GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"  

修改为: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"

然后保存关闭,再在终端中输入sudo update-grub就ok了。

还有,如果开机没有开机项的话可以用easyBCD试一下

安装ROS-indigo

$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release-sc) main" >> /etc/apt/sources.list.d/ros-latest.list'

$ sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 0xB01FA116

$ sudo apt-get update

$ sudo apt-get install ros-indigo-desktop-full

$ sudo rosdep init

$ rosdep update

$ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc

$ source ~/.bashrc

$ sudo apt-get install python-rosinstall

安装turtlebot相关的包

$ sudo apt-get install ros-indigo-turtlebot-*

安装完成后可以用

$ roscore

检测一下安装是否成功,成功的话会显示started core service [/rosout]

网络配置

turtlebot的操作一般是用一台电脑连接turtlebot,这台电脑需要跟着turtlebot动,称为turtlebot端,用另一台电脑远程登录turtlebot端,负责遥控,称为workstation。

turtlebot端配置

$ ifconfig

获取 IP_OF_TURTLEBOT

$ echo export ROS_MASTER_URI=http://IP_OF_TURTLEBOT:11311 >> ~/.bashrc

$ echo export ROS_HOSTNAME=IP_OF_TURTLEBOT >> ~/.bashrc

$ source ~/.bashrc

workstation配置

$ ifconfig

获取 IP_OF_PC

$ echo export ROS_MASTER_URI=http://IP_OF_TURTLEBOT:11311 >> ~/.bashrc

$ echo export ROS_HOSTNAME=IP_OF_PC >> ~/.bashrc

$ source ~/.bashrc

测试网络配置

在workstation端登录turtlebot端,-Y用于显示图形界面

$ ssh  -Y  turtlebot端主机名@IP_OF_TURTLEBOT

启动 Turtlebot

$ roslaunch turtlebot_bringup minimal.launch

新开一个终端登录turtlebot后,运行下面命令

$ roslaunch turtlebot_teleop keyboard_teleop.launch

如果能用终端提示的信息遥控turtlebot,则证明成功。

这一部分作者是在实验室的局域网下实现的,使用校园网发现无法连接。

demo运行篇

这一部分主要介绍使用kinect显示图像,使用rviz显示图像、交互控制turtlebot,使用turtlebot机器人follower,创建室内地图。以下操作都是在workstation端执行。

作者一开始用的是实验室早就装好环境的电脑做的,在这一部分碰到了十分多的坑,基本执行哪个命令都是报no device is connected,网上的教程大多都说是驱动错误,需要重装驱动,或者就是要设置~/.bashrc里的相机型号。但是我却发现实验室的电脑无法重装驱动,无论是用apt安装还是源码安装都装不上,只好去修改相机型号,也没能解决问题。所以只能弃用实验室的电脑,换上自己的电脑,从双系统开始装,实验室的电脑重新装一下ros和turtlebot应该也是可以用的,但不是自己的电脑也不好随便搞。如果在重新装了环境之后还是不能正常连接kinect的话,有可能是usb口的问题,把usb3.0换成usb2.0就好了。

获取kinect图像

登入turtlebot端,启动turtlebot

$ roslaunch turtlebot_bringup minimal.launch

新开一个终端登录turtlebot后,运行下面命令启动相机

$ roslaunch openni2_launch openni2.launch

再新开一个终端,运行下面命令显示 RGB 图像:

$ rosrun image_view image_view image:=/camera/rgb/image_raw

运行下面命令显示深度图像:

$ rosrun image_view image_view image:=/camera/depth/image

通过rviz显示图像

登入turtlebot端,启动turtlebot

$ roslaunch turtlebot_bringup minimal.launch

新开终端,运行下面命令:

$ roslaunch turtlebot_bringup 3dsensor.launch

新开终端,运行下面命令:

$ roslaunch turtlebot_rviz_launchers view_robot.launch

在界面中勾选 Registered DepthCloud 选项,显示深度图像和彩色图像。

通过rviz交互控制机器人

登入turtlebot端,启动turtlebot

$ roslaunch turtlebot_bringup minimal.launch

新开终端,运行 turtlebot_maker_server:

$ roslaunch turtlebot_interactive_markers interactive_markers.launch

新开终端,运行 rviz

roslaunch turtlebot_rviz_launchers view_robot.launch

交互操作:选中工具栏中的“interactive marker”并点击 interact 来操

作 turtlebot。红色箭头控制机器人前进后退,紫色圆环控制机器人旋转。

Turtlebot 机器人 Follower

turtle的小跟班功能,可以寻找其前方一定范围内的物体,并把物体的中心作为

他的视点,物体前进他就前进,物体后退他就后退。

登入turtlebot端,启动turtlebot

$ roslaunch turtlebot_bringup minimal.launch

打开另一终端,登入 Turtlebot 主机,运行下面命令启动 follower 程序:

$ roslaunch turtlebot_follower follower.launch

新开一个终端,运行以下命令,控制跟随的各项参数:

rosrun rqt_reconfigure rqt_reconfigure

使用 Turtlebot 机器人创建室内地图

登入turtlebot端,启动turtlebot

$ roslaunch turtlebot_bringup minimal.launch

打开另一终端,登入 Turtlebot 主机,运行下面命令启动建地图程序:

$ roslaunch turtlebot_navigation gmapping_demo.launch

新打开两个终端,登入 Turtlebot 主机,分别运行:

$ roslaunch turtlebot_rviz_launchers view_navigation.launch

$ roslaunch turtlebot_teleop keyboard_teleop.launch

通过键盘遥控 Turtlebot 机器人扫描房间,当地图建立完全后,新开终端运行下面命令保存地图:

$ rosrun map_server map_saver -f /tmp/my_map

运行下面命令:

$ ls /tmp/

我们能够看到/tmp 文件夹下有两个文件 my_map.pgm 和 my_map.yaml,表明地

图保存成功。

最后就可以用保存的地图让机器人自动导航啦,祝大家玩的愉快。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。