做机械臂导航时遇到的问题9:用IKFast进行运动学求解(报错的解决办法)

在用moveit进行机械臂的运动学求解时,我们一般选择的是KDL求解器,但KDL求解器求解运动学问题时会有很多缺点,如求解速度慢、精确度低等。今天我们选择用IKFast求解器来代替KDL,提高求解速度。

看考http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/ikfast_tutorial.html

翻译https://www.ncnynl.com/archives/201610/1046.html

一、MoveIt! IKFast 安装

sudo apt-get install ros-indigo-moveit-ikfast

二、OpenRAVE 安装

sudo apt-get install ros-indigo-openrave

三、创建Collada文件

rosrun collada_urdf urdf_to_collada .urdf .dae

换成自己的你机器人名称,下句也是一样

rosrun moveit_kinematics round_collada_numbers.py .dae .rounded.dae 5

四、生成IK解决方案(具体参数一定要参考篇首的官网与翻译介绍)

python `openrave-config --python-dir`/openravepy/_openravepy_/ikfast.py --robot=.dae --iktype=transform6d --baselink=1 --eelink=8 --savefile=

这里的myrobot_name是rounded后的文件:myrobot_name.rounded.dae

--baselink=1 --eelink=8中的1和8根据自己的机械臂参考官网来定义

是生成一个cpp文件的文件名,我的是savefile=./ikfast06_arm.cpp

五、创建插件

1、创建包含IK插件的包,包名自己定义一个

cd ~/catkin_ws/src
catkin_create_pkg 

2、编译

cd ~/catkin_ws
catkin_make

3、创建插件源码 ,是urdf中的机械臂的名字, 配置moveit时机械臂的规划组名,我的是arm,上句生成的包, ,给新生成的cpp文件定义名字与路径,如 /home/xs/ikfast/ikfast61_arm.cpp

rosrun moveit_kinematics create_ikfast_moveit_plugin.py    

这步完成后,在src/目录会生成新的源码__ikfast_moveit_plugin.cpp文件

4、再次编译,生成插件

cd ~/catkin_ws
catkin_make

此时会报错,解决方法如下

六、报错的解决办法

1、在创建的ik插件的包内的src中的robot6dof_with_eye_arm_ikfast_solver.cpp文件中,搜索isinf,在前面加上std::。

做机械臂导航时遇到的问题9:用IKFast进行运动学求解(报错的解决办法)_第1张图片

2、在创建的ik插件的包内的src中的robot6dof_with_eye_arm_ikfast_moveit_plugin.cpp文件中,查找lookupparam,将string中的robot名称直接赋值。

做机械臂导航时遇到的问题9:用IKFast进行运动学求解(报错的解决办法)_第2张图片

3、在创建的ik插件的包内的src中的robot6dof_with_eye_arm_ikfast_moveit_plugin.cpp文件中,将robot_model 的urdf文件直接赋值

做机械臂导航时遇到的问题9:用IKFast进行运动学求解(报错的解决办法)_第3张图片

4、再次编译,生成插件

cd ~/catkin_ws
catkin_make

这会生成新插件库lib__moveit_ikfast_moveit_plugin.so,让MoveIt使用,在catkin_ws中build中可以看见。


5、使用

你可以在当初配置机器人moveit文件时生成的kinematics.yaml文件中,通过改kinematics_solver参数,在KDL和ikfast求解器之间切换

:
  kinematics_solver: __kinematics/IKFastKinematicsPlugin
-INSTEAD OF-
  kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin
6、打开逆运动学求解文件测试



你可能感兴趣的:(机械臂导航)