Skip to content

NicNedwob/M2S2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

M2S2 - Multi Modal Sensor Suite

Description

m2s2_system

This repo contains ROS2 drivers for various sensors to collect raw, synchronized, high-speed RGB video, stereoscopic depth video, mmWave radar, thermal, event, LiDAR and audio measurements.

This repo also contains all mechanical designs used, as well as extrinsic calibration data and procedures used in the design of this system.

In addition, we present the first M2S2 dataset containing wild cheetah behaviour.


Hardware

Prerequisites

Setup

ROS2 Foxy

For ROS2 installation, please refer to the official ROS2 installation guide: ROS2-foxy installation guide

RMW-ecal

Using eCAL RWM as an alternative to ROS2 DDS middleware implementations showed significant perfomance improvements.

Install eCAL

$ sudo add-apt-repository ppa:ecal/ecal-latest
$ sudo apt-get update 
$ sudo apt-get install ecal

Clone the latest release of the ecal-rmw repository into your ROS2 workspace and build it.

$ cd ~/ros2_ws
$ git clone https://github.com/eclipse-ecal/rmw_ecal.git
$ cd ~/ros2_ws/rmw_ecal
$ colcon build --packages-skip rmw_ecal_proto_cpp
$ vim ~/.bashrc   # add "source ~/ros2_ws/rmw_ecal/install/setup.bash"
$ source ~/.bashrc

Add the following line into your .bashrc to run all nodes using eCAL middleware

export RMW_IMPLEMENTATION=rmw_ecal_dynamic_cpp

Usage

The launch files in this repo can be used to launch the ros2 nodes of all the sensors used in M2S2 simultaneously and visualise (and hear) the output streams.

clone this repo to your ros2 workspace source directory:

$ cd ~/ros2_ws
$ git clone https://github.com/African-Robotics-Unit/M2S2.git
$ cd ~/ros2_ws/M2S2
$ colcon build --packages-select m2s2_bringup

$ ros2 launch m2s2_bringup m2s2.launch.py

# To view the stream
$ ros2 launch m2s2_bringup m2s2_display.launch.py 

Note: For usage instructions of specific drivers, please refer to the corresponding README file.

Deserialise Data

Using the eCAL RMW, one can record data using their powerful recording tool. All data is stored as an ecal_measurement in .hdf5 files.

Our m2s2_ecal_deserializers provides deserializers to convert raw M2S2 measurements into readable data.

Calibration

The Intel Realsense RGB camera was used as the reference (global) frame for all extrinsic calibration between M2S2 sensors.

Thermal Camera

To perform extrinsic calibration between the Intel RealSense and FLIR Boson 640, we propose a calibration target made of a laser-cut checkerboard pattern overlayed onto an aluminum covered surface. The checkerboard is then heated using two halogen lamps. This creates distinct features in the calibration target and the board is visible in both the RGB and IR camera.

Given the different resolutions of the thermal images (640 x 512) and the reference images from the Intel RealSense (1080 x 720), we used the MATLAB community Calibration-Under Different-Resolution toolbox. This toolboox modifies Matlab’s calibration app to accept cameras of different resolutions.

LiDAR

Matlab's Lidar Camera Calibrator app was used to perform geometric calibration between the Livox Avia and the Intel RealSense.

Event Camera

We used the open-source toolbox E2Calib to perform event-camera calibration. The toolbox reconstructs visible images from event data using E2VID. The reconstructed images were then used in Matlab's Stereo Camera calibrator app to perform extrinsic calibration between the event camera and the reference Intel RealSense.

mmWave Radar

NIC ADD SOMETHING SHORT HERE

Ximea High-speed Camera

Matlab's Stereo Camera calibrator app was used to perform extrinsic calibration between the Ximea and Intel RealSense.

All calibration data used can be found here: M2S2 Calibration Data

Mecahnical Design

Download our CAD design for our casing and 3D designs for our various sensor mounts here: M2S2 CAD

Data

Download our dataset in .hdf5 format here: M2S2 Dataset

About

Multi Modal Sensor Suite

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 91.2%
  • CMake 8.8%