1.MoveIt!系统架构
MoveIt是什么:
- 一个易于使用的集成化开发平台
- 由一系列移动操作的功能包组成:运动规划、操作控制、3D感知、运动学、控制与导航算法
- 提供友好的GUI
- 可应用于工业、商业、研发和其他领域
- ROS社区中使用度排名前三的功能包
系统架构
用户接口(User Interface)
- C++:使用move_group_interface包提供的API
- Python:使用moveit_commander包提供的API
- GUI:使用Moveit!的rviz插件
ROS参数服务器
- URDF:robot_description参数,获取机器人URDF模型的描述信息
- SRDF:robot_description_semantic参数,获取机器人模型的配置信息
- config:机器人的其他配置信息,例如关节限位、运动学插件、运动规划插件
机器人
Topic和Action通信
系统架构
约束条件
- 位置约束:限制link的运动区域
- 方向约束:限制link的运动方向(roll、pitch和yaw)
- 可见性约束:限制link上的某点在某区域内的可见性(通过视觉传感器)
- joint约束:限制joint的运动范围
- 用户定义约束:用户通过回调函数自定义所需的约束条件
适配器
- FixStartStateBounds:修复joint的初始极限
- FixWorkspaceBounds:设置一个默认尺寸的工作空间
- FixStateCollision:修复碰撞配置文件
- FixStatePathConstraints:找到满足约束的姿态作为机器人的初始姿态
- AddTimeParameterization:为空间轨迹进行速度、加速度约束,为每个轨迹点加入速度、加速度、时间等参数
监听信息
- 状态信息(State Information)机器人的关节话题joint_states
- 传感器信息(Sensor Information)机器人的传感器信息
- 外界环境信息(World geometry Information)通过传感器建立的周围环境信息
MoveIt!使用步骤
- 1)组装