Awesome
AR4 Hand Eye Calibration
Performs hand-eye calibration between a camera and the Annin Robotics AR4 robotic arm, and validates calibration results. An Intel RealSense camera is used as an example, but any camera can be substituted. Tested with ROS 2 Iron on Ubuntu 22.04.
The core calibration procedure uses easy_handeye2.
Preparation
Print an Aruco marker and attach it to the end of J6. Aruco marker can be printed using ros2_aruco.
Verify that the Aruco marker parameters in config/aruco_parameters.yaml
is correct for
your marker.
Note: You may want to 3D print an extra J6 gripper mount for this purpose.
Installation
Clone this repo and ar4_ros_driver in the same ROS workspace. i.e.
mkdir -p ~/ar4_ws/src
cd ~/ar4_ws/src
git clone https://github.com/ycheng517/ar4_ros_driver
git clone https://github.com/ycheng517/ar4_hand_eye_calibration
Import required repos with:
vcs import . --input ar4_hand_eye_calibration/hand_eye_calibration.repos
Install the required drivers and ROS 2 nodes for your camera. For example for Intel RealSense:
sudo apt install ros-iron-librealsense2* ros-iron-realsense2-*
Install dependencies of imported repos:
sudo apt update && rosdep install --from-paths . --ignore-src -y
Calibrate
In one terminal, launch the hardware interface without including the gripper:
ros2 launch ar_hardware_interface ar_hardware.launch.py calibrate:=True include_gripper:=False
In another terminal, launch programs needed for calibration:
ros2 launch ar4_hand_eye_calibration calibrate.launch.py
Using RViz, move the robot end effector such that the Aruco marker is in view of the camera. Then, a calibration GUI should appear on the screen. Use it to take a sample. Then move the end effector to a few different orientations, take a sample at each orientation. When you have 5-6 samples, you can save and exit all programs.
Validate
In one terminal, launch the hardware interface without including the gripper:
ros2 launch ar_hardware_interface ar_hardware.launch.py calibrate:=True include_gripper:=False
In another terminal, launch programs needed for validation:
ros2 launch ar4_hand_eye_calibration validate.launch.py
Move an Aruco marker around the camera'a field of view. The robot arm should follow and hover above the Aruco marker.