3. 机器人硬件软件平台
我们的长期目标是开发一个可以在我们周围工作并帮助人们的移动机器人系统。 开发系统的主要设计原则是每个硬件和软件组件既可以作为单个模块,也可以作为集成系统的一部分。 为了实现这一原理,这些硬件组件使用螺钉和可调框架组装,而软件平台则使用机器人操作系统(ROS)[24]。
图3显示了我们机器人的硬件平台。 它包括一个Segway RMP100移动基座,一个位于上部基座的ASUS Xtion,一个安装在底座上的Hokuyo UTM-30LX激光扫描仪,以及一个配备2GHz Intel Core i7-4510U,16GB内存(不带GPU)的DELL笔记本电脑。
该软件系统在Ubuntu版本14.04LTS操作系统之上的ROS Indigo版本中实现。 3D仿真实验在Gazebo [25]上进行。 图2说明了高级软件架构,软件架构的详细关键组件将在第4和第5节中描述。
4. ENVIRONMENT REPRESENTATION(?创建环境)
一致且准确的环境表示是自主系统的关键组成部分,因为它可作为运动规划的输入,为机器人生成无碰撞和最佳运动规划。
A. 用车轮里程计,2Dlaser和RGBD相机建图
3D建图流程通常由定位和建图组件组成。 定位是估计机器人位姿的过程,而建图(或融合)涉及将新的传感器观测结合到环境的3D重建中。 为了克服基于视觉的SLAM在环境缺乏局部特征时不稳定的挑战,我们同时使用车轮里程计,2D激光和RGB-D相机以相互补充。
我们的3D 建图框架建立在Karto SLAM [26]的基础之上,这是一种2D鲁棒的SLAM方法,包含扫描匹配,回环,稀疏姿势调整(Sparse Pose Adjustment)[27]作为位姿优化和2D占用网格构建的求解器。 Karto SLAM从激光测距仪和车轮测距仪中获取数据。 它是现实世界中性能最好的支持ROS的SLAM技术,与其他2D SLAM方法相比,受噪声影响较小[28],如gmapping [29],HectorSLAM [30]和GraphSLAM [10]。
我们发现不能使用Karto SLAM的默认2D占用图(occupancy map)可靠地表示不均匀的环境,我们构建了基于OctoMap的环境[31]。 它是一种概率,灵活,紧凑的3D建图方法,可以代表自由,占用和未知的环境。 在每个单步时间,该算法使用RGB-D传感器接受环境的点云,并使用2D激光和车轮测距法接收来自Karto SLAM的定位信息。 图4(b)显示了由我们的3D建图生成的模拟世界的OctoMap表示。 请注意,自由空间在实验中明确建模,但为清楚起见未在图中显示。