TurtleBot3 是一款小型、经济、可编程、基于ROS的移动机器人,用于教育、研究、爱好和产品原型设计。TurtleBot3 的目标是在不牺牲其功能和质量的情况下大幅减小平台尺寸并降低价格,同时提供可扩展性。TurtleBot3可以根据用户需求重组机械部件和使用可选部件(例如计算机和传感器),提供定制式服务。 TurtleBot3的核心技术是SLAM、导航和操纵,例如运行 SLAM(同时定位和映射)算法来构建地图,通过笔记本电脑、游戏手柄等进行远程控制,TurtleBot3 也可以通过附加机械手来操纵对象,这种兼容性可以弥补自由度的不足,使拥有的SLAM和导航能力的TurtleBot3可以发挥更大的功能作用。
官方地址(https://emanual.robotis.com/docs/en/platform/turtlebot3/)
同时定位与地图构建概念:(Simultaneous Localization and Mapping,一般直接称SLAM)希望机器人从未知环境的未知地点出发,在运动过程中通过重复观测到的地图特征(比如,墙角,柱子等)定位自身位置和姿态,再根据自身位置增量式的构建地图,从而达到同时定位和地图构建的目的。
地址(https://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping)
现在建图技术根据数据采集的方式可以分为两种,一种是激光雷达采集信息,根据返回的深度信息建图,这种方式以前的扫地机器人用的比较多,技术已经相对成熟,但是激光雷达价格比较昂贵;另一种视觉SLAM通过相机获取观测信息,相比激光雷达来说成本更低,所以近几年视觉SLAM比较主流,而且也有了一些成熟的系统框架。SLAM可以为机器人后续执行其他任务提供有效支撑,比如家用机器人的导航定位,搜救任务以及复杂的战场环境下对地形地图的感知等,应用非常广泛。
本实验采用的为激光雷达Gmapping算法,是一种高效的粒子过滤器,用于从激光数据中学习栅格地图。
地址(https://openslam-org.github.io/gmapping.html)
Remote PC:
roscore
//启动ROS
Turtlebot3:
roslaunch turtlebot3_bringup turtlebot3_robot.launch
//启动机器人的端口通信和驱动程序
Remote PC:
roslaunch turtlebot3_slam turtlebot3_slam.launch
//启动SLAM算法,默认为Gmapping
Remote PC:
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
//启动键盘操纵程序,控制机器人的运动
场景设置
建出的地图效果:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!