1.模型构建
1.1模型库下载
以ABB机器人为例
1.1.1先从GITHUB下载依赖库到lib文件夹作为依赖库
git clone https://github.com/ros-industrial/abb_robot_driver.git
git clone https://github.com/ros-industrial/abb.git
git clone https://github.com/ros-industrial/abb_experimental.git
1.1.2选取对应型号的依赖库到src文件夹
编译
catkin_make
1.2 urdf模型构建
1.2.1 初始urdf模型获取
首先获取urdf模型,ABB里给的很多是xacro文件,需进行转换,不然容易出问题。
注意:
1)需修改xacro的文件名称同“MYROBOT_NAME”相同
2)urdf创建完成后,最好新建文件夹单独存放生成moveit配置文件
3)bug,可参考https://blog.csdn.net/Tepmoe/article/details/122025796
export MYROBOT_NAME="abb_irb1200_5_90"
rosrun xacro xacro --inorder -o "$MYROBOT_NAME".urdf "$MYROBOT_NAME".xacro
1.2.2 urdf模型修改
原始的urdf模型不具备测头等东西,需要进行修改。
直接参考之前的文件,将“Tool0”那一部分进行替换即可。
********* 一定要注意flang的坐标系,切记Z轴沿flang向外******
2.MoveIt配置
注意
1)加载urdf时需要source
2)注意生成的包的文件夹名称,比如“abb_irb1200_5_90_moveit_config”
2.1 初步moveit包生成
rosrun moveit_setup_assistant moveit_setup_assistant
配置完成后,运行demo进行测试
roslaunch abb_irb1200_5_90_moveit_config demo.launch
2.2 生成moveit_planning_execution.launch(附带的需要更改一些文件)
直接拷贝之前的文件,修改里面的机器人名称
注意:
1)会报错,需修改moveit_rviz.launch,直接粘贴之前的,修改机器人名称即可
2)此时如果之前没选则求解器,则会没有拖动球
3.IKFAST求解器构建(需转换至ubuntu18.0.4系统,假设openrave等环境已经安装好,注意文件权限,是否重新生成,容易出bug)
3.1 将urdf文件和abb_irb1200_5_90_moveit_config文件夹拷贝到ubuntu18.0.4系统
3.2 生成ikfast文件(指令运行时的路径需要注意,比如是在src中,还是在主文件夹里)
- 基本参数配置(注意机器人名称和末端序号等)
export MYROBOT_NAME="abb_irb1200_5_90"
export IKFAST_PRECISION="5"
export BASE_LINK="0"
export EEF_LINK="9"
export FREE_INDEX="1"
export PLANNING_GROUP="arm"
export IKFAST_OUTPUT_PATH=`pwd`/ikfast61_"$PLANNING_GROUP".cpp
- 将urdf文件转换为dae文件并指定精度
rosrun collada_urdf urdf_to_collada "$MYROBOT_NAME".urdf "$MYROBOT_NAME".dae
cp "$MYROBOT_NAME".dae "$MYROBOT_NAME".backup.dae
rosrun moveit_kinematics round_collada_numbers.py "$MYROBOT_NAME".dae "$MYROBOT_NAME".dae "$IKFAST_PRECISION"
3)基于dae文件生成ikfast的cpp(此时可能报错,但只要生成cpp应该没问题,可参考https://github.com/ros-planning/moveit_tutorials/issues/417修改)
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"
- 生成包(src目录下,catkin_make需要去主目录)
export MOVEIT_IK_PLUGIN_PKG="$MYROBOT_NAME"_ikfast_"$PLANNING_GROUP"_plugin
catkin_make
rosrun moveit_kinematics create_ikfast_moveit_plugin.py "$MYROBOT_NAME" "$PLANNING_GROUP" "$MOVEIT_IK_PLUGIN_PKG" base_link PowerScan "$IKFAST_OUTPUT_PATH"
3.3 将生成的两个包复制到原来的系统里
4.重新构建
1)修改MoveItAssistant,貌似不修改也可以
2)重新编译
catkin_make
3)rviz中定义了视点主题,重新构建的是没有的,需添加