一、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 中进行