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

一、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求解器

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

Alt

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值