- 相关环境和依赖配置安装
相关依赖:
sudo apt-get install cmake g++ git ipython minizip python-dev python-h5py python-numpy python-scipy qt4-dev-tools 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
- 安装相关的库:
git clone https://github.com/crigroup/openrave-installation
cd openrave-installation
./install-dependencies.sh
proxychains ./install-osg.sh
proxychains ./install-fcl.sh
proxychains ./install-openrave.sh
- 删除mpmath,防止冲突
sudo apt remove python-mpmath
- 查看openrav是否安装成功
打开终端:执行openrave,出现界面则安装成功
创建工作空间配置urdf文件
-
新建工作空间,将机器人描述文件放在工作空间,并编译
mkdir -p catkin_ws_ikfast/src cd catkin_ws_ikfast catkin_make - 终端执行机械臂配置指令,配置moveit
roslaunch moveit_setup_assistant setup_assistant.launch注意:
最后生成的时候将包名取为"$MYROBOT_NAME"_moveit_config
MYROBOT_NAME 为机械臂描述文件xxxx.urdf的名称
将urdf文件转换为.da文件
-
进入上述建立的工作空间并roscd 到urdf文件下
export MYROBOT_NAME="XX" (设置机器人名字) rosrun collada_urdf urdf_to_collada "$MYROBOT_NAME".urdf "$MYROBOT_NAME".dae将urdf文件转换为.dae文件
-
设置精度并重新加载.dae文件
export IKFAST_PRECISION="5" rosrun moveit_kinematics round_collada_numbers.py "$MYROBOT_NAME".dae "$MYROBOT_NAME".dae "$IKFAST_PRECISION"最后会在urdf文件夹下生成MYROBOT_NAME".dae文件
查看上述的.dae文件和可视化(选):openrave-robot.py "$MYROBOT_NAME".dae --info links openrave "$MYROBOT_NAME".dae
生成IKFAST文件
设置运动规划组(与Setup Assistant配置出来的group要一致)
export PLANNING_GROUP="****"
(配置相关关节,根据上面查看的关节,配置base关节和最后一个关节)
export BASE_LINK="base_link"
export EEF_LINK="link7"
若关节数量大于6需设置一自由关节,若无则无需设置
export FREE_INDEX="**"
设置IKFAST输出路径:
export IKFAST_OUTPUT_PATH=`pwd`/ikfast_"$MYROBOT_NAME".cpp
生成ikfast的插件文件.cpp
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"
生成IKFAST插件功能包
-
设置插件包的名字
export MOVEIT_IK_PLUGIN_PKG="$MYROBOT_NAME"_ikfast_"$PLANNING_GROUP"_plugin2 -
进入之前建立的工作空间创建插件包:
cd ~/catkin_ws_ikfast/src
source 工作空间
catkin_create_pkg "$MOVEIT_IK_PLUGIN_PKG" -
最后生成插件库
rosrun moveit_kinematics create_ikfast_moveit_plugin.py "$MYROBOT_NAME" "$PLANNING_GROUP" "$MOVEIT_IK_PLUGIN_PKG" "$BASE_LINK" "$EEF_LINK" "$IKFAST_OUTPUT_PATH" -
最后编译即可
运行机械臂的demo.launch
- 如出现未定义的错误:
undefined symbol: xxx的错误信息,修改插件功能包下面的ikfast.h文件
IKFAST_API int* GetFreeParameters() { static int freeparams[] = {0}; return freeparams; }
参考:
https://blog.csdn.net/m0_46235605/article/details/125971339
如果出现:
[1664043894.286469581]: Tried to advertise on topic [/move_group/filtered_cloud] with md5sum [060021388200f6f0f447d0fcd9c64743] and datatype [sensor_msgs/Image], but the topic is already advertised as md5sum [1158d486dd51d683ce2f1be655c3c181] and datatype [sensor_msgs/PointCloud2]错误
修改sensors.yaml文件,将重复的话题名修改下就行
最后应该可以看到rviz下成功的机械臂模型,同时能够实现该IKFAST插件下的运动规划
本文详细介绍了如何在ROS环境中利用OpenRAVE和IKFast进行机器人逆运动学插件的生成。首先,详细列出了安装相关依赖的步骤,包括安装OpenRAVE、OSG和FCL库。接着,通过删除可能引起冲突的mpmath,确保安装过程顺利。然后,展示了如何使用MoveIt!的Setup Assistant创建工作空间和配置urdf文件,以及将urdf文件转换为dae文件。在生成IKFast插件过程中,详细说明了设置运动规划组、基础和末端执行器链接、自由关节等参数,并生成cpp文件。最后,创建IKFast插件功能包,编译并解决可能出现的问题,以实现机械臂的运动规划功能。

3170

被折叠的 条评论
为什么被折叠?



