本项目完成了自主设计底座模型组装的UR机械臂(双臂)的驱动控制。在Ubuntu 22.04 ROS2 Humble下,使用Moveit2 API 进行控制🥰在实际开发过程中遇到了不少问题,包括UR官方的Driver、Description版本,ros2-control,Moveit2等问题,在此不做全部解释。最新测试2024年4月23日,由于joint-trajectory-controller
等版本更新了,该Repo编译有报错。
ros2-control的文档:https://control.ros.org/humble/doc/getting_started/getting_started.html
Moveit2的文档:https://moveit.picknik.ai/main/doc/tutorials/getting_started/getting_started.html
如果您使用VMware虚拟机,那么RAM至少分配16G,内核总数至少8核,这为了保障在22.04下编译等运行的流畅度
前提:安装完成了ubuntu-22.04.3-desktop-amd64
sudo gedit /etc/gdm3/custom.conf
wget http://fishros.com/install -O fishros && . fishros
rosdepc update
sudo apt install git net-tools terminator
mkdir -p ~/ur/src
cd ur
git clone https://github.com/ruanjinchen/Dual_UR_Arm_CAR.git
mv Dual_UR_Arm_CAR src
sudo rosdepc init
rosdepc update
rosdepc install --ignore-src --from-paths src -y
colcon build
echo " source ~/ur/install/local_setup.sh" >> ~/.bashrc
首先,需要检查双臂的ip地址是否与PC在同一网段,并且分别记录左右机械臂的ip,此项目中为192.168.8.195和192.168.8.196.如果不一致,则需要修改/ur_driver/ur_robot_driver/launch/dual_ur_control.launch.py中的robot_ip。其次,需要给两个机械臂安装External Control,并且配置端口分别为50002和60002。最后就可以分别执行一下指令与机械臂建立通信与控制。
ros2 launch ur_robot_driver dual_ur_control.launch.py
ros2 launch dual_ur_moveit_config dual_ur_moveit.launch.py
API控制是读取的本地的Pose.json文件,所以在运行前需要确保机械臂安全的情况下,再启动API。
ros2 launch dual_ur_moveit_api dual_ur_moveit_api.launch.py
在2024.2.24最新的测试中,joint-trajectory-controller
的版本需要为2.29.0,如果使用sudo apt install 命令安装则会默认安装最新版,旧版已无法安装,需要手动替换库文件。
sudo cp -f $HOME/ur/src/ur_driver/ur_controllers/include/_joint_trajectory_controller/* /opt/ros/humble/include/joint_trajectory_controller/