通过Gazebo仿真学TurtleBot3(二)——环境搭建

1. Ubuntu安装

  网络上教如何安装ubuntu的文章很多,在这里就不再花时间详细介绍了,本文使用的是ubuntu16.04 LTS版本。针对是使用物理机双系统还是虚拟机的问题,我建议资源允许的情况下可以都装。物理机的运行速度更快,尤其是针对Gazebo中3D显示部分,如果是物理机加上独立显卡,运行更为流畅,适合跑运算量要求较高的算法或者大场景高复杂度的仿真。而虚拟机则更为方便,尤其是初学者对于linux系统和ROS系统还不太熟悉,经常出现一些异常情况,或者一些误操作,在这种情况下有可能会需要反复重装系统进行尝试和熟悉。虚拟机的快照回退或整体备份等功能,可以加快迭代速度,节省很多时间。虚拟机可能对于实际物理的机器人系统和传感器接口兼容性会有些问题,但是对于通过仿真学习TurtleBot来说还好,起码适用于初学者尽快熟悉系统、快速迭代。
  当然在虚拟机上搭建学习环境,对于物理计算机的性能还是有一定要求的,最好使用较好的CPU,搭配较大内存,同时配合固态SSD硬盘,这样才能保证相对流畅的使用。笔者使用的笔记本配置i7处理器16g内存和SSD硬盘,在虚拟机下跑ubuntu+ROS还是获得了较为满意的性能。如果没有高性能机器,感觉还可以拿出一台配有独立显卡的旧机器(性能不用太高,一般的独立显卡就可以)专门跑Gazebo仿真器,另一台常用电脑来跑ROS里的机器人控制代码。毕竟ROS支持分布式,而谁家又没有台旧电脑呢。
  ubuntu系统安装好后,还要安装一些常用的软件包,如ssh、git、中文输入法等等,同时很重要的一点就是更改软件服务器地址为最近的镜像服务器地址,这样可以在后期大量软件安装时获得最快的速度,节省大量的时间。

2. ROS安装:

  本文使用的ROS是Kinetic版本,具体安装方法见ROS官方wiki指导。安装时建议选择Desktop-Full Install方式,全桌面版本除ROS内核外还包含了常用的仿真器、软件包和驱动等,适合初学者使用。

初始化rosdep依赖管理

  ROS安装完后记得要初始化rosdep依赖项管理工具,便于后期针对ROS系统中各种软件package包的依赖项管理和安装。

$ sudo rosdep init
$ rosdep update

ROS环境配置

  ROS安装还需要进行环境配置,用于自动添加相应的ROS环境变量在当前bash进程中。一般建议将环境配置添加到~/.bashrc文件当中,以便打开命令终端时自动启用。

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

虚拟机显示配置

  在虚拟机环境下运行Gazebo会有些问题,主要是虚拟机的显卡硬件加速设置引起的。要想正常使用Gazebo,需要通过如下设置关闭硬件加速。

$ echo " export SVGA_VGPU10=0" >> ~/.bashrc
$ source ~/.bashrc

  还有一种方法是在虚拟机设置中关闭3D加速,实测效果不理想,3D显示速度很慢,不建议使用。

系统更新

  ROS安装完毕后,重启ubuntu有可能会无法进入系统,给出如下提示。
这里写图片描述
  这个问题可以通过系统更新加以解决,方法是在这个提示界面下按Ctl+Alt+F1,以命令模式登录系统,输入:

$ sudo apt-get update
$ sudo apt-get upgrade
$ reboot

  重启后又可以正常登录系统了。

3. Turtlebot3安装:

  采用Source模式,将TurtleBot3安装在catkin工程目录catkin_ws中。代码部分分别涵盖了TB3消息包、TB3功能包以及TB3仿真包。

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
$ cd ~/catkin_ws
$ rosdep install --from-paths src -i -y
$ catkin_make

  注意以上命令第7行,采用rosdep install依赖安装的方式,安装了TB3代码中依赖的各种ROS软件包。rosdep install主要基于软件package包目录下package.xml文件中的依赖项关系来安装依赖项,具体说明见ROS官方wiki。
  catkin_make编译后,还需要将新工程的ROS环境设置加入~/.bashrc文件,命令如下:

$ echo "source ~/catkin_ws/devel/setup.bash " >> ~/.bashrc
$ source ~/.bashrc

  最后还可以根据所选用的TB3机器人是Burger还是Waffle,将其作为环境变量加入~/.bashrc文件,以方便后续使用。否则每次运行程序都需要先输入“export TURTLEBOT3_MODEL=burger”或者“export TURTLEBOT3_MODEL=waffle”。
  命令如下:

$ echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc
$ source ~/.bashrc

  最后检查一下环境变量设置是否成功:

$ env | grep TURTLEBOT3

  如显示TURTLEBOT3_MODEL=burger则表示成功。

3. 仿真测试:

简单仿真测试:

$ roslaunch turtlebot3_fake turtlebot3_fake.launch

  这是turtlebot3_simulation里给出的一个简单仿真器,其并没有物理引擎,只是根据速度指令和角速度指令进行积分,给出odom和base_link坐标系之间的tf,无法给出传感器测量数据仿真。运行显示结果如下:
这里写图片描述

Gazebo仿真测试:

$ roslaunch turtlebot3_gazebo turtlebot3_world.launch

  首次打开界面显示要黑一会儿,主要是在下载所需model文件。下载完毕后,显示结果如下所示:
这里写图片描述
  Gazebo仿真器具有物理引擎,除给出机器人的位置姿态以外,还能够给出惯性imu、激光雷达以及相机或RGB-D等传感器仿真数据。因此功能更为丰富。
这里写图片描述

注意:

  针对gazebo和rviz在虚拟机中运行,就像《ROS By Example》中说的那样,开启有时可能会不太稳定而自动退出,可能需要重复试几次。在我的机器上偶尔会进行3次以上的尝试。不过一旦正常打开,运行时一般都正常。

RViz can sometimes be a little finicky about running on different
graphics cards. If you find that RViz aborts during start up, first
just try launching it again. Keep trying a few times if necessary. (On
one of my computers, it is usually the third attempt that works.)

参考资料:
(1)ROS官方wiki:http://wiki.ros.org/
(2)TurtleBot3电子手册:
http://emanual.robotis.com/docs/en/platform/turtlebot3/overview/

  • 19
    点赞
  • 161
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值