Wiki

Clone wiki

RCARS / Running RCARS

Running instructions

Before using RCARS, you should try running it on the Datasets provided. For this, we provide a launch-file in the rcars_estimator packages. To run RCARS with the example datasets or other datasets recorded with the VI-Sensor invoke the following command

roslaunch rcars_estimator vi-sensor_left_bag.launch

To adapt the system to your system, you can use this launch file as a template. It is a good example of how to map topics and launch all required nodes.

Note: While the default configuration for RCARS works well with the provided datasets, you still have to set the tag size and tag family in the Configuration correctly. See Datasets for the details.

Visualization

To visualize the data and inspect that everything is working as expected, use the visualization package provided

roslaunch rcars_visualization visualization.launch

This will open a RViz view showing reprojection errors in image space as well as all estimates, tags and transformations.

Troubleshooting

I do not get any output data.

  1. First of all, make sure everything is in the correct namespace and connected. Inspect the current structure with rqt_graph

    rqt_graph

  2. Make sure you get vision data, camera info and IMU data from your hardware/recording.

  3. Take a look at the detector output image /rcars/visualizer/detectorImage. If no image is shown, the detector is not detecting any tags. This can have multiple reasons. The most common ones are:

  • the detector does not get any image or camera data
  • the tag family is not correctly set
  • the tag is to small or to inclined for the estimator to detect it
  1. Take a look at the reprojection error image /rcars/visualizer/detectorEstimatorImage. If no image is shown but you do get a detector image, then this could be a result of the following reasons:
  • detector and estimator are not communicating
  • estimator does not receive IMU or camera info data

The filter is diverging or the pose estimate drifts a lot

Reasons for divergence of a Kalman Filter can be very different. Here are a few recommendations on how to track down the issue

  1. Turn on verbosity in the Configuration. This usually already gives you a clue.

  2. Make sure your filter recieves vision and IMU data

  3. Make sure the EKF settings as well as the tagSize are set correctly

  4. Ensure good calibration and synchronization / time-stamping of your sensors

In the reprojection error visualization, the red squares (estimated tag corners) are missing for some tags

Most likely you set the nDynamicTags paramter in the Configuration to low. The estimator therefore does not include this tag in its state and thus you do not see a corner estimate. Another reason can be that the filter already diverged.

I get a warning hat the detector is running too slow

If the detector is running too slow, try one of the following

  1. Make sure you compiled in release mode.

  2. Enable multi-threading in the Configuration.

  3. Lower your camera frame rate.

  4. Downsample your images. But do not forget to adjust the camera matrix accordingly!

Updated