3.3.1 Move_group节点系统框架
码垛机器人位姿状态信息联系在一起。
通过用户接口(User Interface),用户可以使用一下三种方三种方式访问ROS的活动和服务:使用C++语言,通过移动组接口(move_group_ interface),并且它提供了一个便于设置的界面;使用Python语言,通过moveit_commander命令程序,控制移动组的运动;通过RViz可视化工具以及运动规划插件完成机器人位姿信息传递。
在ROS参数服务器方面,可以对用户建立的机器人模型进行解析,以获取机器人的参数信息,它可以通过以下三种方式获取信息:通过URDF文件,move_group通过调用ROS参数服务器上的robot_ description函数来获取机器人在URDF文件中的参数信息;通过SRDF文件,该文件通常由MoveIt!设置助手载入URDF文件生成,move_group通过调用ROS参数服务器上robot description_semantic函数,获取SRDF文件中的参数信息;通过MoveIt!配置文件,move_group将寻找ROS服务器上关于MoveIt!的特定配置参数,包括关节限制,运动学,运动规划,感知等信息,移动组的配置文件一般由MoveIt!设置助手自动生成并存储在相应MoveIt!的config目录下。
在机器人接口方面,move_group通过ROS主题和活动与机器人通讯,获得机器人当前的状态信息(关节的角度、速度等),从传感器获传感器数据以及通过Fo1lowJointTrajectoryAction接口与机器人控制器进行通讯。机器人控制器接口是通过与move_group通讯。码垛机器人的位姿状态信息以及位姿转换信息分别通过joint_states主题和ROS TF库获得;move_group节点通过订阅joint_states主题确定当前关节的状态信息,通过运行robot_ state_publisher节点和ROS TF库实现机器人位置姿态矩阵信息转换。
此外,move_group还可以使用规划场景服务来建立仿真场景,以及实现一些拓展功能,例如拾取与放置,运动学,运动规划等功能。