Motion Planning API
在MoveIt中,使用插件基础设施加载运动规划器。这允许MoveIt在运行时加载运动规划器。
这里讲的是针对 joint goal 或者 pose goal进行运动规划。
机器人将手臂移动到新的姿势目标,同时保持末端效应器的水平。
开始
在moveit中运动规划器是作为插件接口存在的。
在加载规划器前,需要初始化两个类: Robot Model 以及 Planning Scene。
教程中首先初始化了一个 Robot Model Loader类。他会从ros参数服务器中找到robot description,加载参数并构建机器人模型。
可视化碰撞
Time Parameterization
moveit主要使用运动学规划框架。用于规划关节以及末端执行器的位置而不是速度以及加速度参数。
MoveIt确实利用后处理对速度和加速度值的运动学轨迹进行时间参数化。下面我们将解释MoveIt这一部分涉及的设置和组件。
Low Level Controllers
We will assume that your robot offers a FollowJointTrajectory
action service for the arms on your robot and (optionally) a GripperCommand
service for your gripper.
配置yaml文件
controller_list:
- name: panda_arm_controller
action_ns: follow_joint_trajectory
type: FollowJointTrajectory
default: true
joints:
- panda_joint1
- panda_joint2
- panda_joint3
- panda_joint4
- panda_joint5
- panda_joint6
- panda_joint7
- name: hand_controller
action_ns: gripper_action
type: GripperCommand
default: true
parallel: true
joints:
- panda_finger_joint1
包含以下:
FollowJointTrajectory
Controller Interface
The parameters are used to compute the allowed trajectory execution duration by scaling the expected execution duration and adding the margin afterwards.