ROS-仿真实验平台
(1)ROS基本架构
机器人操作系统(Robot Operating System,ROS)是一款基于开源协议的、针对 机器人进行开发的、灵活可扩展的的软件平台,整合多种软件功能包和开发工具,提 供机器人操作系统所需的通用功能,包括底层驱动、通信中间件、传感器处理和控制 等,适用于机器人开发和研究。ROS 作为一种分布式系统,支持多节点同时运行, 可控制单一机器人或者一组协作机器人,目前已被广泛应用于工业自动化、航空航 天、服务机器人、协作机器人和医疗机器人等领域,其系统架构如图所示。
OS 层:即操作系统层,是ROS的底层基础;给ROS提供底层硬件驱动程序, 用于控制机器人的传感器和执行器,如激光雷达、相机、电机控制器等;此外还提供 操作系统接口,使ROS可以在不同操作系统上运行,实现进程管理、线程调度和内 存管理等功能。
中间层:是ROS系统的核心组件,起着连接硬件和应用层的桥梁作用;主要负 责传感器数据处理、运动规划与控制以及决策与行为生成,为机器人系统提供高度的 灵活性、可扩展性和智能性,使机器人能够实现各种复杂任务。
应用层:是构建在ROS中间层之上的软件层,负责实现具体的功能和任务;通 常由一系列ROS节点组成,通过节点通信机制与中间层和硬件层进行交互,从而实 现机器人的自主运行和智能交互。
总的来说,ROS 系统架构以模块化设计、系统层次化、责任分工清晰、减少开 发复杂度、提高灵活交互性、易于测试等特点为基础,共同提高了机器人系统的可维 护性、可扩展性和操作灵活性,为开发者提供了更高效、更灵活、更容易维护的机器 人应用开发平台。
(2)3D可视化Rviz
Rviz 是ROS机器人平台中的三维可视化工具,通过图形化的方式展示机械臂的 位置、运动状态、周围环境和传感器信息等,并且可以向机械臂发布控制信息,实现 机械臂的实时监测和控制;同时,还可以通过Rviz调试机械臂的导航算法、路径规划和声学系统等,帮助识别和解决问题。
(3)MoveIt 配置机械臂
MoveIt 是 ROS机器人平台中的一款全方位运动规划与控制软件包,其功能包括 高效的动力学运动规划、碰撞检测与避免、状态可视化、多机械臂协同控制等,提供 强大的状态可视化与调试工具。MoveIt系统架构如图5-3所示,核心节点move_group 充当集成器,将所有单独的组件构建在一起,以提供一组ROS操作和服务供用户使 用;User Interface 为用户接口,提供三种方式访问 move_group 提供的操作和服务, 在C++中使用move_group_interface 功能包,在Python 中使用moveit_commander 功 能包,还可以使用Rviz中的MotionPlanning插件以GUI方式访问;ROS Param Server 可为move_group 提供信息,可传输URDF、SRDF和Config三种格式文件。
另外,MoveIt还支持导入自己编写的运动规划算法进行仿真分析,可以在ROS 中使用MoveIt API 编写运动规划算法,并将其与MoveIt中的运动规划器进行集成, 以便与机器人模型进行仿真。故本文使用MoveIt来实现对六自由度机械臂的运动规 划仿真,如图为使用MoveIt配置助手对机械臂URDF模型进行配置 的流程。