Package Summary
Tags | No category tags. |
Version | 0.2.0 |
License | LGPLv3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Description | source code of ROS package good run in T440 |
Checkout URI | https://github.com/lochinasc1017/ur5_easyhandeye_d435i_calibration.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2020-04-09 |
Dev Status | UNKNOWN |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Marco Esposito
Authors
- Marco Esposito
easy_handeye: TF / VISP Hand-Eye Calibration
This package wraps the hand-eye calibration routine from the ViSP library
(contained in the visp_hand2eye_calibration
package) to provide a simple
camera pose estimation solution. Input is expected as transformations published in TF.
Two scripts are provided:
- calibrator: takes care of sampling the specified transformations, computing the calibration and storing the result in a .yaml file.
- publisher: loads the calibration from the .yaml file and publishes it in tf; by default uses the frames specified during calibration, but they can be overridden individually via ROS params.
The included launch files allow to override all the script params, and to start the GUI contained in rqt_easy_handeye
.
ROS API
All following topics and parameters live in the namespace specified by the top-level launch file
(e.g. robot_device_eye_on_{hand,base}
). This allows multiple calibrations to coexist.
Topics/Services
-
take_sample
: a sample of each transformation is added to the list -
remove_sample(int)
: removes the specified sample from the list -
compute_calibration
: the calibration transformation is computed from the lists of transformations -
save_calibration
: the calibration is saved in the parameters and to file -
sample_list
: after adding or removing a sample, the list is published here -
calibration_result
: after computation the transform is published on this topic
Parameters
-
namespace
: the calibrator script will save the result in~/.ros/easy_handeye/$namespace
; the publisher will load the data from the same path. -
eye_on_hand
: if true, this is an eye-on-hand calibration, else eye-on-base. -
tracking_base_frame
: contains the tf id of the tracking system coordinate origin frame. -
tracking_marker_frame
: contains the tf id of the tracking system target. -
robot_base_frame
: contains the tf id of the robot’s base link. -
robot_effector_frame
: contains the tf id of the robot’s end effector link.
References
[1] Tsai, Roger Y., and Reimar K. Lenz. “A new technique for fully autonomous and efficient 3D robotics hand/eye calibration.” Robotics and Automation, IEEE Transactions on 5.3 (1989): 345-358.
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
message_generation | |
catkin | |
message_runtime | |
tf2_ros | |
geometry_msgs | |
std_msgs | |
std_srvs | |
visp_hand2eye_calibration |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rqt_easy_handeye | |
rqt_easy_handeye |
Launch files
- launch/publish.launch
-
- eye_on_hand — eye-on-hand instead of eye-on-base
- namespace_prefix [default: easy_handeye]
- robot_effector_frame [default: ]
- robot_base_frame [default: ]
- tracking_base_frame [default: ]
- inverse [default: false]
- launch/ur5_d435i_calibration.launch
-
- namespace_prefix [default: ur5_realsense_handeyecalibration]
- robot_ip — The IP address of the UR5 robot
- marker_size [default: 0.1] — Size of the ArUco marker used, in meters
- marker_id [default: 800] — The ID of the ArUco marker used
- launch/eye_to_hand_calibration.launch
-
- namespace_prefix [default: ur5_realsense_handeyecalibration]
- robot_ip — The IP address of the UR5 robot
- marker_size [default: 0.1] — Size of the ArUco marker used, in meters
- marker_id [default: 400] — The ID of the ArUco marker used
- launch/calibrate.launch
-
- eye_on_hand — if true, eye-on-hand instead of eye-on-base
- namespace_prefix [default: easy_handeye] — the prefix of the namespace the node will run in, and of the folder in which the result will be saved
- robot_base_frame [default: base_link]
- robot_effector_frame [default: tool0]
- tracking_base_frame [default: tracking_origin]
- tracking_marker_frame [default: tracking_target]
- publish_dummy [default: true] — if true, a dummy calibration will be published to keep all frames in a single tf tree, hence visualized in RViz
- start_rviz [default: true] — if true, rviz will be started with the provided config file
- rviz_config_file [default: $(find easy_handeye)/launch/rviz_easy_handeye.config] — the path to the rviz config file to be opened
- start_rqt [default: true] — if true, rqt will be started with the provided perspective
- rqt_perspective_file [default: $(find easy_handeye)/launch/rqt_easy_handeye.perspective] — the path to the rqt perspective file to be opened
- freehand_robot_movement [default: false] — if false, the rqt plugin for the automatic robot motion with MoveIt! will be started
- move_group [default: manipulator] — the name of move_group for the automatic robot motion with MoveIt!
- translation_delta_meters [default: 0.1] — the maximum movement that the robot should perform in the translation phase
- rotation_delta_degrees [default: 25] — the maximum rotation that the robot should perform
- robot_velocity_scaling [default: 0.3] — the maximum speed the robot should reach, as a factor of the speed declared in the joint_limits.yaml
- robot_acceleration_scaling [default: 0.2] — the maximum acceleration the robot should reach, as a factor of the acceleration declared in the joint_limits.yaml