Software components

The rc_visard comes with several on-board software components, which provide camera images, 3D information, and dynamics state estimates, and allow calibration to be performed. Each software component corresponds to a node in the REST-API interface. Fig. 18 gives an overview of the relationships between the different software components and the data they provide via rc_visard’s various interfaces.


Fig. 18 Flowchart of the software components with their node names and the most important outputs


Components marked as optional extend the rc_visard’s features. Customers can extend the license to purchase additional components.

The rc_visard’s on-board software consists of the following components:

  • Stereo camera (rc_stereocamera)
    acquires stereo image pairs and performs planar rectification for using the stereo camera as a measurement device. Images are provided both for further internal processing by other components and for external use as GenICam image streams.
  • Stereo matching (rc_stereomatching)
    uses the rectified stereo image pair to compute 3D depth information such as disparity, error, and confidence images. These are provided as GenICam streams, too.
  • Sensor dynamics (rc_dynamics)
    provides estimates of rc_visard’s dynamic state such as its pose, velocity, and acceleration. These states are transmitted as continuous data streams via the rc_dynamics interface. For this purpose, the dynamics component manages and fuses data from the following individual subcomponents:
    • Visual odometry (rc_stereovisodo)
      estimates the motion of the rc_visard device based on the motion of characteristic visual features in the left camera images.
    • Stereo INS (rc_stereo_ins)
      combines visual odometry measurements with readings from the on-board Inertial Measurement Unit (IMU) to provide accurate and high-frequency state estimates in real time.
  • Camera calibration (rc_cameracalib)
    automatically checks and performs the self-calibration of the rc_visard’s stereo camera in case it has been decalibrated. It furthermore enables the user to check and perform recalibration manually via the WEB GUI.
  • Hand-eye calibration (rc_hand_eye_calibration)
    enables the user to calibrate the rc_visard with respect to a robot, either via the Web GUI or the REST-API.