Home

Awesome

easy_handeye2_demo

This is a demo for easy_handeye2 which you can try out offline without any hardware. It uses MoveIt! and a "noisy" tf publisher to simulate a robot and a tracking system. It also serves as an example of how you can integrate easy_handeye2 into your own setup.

Calibration setup simulation

This package includes a calibrate.launch.py file which you can use to play around with the calibration software, and a check_calibration.launch.py file to see the impact of a successful calibration.

calibrate.launch.py starts the Franka Panda MoveIt! demo, along with the easy_handeye2 calibration software and a script which simulates the output of a tracking system according to the current state of the simulated robot. You can specify the ground truth value of the calibration. By running the script multiple times with different values of the name argument, you can simulate a multi-sensor environment. You can adjust the noise added to the computed transformation with the respective launch file arguments.

check_calibration.launch.py also starts the robot control and the tracking simulator, and the easy_handeye2 publisher. You can move the robot around with MoveIt! to check that the marker remains at a fixed position with respect to the end effector (or robot base, for an eye-on-hand calibration). If the calibration is wrong, this should not be the case.
This is also an example of how you would integrate the publisher into your own launch file. If you ran the calibration script multiple times with different values for the calibration ground truth and namespace, you can modify the launch file to include the publisher multiple times and simulate an environment with multiple sensors, individually calibrated.

Main configuration parameters

Getting started

cd easy_handeye2_ws/src
git clone https://github.com/marcoesposito1988/easy_handeye2
git clone https://github.com/marcoesposito1988/easy_handeye2_demo
cd ..
rosdep install -yir --ignore-src --from-paths src
source install/setup.bash
# first perform the calibration
ros2 launch easy_handeye2_demo calibrate.launch.py calibration_type:=eye_in_hand tracking_base_frame:=tr_base tracking_marker_frame:=tr_marker robot_base_frame:=panda_link0 robot_effector_frame:=panda_link8

# then, check the result
ros2 launch easy_handeye2_demo check_calibration.launch.py calibration_type:=eye_in_hand tracking_base_frame:=tr_base tracking_marker_frame:=tr_marker robot_base_frame:=panda_link0 robot_effector_frame:=panda_link8

Performing the calibration

Refer to the easy_handeye2 documentation.

The result of the calibration should coincide with the calibration transformation passed as argument, or given as default in the roslaunch file.