MOVEIT配置IKFast运动学插件-安装注意事项-亲自安装过程介绍-超级详细-亲测

本文详细介绍了如何在ROS Kinetic中配置MoveIt!的IKFast运动学插件,包括安装依赖、OpenSceneGraph、sympy、OpenRAVE等,重点解决了在生成IKFastcpp源代码文件时遇到的问题,如环境变量设置错误导致的路径找不到问题,并提供了完整的配置和使用步骤。
摘要由CSDN通过智能技术生成

在这里插入图片描述
在这里插入图片描述


前言

提示:这里列出了一些参考网站章节:
第一个就是moveit!官网的安装教程:链接: moveit!IKFast配置 官网教程.


提示:以下是本篇文章正文内容,下面案例可供参考

一、问题1

示例:生成IKFast cpp源代码文件时可能会出现:
“IKFast Plugin Generator
ERROR: can’t find package arm_moveit_config”


解决方法:
在这里插入图片描述
可以看到在src目录下执行命令3,会出现错误
需要cd 到工程目录下,执行source devel/setup.bash命令,
然后重新使用命令3
就正常生成插件源代码

二、配置过程

1.安装依赖程序和库

sudo apt-get install cmake g++ git ipython minizip python-dev python-h5py python-numpy python-scipy qt4-dev-tools
sudo apt-get install libassimp-dev libavcodec-dev libavformat-dev libavformat-dev libboost-all-dev libboost-date-time-dev libbullet-dev libfaac-dev libglew-dev libgsm1-dev liblapack-dev liblog4cxx-dev libmpfr-dev libode-dev libogg-dev libpcrecpp0v5 libpcre3-dev libqhull-dev libqt4-dev libsoqt-dev-common libsoqt4-dev libswscale-dev libswscale-dev libvorbis-dev libx264-dev libxml2-dev libxvidcore-dev

2.安装OpenSceneGraph

sudo apt-get install libcairo2-dev libjasper-dev libpoppler-glib-dev libsdl2-dev libtiff5-dev libxrandr-dev
git clone https://github.com/openscenegraph/OpenSceneGraph.git --branch OpenSceneGraph-3.4
cd OpenSceneGraph
mkdir build; cd build
cmake .. -DDESIRED_QT_VERSION=4
make -j$(nproc)
sudo make install

注意:这个地址无所谓,在home目录下就可以,不需要在指定目录下操作

3.安装sympy 0.7.1

pip install --upgrade --user sympy==0.7.1

4.删除mpmath

sudo apt remove python-mpmath

4.安装Moveit!IKFast

sudo apt-get install ros-kinetic-moveit-kinematics

4.安装OpenRAVE

git clone --branch latest_stable https://github.com/rdiankov/openrave.git
cd openrave && mkdir build && cd build
cmake -DODE_USE_MULTITHREAD=ON -DOSG_DIR=/usr/local/lib64/ ..
make -j$(nproc)
sudo make install

注意:不建议采用 sudo apt-get install ros-kinetic-openrave,会一并安装 mpmath,导致后面生成 IKFAET文件 失败,因此采用源码安装的方式。

5.配置IKFast插件

提前定义参数可以大大节约时间,类似定义函数的参数,为了节省安装时间和减少麻烦
MYROBOT_NAME(机器人名字) - 在URDF文件中你的机器人的名字
PLANNING_GROUP(规划组名字) - 引用 SRDF and kinematics.yaml中的名称作为解算器用于规划组名称
MOVEIT_IK_PLUGIN_PKG (插件包名字)- 你需要创建的新的包的名称
IKFAST_OUTPUT_PATH(IKFAST输出路径) - 你生成的IKFasts cpp文件的路径

export MYROBOT_NAME="arm"
export IKFAST_PRECISION="5"//保留精度小数点后5位
export PLANNING_GROUP="arm"
export BASE_LINK="0"//起始关节,按照生成的关节列表选择
export EEF_LINK="8"//末端关节,按照生成的关节列表选择
export FREE_INDEX="1"//若关节数大于6需设置一自由关节
export IKFAST_OUTPUT_PATH='PWD'/ikfast61_"$PLANNING_GROUP".cpp

这里需要注意PWD,我自己测试系统是ubuntu 16.04 LTS,按照教程中的是:

注意这里/
注意这里/
注意这里/
注意这里/
注意这里/
export IKFAST_OUTPUT_PATH='pwd'/ikfast61_"$PLANNING_GROUP".cpp
注意这里/
注意这里/
注意这里/
注意这里/
注意这里/

一直提示找不到路径,结果编译一次20分钟,硬是编译了7次,才找到问题在哪里,最后是自己获取到文件路径,然后把这个路径直接写到export列表中,我是这样解决的,但是结束时,我查看了export -p命令,发现列表中是大写的PWD,不是小写的pwd,MMP,心里一万头草泥马奔腾啊,这里是个大坑,坑死我了。
在这里插入图片描述
注意到没有,大写的PWD,不是小写的pwd




在这里插入图片描述

设置机器人名字

export MYROBOT_NAME="arm"

xacro模型转为urdf模型

rosrun xacro xacro --inorder -o "$MYROBOT_NAME".urdf "$MYROBOT_NAME".xacro

urdf模型转为dae格式

rosrun collada_urdf urdf_to_collada "$MYROBOT_NAME".urdf "$MYROBOT_NAME".dae

备份dae模型

cp "$MYROBOT_NAME".dae "$MYROBOT_NAME".backup.dae

设置精度

export IKFAST_PRECISION="5"

生成IKFast插件

rosrun moveit_kinematics round_collada_numbers.py "$MYROBOT_NAME".dae "$MYROBOT_NAME".dae "$IKFAST_PRECISION"

查看模型关节数据

openrave-robot.py "$MYROBOT_NAME".dae --info links

输出下图所示
在这里插入图片描述
查看模型三维结构

openrave "$MYROBOT_NAME".dae

这三维图太TM丑了,好在能用
在这里插入图片描述
选择IK项,默认Transform6D
在这里插入图片描述
设置运动规划组

export PLANNING_GROUP="arm"

设置运动规划的关节组

export BASE_LINK="0"
export EEF_LINK="7"

若关节数量大于6需设置一自由关节,若无则无需设置

export FREE_INDEX="1"
设置IKFAST输出路径-大坑TNND,气死我了,参考最开始的介绍,下面的代码是错误的
export IKFAST_OUTPUT_PATH='pwd'/ikfast61_"$PLANNING_GROUP".cpp

生成IKFAST cpp源代码文件

6轴

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"

这里建议还是先获取"openrave-config --python-dir"的路径,再替换到命令里面就可以
7轴

python `openrave-config --python-dir`/openravepy/_openravepy_/ikfast.py --robot="$MYROBOT_NAME".dae --iktype=transform6d --baselink="$BASE_LINK" --eelink="$EEF_LINK" --freeindex="$FREE_INDEX" --savefile="$IKFAST_OUTPUT_PATH"

这里建议还是先获取"openrave-config --python-dir"的路径,再替换到命令里面就可以

大概需要10-20分钟左右,耐性等待一下
生成IKFAST插件

export MOVEIT_IK_PLUGIN_PKG="$MYROBOT_NAME"_ikfast_"$PLANNING_GROUP"_plugin
cd ~/catkin_ws/src
catkin_create_pkg "$MOVEIT_IK_PLUGIN_PKG"
cd ..
source devel/setup.bash
rosrun moveit_kinematics create_ikfast_moveit_plugin.py "$MYROBOT_NAME" "$PLANNING_GROUP" "$MOVEIT_IK_PLUGIN_PKG" "$IKFAST_OUTPUT_PATH"

6.使用IKFast插件

修改选择的运动学名称为IKFast

cd到"$MYROBOT_NAME"_moveit_config功能包的config文件目录下,修改该目录下的kinematics.yaml文件,修改内容如下:
在这里插入图片描述
利用"#MYROBOT_NAME"_moveit_config测试

roslaunch arm_moveit_config demo.launch

启动Rviz通过MotionPlanning进行测试
在这里插入图片描述

三、参考

链接: http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/ikfast/ikfast_tutorial.html.
链接: https://blog.csdn.net/Kalenee/article/details/80740258.

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值