Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

The below describes the calibration method for Beta RapidSense RapidSense’s beta release. This requires some manual work and ensuring the cal.json file is configured and stored in the directory: ~/.config/rapidsense. In the future RapidSense release, the process will include a GUI and be much more user friendly.

...

The current method uses the robot to calibrate the sensors. The robot will need to hold a calibration tag and move through positions with the tag in the sensors field of view during the calibration process. The positions will need to be are set by the user. Optionally, a calibration tag will also need to may be mounted as a stationary tag in the scene (not attached to a robot) in the field of view of the sensors in order for the system to be able to detect if the sensors have shifted out of calibration.

...

The requirements for calibration are:

  • Aruco tag mounted off of on the user created mount, attached to the robot faceplate

  • (Optional)Static Aruco tag placed in the scene which is easily clearly visible to the sensor(s)

  • Calibration preset in RPC called “Calibration” with accurate TCP frame located at the center of the Aruco tag.

    • For calibrating, create a frame on the aruco Aruco tag face center centered with its X axis (Red) pointing to the right, Y (Green) pointing upwards and Z (Blue) coming out of the face. Something like this:

...

Setup and Running Calibration Process Manually

To easily generate the RapidSense generates a default cal.json file and save it in ~/.config/rapidsense, there is a calibration_generator.py script which prompts the user for all the necessary information and generates the cal.json file. Run the calibration_generator.py script by typing “calibration_generator.py” in the command line of the terminal and follow the prompts to create a cal.json file. The below is an example of the prompts to the user and responses.

Code Block
Enter the number of sensors you want to add: 2
********************  Entering Data For New Camera  ********************
Enter Serial Number: xyz
Enter Robot Mounted Aruco ID: 1
Enter Length for Robot Mounted Tag (meters): 0.09
Enter Robot name: Fanuc
Enter Calibration Target: fanuc_cal  
Static marker exists for this camera? y or n : n
********************  Entering Data For New Camera  ********************
Enter Serial Number: abc
Enter Robot Mounted Aruco ID: 2
Enter Length for Robot Mounted Tag (meters): 0.09
Enter Robot name: UR
Enter Calibration Target: cal_target_UR
Static marker exists for this camera? y or n: y
Enter Stationary ID: 4
Enter Length of Stationary Tag (meters): 0.09

After the cal.json file has been generated, run the calibration_service.py script and go to localhost:9000/calibration to calibrate all the cameras after rapidsense and rtr_rapidsense_proxy services are running or go to the RapidSense Monitor interface. The calibration script will pull in information from the cal.json file and make the robots move to the cal_targets sequentially, extrinsically calibrating all corresponding cameras. The robot will then return to the home location and all the cameras will save the pose of the static marker placed in the scene. After a successful calibration, all the values will be automatically updated in the cal.json file.

Current calibration implementation looks like this and follows these states:

...

upon running with all the detected sensors listed. It is important you have all the sensors you wish to use connected BEFORE starting RapidSense. If you want to add sensors later, you must remove your existing cal.json and restart RapidSense and reconfigure the file.

After the cal.json file has been generated, run the calibration_service.py script and open a browser to localhost:9000/calibration to calibrate all the cameras after rapidsense and rtr_rapidsense_proxy applications are running or alternatively, you can also use the RapidSense Monitor interface UI to perform calibration. The calibration script will pull in information from the cal.json file and move the robots to their targets sequentially, calibrating all corresponding cameras. The robot will then return to the home location and all cameras will save the pose of the static marker if placed in the scene. After a successful calibration, all the values will be automatically updated in the cal.json file.

Info

The following prerequisites should be met before running calibration:

  • All robots should be at their home positions (target names should follow this naming “[robotname]_home”) before starting to calibrate

  • The user should make sure that the robots do not block the static marker when in home positions

  • rapidsense and rtr_rapidsense_proxy services are running

...