该仿真包来自于Ian Chuang作者在lara lab做的实验。
该仿真包是在ubuntu18.04系统中进行。且Ian Chuang改动了aubo的源码,写了许多自己的代码用于控制aubo+dh。
1.更新系统并安装依赖项
# 更新系统
rosdep update
sudo apt update
sudo apt dist-upgrade
# 安装依赖
sudo apt install python3-wstool python3-catkin-tools clang-format-10 python3-rosdep
2.创建自己的工作空间并下载源码
# 创建工作空间
mkdir -p ~/aubo_dh/src
# 下载仿真包
cd ~/aubo_dh/src
git clone https://github.com/ian-chuang/LARA_AUBOi5_AG95.git
# DH AG95夹爪的描述文件及控制包
git clone https://github.com/ian-chuang/dh_gripper_ros.git
# Aubo i5机械臂的描述文件及控制包
git clone https://github.com/ian-chuang/aubo_robot.git -b melodic
# Reading Meta Quest 2 Controllers,这是遥控手柄控制机械臂的包,我并没有该手柄,所以并未实现该功能包,如有兴趣,可以自己尝试
git clone https://github.com/ian-chuang/oculus_reader.git
3.下载gazebo插件
cd ~/aubo_dh/src
mkdir gazebo_pkgs
cd gazebo_pkgs
# 模仿关节插件
git clone https://github.com/roboticsgroup/roboticsgroup_upatras_gazebo_plugins.git
# realsense仿真插件
git clone https://github.com/pal-robotics/realsense_gazebo_plugin.git -b melodic-devel
# 修改后的gazebo夹具动作控制器
git clone https://github.com/ian-chuang/gazebo_gripper_action_controller.git
4.源码安装 MoveIt:
cd ~/aubo_dh/src
mkdir moveit
wstool init moveit
wstool merge -t moveit https://raw.githubusercontent.com/ros-planning/moveit/melodic-devel/moveit.rosinstall
wstool update -t moveit
5.安传ros包依赖
cd ~/aubo_dh/src
rosdep install -y --from-paths . --ignore-src --rosdistro melodic
6.安装 LARA 使用的其他依赖
sudo apt-get install ros-melodic-realsense2-camera
7.添加 Aubo 依赖
sudo apt-get install gdebi
wget http://archive.ubuntu.com/ubuntu/pool/main/p/protobuf/libprotobuf9v5_2.6.1-1.3_amd64.deb
sudo gdebi ./libprotobuf9v5_2.6.1-1.3_amd64.deb
rm ./libprotobuf9v5_2.6.1-1.3_amd64.deb
cd ~/aubo_dh/src
sudo ln -s aubo_robot/aubo_driver/lib/lib64/config/libconfig.so.11 /usr/lib/libconfig.so.11
sudo ln -s aubo_robot/aubo_driver/lib/lib64/log4cplus/liblog4cplus-1.2.so.5.1.4 /usr/lib/liblog4cplus-1.2.so.5.1.4
sudo ldconfig
现配置其他依赖,以防后面会报错:
(1)修改系统eigen3软链接,终端在任何目录下都可
sudo ln -sf /usr/include/eigen3/Eigen/ /usr/include/Eigen
sudo ln -sf /usr/include/eigen3/unsupported/ /usr/include/unsupported
(2)lib库环境变量配置
1)进入aubo sdk库的路径
cd ~/aubo_dh/
source devel/setup.bash
roscd aubo_driver/lib/lib64/
(2)在上述目录中,打开终端,通过输入 pwd 命令打印当前文件夹绝对路径,我的路径如下:
/home/wzm/aubo_dh/src/aubo_robot/aubo_driver/lib/lib64
(3)执行如下命令新建 ldconfig 配置文件:
sudo gedit /etc/ld.so.conf.d/aubo_driver.conf
(4)将下列库的路径(注意以(2)的实际路径为准)复制到文件中,保存后退出。
/home/wzm/aubo_dh/src/aubo_robot/aubo_driver/lib/lib64
/home/wzm/aubo_dh/src/aubo_robot/aubo_driver/lib/lib64/aubocontroller
/home/wzm/aubo_dh/src/aubo_robot/aubo_driver/lib/lib64/config
/home/wzm/aubo_dh/src/aubo_robot/aubo_driver/lib/lib64/log4cplus
(5)更新配置:
sudo ldconfig
8.修改cmakelists
由于作者自己写的程序,可能没有发现在编译的时候会导致失败的包名重复的错误。
~/aubo_dh/src/aubo_robot/aubo_controller文件夹与~/aubo_dh/src/aubo_robot/aubo_ros_control文件夹的cmakelists的包名产生了重复错误。
只需要将其中一个aubo_hardware_interface像我一样加1就行了。
9.注释aluminum材质问题
使用vscode搜索所有含有aluminum的代码段并注释就可以了。不理解为什么会出现材质的错误,明明也用了wood材质,但只有aluminum出错了。
10.编译
cd ~/aubo_dh
catkin_make
source devel/setup.bash
11.运行模型并实现抓取
# 模拟的launch运行文件
roslaunch lara_moveit_config demo_gazebo.launch cameras:=false
# 在模拟中生成桌面上的抓取对象
roslaunch lara_description spawn_parts.launch
# 运行抓取代码
rosrun lara_manipulation pick_and_place.py
camera:=ture是源码作者使用的,可能他连着realsense相机,但我并没有,像上文一样的方法可以运行成功。