ABB–配置MoveIt!运动学插件IKFAST

220
0
2020年8月27日 16时34分

一、IKFAST 简介

IKFAST是一种基于解析算法的运动学插件,可以保证每次求解的一致性。
Alt
1、准备工作

(1)先创建ikfast的工作空间

mkdir -p ~/ikfast_ws/src
cd ~/ikfast_ws/src
catkin_init_workspace 
cd ~/ikfast_ws
catkin_make 
source devel/setup.bash

(2)然后,将 irb6700_200_260.xacro 和 irb6700_200_260_macro.xacro 文件拷贝到 /ikfast_ws/src 中

2、开始配置abb文件

(1)转换生成URDF文件

cd ~/ikfast_ws/src
rosrun xacro xacro --inorder -o irb6700_200_260.urdf irb6700_200_260.xacro
  • 得到 irb6700_200_260.urdf 文件,打开,看到 robot name,需要确保URDF的名称和 robot
    name 一样,因此将 irb6700_200_260.urdf 改为 **abb_ irb6700_200_260.urdf**
    在这里插入图片描述

(2)将 urdf 转换成 dae 文件

  • 接上一步骤,依然在/ikfast_ws/src 中执行,以下程序都是
rosrun collada_urdf urdf_to_collada abb_irb6700_200_260.urdf abb_irb6700_200_260.dae
  • 如果出现 [rospack] Error: package ‘collada_urdf’ not found,运行以下程序,即可解决
    sudo apt-get install ros-kinetic-collada-urdf
    

    (3)OpenRave 中打开

    openrave abb_irb6700_200_260.dae
    

    在这里插入图片描述

(4)查询连杆信息

openrave-robot.py abb_irb6700_200_260.dae --info links

在这里插入图片描述
3、为 abb_irb6700_200_260 生成IK求解器

  • 参数什么的都放在里面了,大家自己参照 ROS进阶——MoveIt!运动学插件IKFAST配置.对比理解
  • 依旧接着上面在/ikfast_ws/src 中执行
    python `openrave-config --python-dir`/openravepy/_openravepy_/ikfast.py --robot=abb_irb6700_200_260.dae --iktype=transform6d --baselink=1 --eelink=11 --savefile=ikfast61.cpp
    
  • 对比理解
python `openrave-config --python-dir`/openravepy/_openravepy_/ikfast.py --robot="$MYROBOT_NAME".dae --iktype=transform6d --baselink="$BASE_LINK" --eelink="$EEF_LINK" --savefile="$IKFAST_OUTPUT_PATH"

(1)创建一个空的软件包,名称为 abb_irb6700_200_260_moveit_plugins

catkin_create_pkg abb_irb6700_200_260_moveit_plugins
cd ~/ikfast_ws
catkin_make

(2)将 abb_irb6700_200_260_moveit_config 文件复制到 /ikfast_ws/src 中,再次 catkin_make

  • …_moveit_config 的名称,得和URDF的保持一致,需要通过 MoveIt! Setup Assistant 重新配置
  • 重新配置时,添加 Planning groups 时,设置 Group Name 为 manipulator

(3)复制 ikfast.h 文件到 abb_irb6700_200_260_moveit_plugins / include 文件夹下

  • ikfast.h 文件可在 abb_irb2400_moveit_plugins / irb2400_kinematics / include 中找到,复制过去即可

(4)将先前在软件包创建的 ikfast61.cpp 文件,重命名为 abb_irb6700_200_260_manipulator_ikfast_solver

(5)执行了后,在/ikfast_ws/src 路径下打开两个终端,一个运行 roscore ;另一个运行:

rosrun moveit_kinematics create_ikfast_moveit_plugin.py abb_irb6700_200_260 manipulator abb_irb6700_200_260_moveit_plugins abb_irb6700_200_260_manipulator_ikfast_solver.cpp
  • 对比理解
    rosrun moveit_kinematics create_ikfast_moveit_plugin.py "$MYROBOT_NAME" "$PLANNING_GROUP" "$MOVEIT_IK_PLUGIN_PKG" "$IKFAST_OUTPUT_PATH"
    

    (5)要是没有error,说明创建成功。此刻可看到运动学求解器已被替换成 ikfast
    在这里插入图片描述
    (6)最后将以下两个文件包放进原工作空间,再catkin_make就可以了
    (7)启动演示

    roslaunch abb_irb6700_200_260_moveit_config demo.launch
    

    4、总结

  • 此次安装方法 abb 的机械臂文件都可以,比如ABB 6640 等
  • 本次安装都在 /ikfast_ws/src 中进行

发表评论

后才能评论