IKFast 太麻烦了,出现错误太多,安装失败!
转而安装Trac-IK,方法很简单,ROS的软件源中已经集成了TRAC-IK的安装包,可以直接使用以下命令安装:
sudo apt-get install ros-melodic-trac-ik
然后修改机械臂MoveIt!配置功能包下的kinematics.yaml文件就可以使用啦:
- arm:
- kinematics_solver: trac_ik_kinematics_plugin/TRAC_IKKinematicsPlugin
- kinematics_solver_attempts: 3
- kinematics_solver_search_resolution: 0.005
接下来再次运行demo.launch,默认加载的就是TRAC-IK运动学插件了,试试规划求解的效率是不是高了很多!
但是TRAC-IK也有问题,它是一种数值算法,每次求解得到的关节位置不一定相同。
IKFAST是一种基于解析算法的运动学插件,可以保证每次求解的一致性。
换掉KDL(以aubo机械臂的功能包、更换Trac_IK求解器为例,其他机械臂思路类似。)
在aubo_robot功能包下找到目录src/aubo_i5_moveit_config/config/kinematics.yaml文件,打开它,在manipulator_i5:下面一行,把kdl那一行注释掉,仿写Trac_IK的求解器,结果如下图所示,这样就更换完了,运行自己的程序试一下就行。
注:具体的修改问题,如果是你自己编写的机械臂功能包,那有可能部分配置文件中没有编写共享参数的代码,因为节点之间的变量空间是不相同的,所以如果不连接到该变量空间,就会出现可能rviz中,gazebo中和现实机械臂的规划器使用的不是一个规划器的问题。
解决:在aubo_robot功能包下找到目录src/aubo_i5_moveit_config/launch,其中我的aubo机械臂的文件是moveit_planning_execution.launch
打开后查看我用到了哪些东西:
ROS-I、MoveIt和Rviz三个插件。
这里因为我使用了ROS-I和MoveIt!(Rviz只是可视化,真正的运动还是靠MoveIt实现,所以不用管它),所以要确保这两个都用到了Trac_IK插件,所以都应该有下面代码段(Block):
1.ROS-I插件,即planning_context.launch文件中。
2.MoveIt插件,即move_group.launch文件中。
到此就所有的配置完毕了,用下面这行命令查询ROS下kinematics运行的参数叫啥:
rosparam list | grep kinematics
可以看到我的工程中求解器的参数叫这个名字:
转自https://blog.csdn.net/D124lab/article/details/121531344
标签:melodic,插件,trac,aubo,IK,kinematics,ROS,MoveIt From: https://www.cnblogs.com/bile/p/17965939