basalt_ros1 icon indicating copy to clipboard operation
basalt_ros1 copied to clipboard

ROS1 wrapper for basalt VIO

Basalt VIO ROS wrapper

This is a ROS wrapper around the Basalt VIO library.

Note that the wrapper is split into two parts: frontend and backend. The frontend performs the image feature extraction, the backend runs the graph optimizer etc. The front end publishes messages that contain the extracted features. These messages can be recorded in a rosbag and played back, such that there is no need to store the images to test the backend.

For efficiency reasons, front- and backend are fused together into a single exectuable as well, avoiding the overhead of serializing and de-serializing ROS messages from the Basalt data structures.

Supported systems

Only tested on Ubuntu 18.04LTS with ROS1 Melodic

Building

This package depends on the Basalt VIO package, which must be installed first by following the instructions for the basalt_ros repository. Failing to do so will give you an error about a missing basaltConfig.cmake. If you don't like the ROS2 packages that come with the basalt_ros repo remove them afterwards, then build by doing this at the root of your workspace:

cd path_to_top_of_your_workspace
catkin config -DCMAKE_BUILD_TYPE=Release
catkin build

Testing

Overlay your workspace:

cd path_to_top_of_your_workspace
. devel/setup.bash   # activate this workspace

Launch the unified front/backend as a node:

roslaunch basalt_ros1 vio.launch

Now you need supply data from the realsense T265. Also update the calibration file to match your camera.

How to get the RealSense calibration

To get the calibration file, do this:

rosrun basalt_ros1 get_calibration  -o my_calib_file.json

If you want to overwrite the imu noise with your own idea of covariance:

rosrun basalt_ros1 get_calibration  -o my_calib_file.json -a 0.5