ROS中的MoveIt!编程

编程流程:链接控制需要的规划组——>设置目标位姿(关节空间或笛卡尔空间)——>设置运动约束(可选)——>使用MoveIt!规划一条到达目标的轨迹——>修改轨迹(如速度等参数)——>执行规划出的轨迹

与MoveIt!有关的程序API可以参考http://moveit.ros.org/code-api/

关节空间运动:

        set_joint_value_target,        set_pose_target

        点到点运动:不需要在笛卡尔空间规划末端运动轨迹,机器人各个关节运动不需要联动

        实现关节空间运动,描述B点位置的两种方式:(1)正向运动学,通过关节的角度或者位置来描述;(2)逆向运动学,通过空间范围内的xyz和四元数来描述

笛卡尔空间运动:

        compute_cartesian_path

        笛卡尔路径约束,路径点之间的路径形状是一条直线

自动避障运动:

        方式一:通过MoveIt!可视化插件添加模型,在运动规划时会自动考虑碰撞检测

        方式二:通过程序来添加障碍物,add_box,        attach_box

圆弧轨迹规划:

轨迹重定义:

多轨迹连续运动:

        先规划每一条轨迹,然后再拼接在一起,最后再重新规划一下

更换运动学插件:

        MoveIt!默认使用的运动学求解器——kdl

                数值解

                优点:可求解封闭情况下逆运动学

                缺点:速度慢,失败率高

        TRAC-IK

                成功率高,但求解不稳定

#安装
$sudo apt-get install ros-kinetic-trac-ik-kinematics-plugin

#配置yaml文件,把里面的求解器更换一下
$rosed "$MYROBOT_NAME"_moveit_config/config/kinematics.yaml

arm:
  kinematics_solver: trac_ik_kinematics_plugin/TRAC_IKKinematicsPlugin
  kinematics_solver_attempts: 3
  kinematics solver search resolution: 0.005

#测试
$sudo "$MYROBOT_NAME"_moveit_config demo.launch

        IKFast——由Rosen Diankov编写的OpenRAVE运动规划软件提供

                成功率高,求解稳定、速度快,但存在多解选择问题

                可以求解任意复杂运动链的运动学方程(解析解),并产生特定语言的文件(如C++)后供使用;

                比较稳定、速度快,在最新的处理器上能以5微秒的速度完成运算 ,但是配置比较繁琐。并且更换模型后,C++文件要重新生成一遍才能使用。参考链接:htttp://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/ikfast/ikfast_tutorial.html

        

        

你可能感兴趣的:(ros1,机器人)