-
 

Package Summary

Tags No category tags.
Version 3.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/roboception/rc_visard_ros.git
VCS Type git
VCS Version master
Last Updated 2022-05-13
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The rc_hand_eye_calibration_client package

Additional Links

Maintainers

  • Felix Ruess

Authors

  • Christian Emmerich

ROS Hand-eye calibration client for Roboception’s rc_visard

This package is not developed anymore. A new client is available in the rc_reason_clients_ros repository.

This node provides ROS service calls and topics to calibrate the rc_visard to a robot (aka hand-eye calibration).

It also provides the new or pre-existing calibration via /tf or /tf_static. The default behavior is to request the existing calibration of the rc_visard once on startup, broadcast it (latched) on /tf_static and only broadcast again if the advertised ROS services calibrate or get_calibration are called.

The calibration routine consists of several steps:

  1. Setting calibration parameters, i.e. grid size and mounting, via dynamic reconfigure.
  2. For a user-defined number of robot calibration poses repeat

    1. Move the robot to the pose (calibration grid must be visible in the rc_visard’s view).
    2. Send the robot pose to rc_visard (set_pose)
  3. Trigger the calibration tranformation to be calculated (calibrate).

After the calibration transform is calculated and tested, it should be saved to the rc_visard (save_calibration).

For detailed instructions on the calibration routine consult the rc_visard manual: https://doc.rc-visard.com.

Installation

On Debian/Ubuntu add the ROS sources and

sudo apt-get install ros-${ROS_DISTRO}-rc-hand-eye-calibration-client

From Source

This package relies on git submodules for the cpr library which need to be initialized before building from source.

git submodule update --init --recursive

Configuration

Parameters

  • device: The ID of the device, i.e. Roboception rc_visard sensor. This can be either:
    • serial number, e.g. 02912345. IMPORTANT: preceed with a colon (:02912345) when passing this on the commandline or setting it via rosparam (see https://github.com/ros/ros_comm/issues/1339). This is not neccessary when specifying it as a string in a launch file.
    • user defined name (factory default is the name of the rc_visard’s model), must be unique among all reachable sensors.
  • host: If device is not used: The IP address or hostname of the rc_visard that should be calibrated.
  • rc_visard_frame_id: Name of the frame on the rc_visard when calibrating. Default: “camera”
  • end_effector_frame_id: Name of the frame calibrated to when using a robot_mounted (see below) rc_visard. Default: “end_effector”.
  • base_frame_id: Name of the frame calibrated to when using a statically (externally) mounted rc_visard (robot_mounted == false). Default: “base_link”
  • calibration_request_period: Decimal number, controls the requesting of calibration from the rc_visard. Default: 0.0
    • If positive: Interval in seconds for automated requests to get the latest calibration.
    • If zero: Only request once on startup (default).
    • If negative, the calibration is never requested.
    • In any case, new results will be broadcast when the services calibrate or get_calibration (see further below) of this node are called.
  • calibration_publication_period: Decimal number, controls broadcasting of the calibration on /tf or /tf_static. Default: 0.0
    • If positive: Interval in seconds.
    • If negative or zero, the calibration is broadcast on /tf_static only when changed in a manual or periodic calibration request (default).

Dynamic reconfigure parameters

  • grid_width: The width of the calibration pattern in meters.
  • grid_height: The height of the calibration pattern in meters.
  • robot_mounted: Whether the camera is mounted on the robot or not.
  • tcp_rotation_axis:, TCP rotation axis for 4 DOF robot calibration (-1 for general robot)
  • tcp_offset: Offset from the TCP for 4 DOF robot calibration

Services

The following services are offered to follow the calibration routine:

  • reset_calibration [rc_hand_eye_calibration_client/Trigger]: Deletes all previously provided poses and corresponding images. The last saved calibration result is reloaded. This service might be used to (re-)start the hand-eye calibration from scratch.
  • set_pose [rc_hand_eye_calibration_client/SetCalibrationPose]: Provides a robot pose as calibration pose to the hand-eye calibration routine.
  • calibrate [rc_hand_eye_calibration_client/Calibration]: Calculates and returns the hand-eye calibration transformation with the robot poses configured by the set_pose service. Broadcasts the result via /tf or /tf_static.
  • get_calibration [rc_hand_eye_calibration_client/Calibration]: Returns the existing hand-eye calibration transformation. Broadcasts the result via /tf or /tf_static.
  • save_calibration [rc_hand_eye_calibration_client/Trigger]: Persistently saves the result of hand-eye calibration to the rc_visard and overwrites the existing one. The stored result can be retrieved any time by the get_calibration service.
  • remove_calibration [rc_hand_eye_calibration_client/Trigger]: Removes the stored hand-eye calibration on the rc_visard. After this call the get_calibration service reports again that no hand-eye calibration is available. Periodic broadcasting via /tf will be stopped.
  • set_calibration [rc_hand_eye_calibration_client/SetCalibration]: Sets the hand-eye calibration transformation. The calibration transformation is expected in the same format as returned by the calibrate and get_calibration calls. save_calibration must be called to make the calibration transformation persistent.

Launching

Using command line parameters:

rosrun rc_hand_eye_calibration_client rc_hand_eye_calibration_client_node _device:=:<serial_number>
CHANGELOG

Changelog for package rc_hand_eye_calibration_client

3.3.3 (2022-03-03)

3.3.2 (2022-02-18)

3.3.1 (2022-02-18)

3.3.0 (2022-02-08)

3.2.4 (2021-11-15)

3.2.3 (2021-08-03)

3.2.2 (2021-08-02)

3.2.1 (2021-02-11)

3.2.0 (2021-01-28)

  • update cmake files for better version handling
  • add new error values to hand_eye_calibration_client

3.1.0 (2020-11-17)

3.0.5 (2020-10-20)

3.0.4 (2020-09-23)

3.0.3 (2020-09-22)

3.0.2 (2020-07-28)

3.0.1 (2020-05-14)

3.0.0 (2020-05-13)

  • add set_calibration service
  • refactor an cleanup
  • added 4DOF calibration parameters
  • update cpr for support of curl >= 7.62.0 and set EXCLUDE_FROM_ALL to not install it
  • update nlohmann json to 3.7.3
  • Using own trigger message with integer status return field
  • Contributors: Annett Stelzer, Christian Emmerich, Felix Ruess, Heiko Hirschmueller

2.7.0 (2019-07-19)

  • add [device]{.title-ref} parameter that can take serial number or GEV name (has precedence over old [host]{.title-ref} parameter)

2.6.4 (2019-06-19)

  • fix published tf transform

2.6.3 (2019-06-12)

  • add debian package dependencies
  • tf: invert transform so that the sensor is the child

2.6.2 (2019-06-11)

2.6.1 (2019-05-20)

2.6.0 (2019-05-20)

  • Enforce bool for robot_mounted parameter. This should make it compatible to older rc_visard firmware versions.
  • Publish hand-eye calibration via tf

2.5.0 (2019-02-05)

  • rename [ip]{.title-ref} parameter to [host]{.title-ref}
  • allow hostname as device parameter

2.4.2 (2018-10-29)

  • depend on curl

2.4.1 (2018-10-29)

2.4.0 (2018-10-16)

  • first release

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged rc_hand_eye_calibration_client at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 3.3.3
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/roboception/rc_visard_ros.git
VCS Type git
VCS Version master
Last Updated 2022-05-13
Dev Status MAINTAINED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The rc_hand_eye_calibration_client package

Additional Links

Maintainers

  • Felix Ruess

Authors

  • Christian Emmerich

ROS Hand-eye calibration client for Roboception’s rc_visard

This package is not developed anymore. A new client is available in the rc_reason_clients_ros repository.

This node provides ROS service calls and topics to calibrate the rc_visard to a robot (aka hand-eye calibration).

It also provides the new or pre-existing calibration via /tf or /tf_static. The default behavior is to request the existing calibration of the rc_visard once on startup, broadcast it (latched) on /tf_static and only broadcast again if the advertised ROS services calibrate or get_calibration are called.

The calibration routine consists of several steps:

  1. Setting calibration parameters, i.e. grid size and mounting, via dynamic reconfigure.
  2. For a user-defined number of robot calibration poses repeat

    1. Move the robot to the pose (calibration grid must be visible in the rc_visard’s view).
    2. Send the robot pose to rc_visard (set_pose)
  3. Trigger the calibration tranformation to be calculated (calibrate).

After the calibration transform is calculated and tested, it should be saved to the rc_visard (save_calibration).

For detailed instructions on the calibration routine consult the rc_visard manual: https://doc.rc-visard.com.

Installation

On Debian/Ubuntu add the ROS sources and

sudo apt-get install ros-${ROS_DISTRO}-rc-hand-eye-calibration-client

From Source

This package relies on git submodules for the cpr library which need to be initialized before building from source.

git submodule update --init --recursive

Configuration

Parameters

  • device: The ID of the device, i.e. Roboception rc_visard sensor. This can be either:
    • serial number, e.g. 02912345. IMPORTANT: preceed with a colon (:02912345) when passing this on the commandline or setting it via rosparam (see https://github.com/ros/ros_comm/issues/1339). This is not neccessary when specifying it as a string in a launch file.
    • user defined name (factory default is the name of the rc_visard’s model), must be unique among all reachable sensors.
  • host: If device is not used: The IP address or hostname of the rc_visard that should be calibrated.
  • rc_visard_frame_id: Name of the frame on the rc_visard when calibrating. Default: “camera”
  • end_effector_frame_id: Name of the frame calibrated to when using a robot_mounted (see below) rc_visard. Default: “end_effector”.
  • base_frame_id: Name of the frame calibrated to when using a statically (externally) mounted rc_visard (robot_mounted == false). Default: “base_link”
  • calibration_request_period: Decimal number, controls the requesting of calibration from the rc_visard. Default: 0.0
    • If positive: Interval in seconds for automated requests to get the latest calibration.
    • If zero: Only request once on startup (default).
    • If negative, the calibration is never requested.
    • In any case, new results will be broadcast when the services calibrate or get_calibration (see further below) of this node are called.
  • calibration_publication_period: Decimal number, controls broadcasting of the calibration on /tf or /tf_static. Default: 0.0
    • If positive: Interval in seconds.
    • If negative or zero, the calibration is broadcast on /tf_static only when changed in a manual or periodic calibration request (default).

Dynamic reconfigure parameters

  • grid_width: The width of the calibration pattern in meters.
  • grid_height: The height of the calibration pattern in meters.
  • robot_mounted: Whether the camera is mounted on the robot or not.
  • tcp_rotation_axis:, TCP rotation axis for 4 DOF robot calibration (-1 for general robot)
  • tcp_offset: Offset from the TCP for 4 DOF robot calibration

Services

The following services are offered to follow the calibration routine:

  • reset_calibration [rc_hand_eye_calibration_client/Trigger]: Deletes all previously provided poses and corresponding images. The last saved calibration result is reloaded. This service might be used to (re-)start the hand-eye calibration from scratch.
  • set_pose [rc_hand_eye_calibration_client/SetCalibrationPose]: Provides a robot pose as calibration pose to the hand-eye calibration routine.
  • calibrate [rc_hand_eye_calibration_client/Calibration]: Calculates and returns the hand-eye calibration transformation with the robot poses configured by the set_pose service. Broadcasts the result via /tf or /tf_static.
  • get_calibration [rc_hand_eye_calibration_client/Calibration]: Returns the existing hand-eye calibration transformation. Broadcasts the result via /tf or /tf_static.
  • save_calibration [rc_hand_eye_calibration_client/Trigger]: Persistently saves the result of hand-eye calibration to the rc_visard and overwrites the existing one. The stored result can be retrieved any time by the get_calibration service.
  • remove_calibration [rc_hand_eye_calibration_client/Trigger]: Removes the stored hand-eye calibration on the rc_visard. After this call the get_calibration service reports again that no hand-eye calibration is available. Periodic broadcasting via /tf will be stopped.
  • set_calibration [rc_hand_eye_calibration_client/SetCalibration]: Sets the hand-eye calibration transformation. The calibration transformation is expected in the same format as returned by the calibrate and get_calibration calls. save_calibration must be called to make the calibration transformation persistent.

Launching

Using command line parameters:

rosrun rc_hand_eye_calibration_client rc_hand_eye_calibration_client_node _device:=:<serial_number>
CHANGELOG

Changelog for package rc_hand_eye_calibration_client

3.3.3 (2022-03-03)

3.3.2 (2022-02-18)

3.3.1 (2022-02-18)

3.3.0 (2022-02-08)

3.2.4 (2021-11-15)

3.2.3 (2021-08-03)

3.2.2 (2021-08-02)

3.2.1 (2021-02-11)

3.2.0 (2021-01-28)

  • update cmake files for better version handling
  • add new error values to hand_eye_calibration_client

3.1.0 (2020-11-17)

3.0.5 (2020-10-20)

3.0.4 (2020-09-23)

3.0.3 (2020-09-22)

3.0.2 (2020-07-28)

3.0.1 (2020-05-14)

3.0.0 (2020-05-13)

  • add set_calibration service
  • refactor an cleanup
  • added 4DOF calibration parameters
  • update cpr for support of curl >= 7.62.0 and set EXCLUDE_FROM_ALL to not install it
  • update nlohmann json to 3.7.3
  • Using own trigger message with integer status return field
  • Contributors: Annett Stelzer, Christian Emmerich, Felix Ruess, Heiko Hirschmueller

2.7.0 (2019-07-19)

  • add [device]{.title-ref} parameter that can take serial number or GEV name (has precedence over old [host]{.title-ref} parameter)

2.6.4 (2019-06-19)

  • fix published tf transform

2.6.3 (2019-06-12)

  • add debian package dependencies
  • tf: invert transform so that the sensor is the child

2.6.2 (2019-06-11)

2.6.1 (2019-05-20)

2.6.0 (2019-05-20)

  • Enforce bool for robot_mounted parameter. This should make it compatible to older rc_visard firmware versions.
  • Publish hand-eye calibration via tf

2.5.0 (2019-02-05)

  • rename [ip]{.title-ref} parameter to [host]{.title-ref}
  • allow hostname as device parameter

2.4.2 (2018-10-29)

  • depend on curl

2.4.1 (2018-10-29)

2.4.0 (2018-10-16)

  • first release

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged rc_hand_eye_calibration_client at Robotics Stack Exchange