通过Gazebo仿真学TurtleBot3(一)——为什么要用仿真

1. ROS学习成本

  随着机器人、无人机、人工智能、无人驾驶等领域的兴起,ROS(robot operating system)平台越来越火,掀起了学习和使用ROS的热潮。ROS平台松耦合、分布式的架构,针对代码复用性和模块化的优势,以及开源平台的特性,使其聚集了大量的优秀算法和开源代码资源,成为算法研究、技术学习以及产品研发的重要平台工具。

通过Gazebo仿真学TurtleBot3(一)——为什么要用仿真

  关于ROS的入门书籍和网上相关教程,较多以TurtleBot移动机器人为入门教学项目,再进一步拓展至机械臂、机器视觉和人工智能等方面。无论移动机器人底盘还是机械臂,套件购买价格都在几千元甚至上万元,对于初学者来说是一笔不小的花费。而且由于初学,对于操作并不精通,还容易导致昂贵的套件损坏。初学者往往不敢随意尝试自己编程,仅仅跑官方或厂家的程序,从而不能达到快速进步。
通过Gazebo仿真学TurtleBot3(一)——为什么要用仿真

2. 仿真的优势

  相对于昂贵的ROS学习套件,其实可以通过仿真的形式来进行ROS学习。ROS平台为了便于复杂机器人系统的快速测试和算法迭代,集成了诸如Gazebo之类的强大的仿真器。这些仿真器具备强大的物理引擎、3D显示引擎和丰富的调用接口,同时还包含了大量的各类机器人、传感器以及场景模型可供下载。通过结合仿真进行ROS学习,可以极大的降低学习成本。除此以外,通过仿真的形式,可以非常高效的进行代码及算法迭代,便于初学者进行各种大胆尝试,怎么折腾也不怕坏,从而更为快速的掌握ROS。

通过Gazebo仿真学TurtleBot3(一)——为什么要用仿真

3. Gazebo仿真器

  • Gazebo是一款功能强大的三维物理仿真平台
    • 具备强大的物理引擎
    • 高质量的图形渲染
    • 方便的编程与图形接口
    • 开源免费

通过Gazebo仿真学TurtleBot3(一)——为什么要用仿真

  • 典型应用场景
    • 测试机器人算法
    • 机器人的设计
    • 现实情景下的回溯测试

通过Gazebo仿真学TurtleBot3(一)——为什么要用仿真
通过Gazebo仿真学TurtleBot3(一)——为什么要用仿真

  • 大量的模型、场景与传感器资源

通过Gazebo仿真学TurtleBot3(一)——为什么要用仿真

  场景资源
通过Gazebo仿真学TurtleBot3(一)——为什么要用仿真

  模型及传感器资源
通过Gazebo仿真学TurtleBot3(一)——为什么要用仿真

  基于以上Gazebo这些优势,本学习将以Gazebo为主要工具来学习典型的ROS入门项目TurtleBot。

4. 学习计划

  本学习基于Ubuntu16.04+Kinetic的平台,通过Gazebo仿真器引入TurtleBot3模型进行学习。初期主要学习基本ROS工程的搭建与移动底盘导航与控制功能实现,其次尝试添加一些自定制的仿真场景与额外传感器,后续可能以SLAM技术为主进行深入学习,具体待规划。

通过Gazebo仿真学TurtleBot3(一)——为什么要用仿真 通过Gazebo仿真学TurtleBot3(一)——为什么要用仿真

(一)环境搭建
(二)创建仿真工程
(三)通过/cmd_vel消息控制运动
(四)通过move_base控制运动
(五)路径规划与导航
(六)用gmapping构建地图
(七)用地图和amcl进行导航与定位
(八)建立自定制Gazebo仿真场景
(九)添加其他传感器
(十)后续待规划。。。

  本学习以项目为主,记录具体实现过程中的一些经验,不会详细展开讲解ROS平台基础知识和接口详细说明,此类详细知识介绍可参考本文参考资料中列出的相关网络资源和书籍。

参考资料:
(1)《ROS By Example——volume 1》
(2)《ROS By Example——volume 2》
(3)《A Gentle Introduction to ROS》
(4)《Programming Robots with ROS》
(5)ROS官方wiki:http://wiki.ros.org/
(6)Gazebo官方资料:http://www.gazebosim.org/
(7)古月居: (http://www.guyuehome.com)