• Stars
    star
    150
  • Rank 246,526 (Top 5 %)
  • Language
    MATLAB
  • License
    MIT License
  • Created over 6 years ago
  • Updated about 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

LiDAR-Inertial 3D Plane Simulator

LiDAR-Inertial 3D Plane Simulator

This repository has a LiDAR-inertial 3D plane simulator in it that allows for custom trajectory through 3D enviroments to be created, and a sensor suite to be sent through it at a given rate. The simplest way to get started is to clone this repository into your ROS workspace, and play around with the example datasets. Please read the guides below on how to get started, and see the ReadMe files in the package directories for more details on each package.

Demo Video

Here is a video of a LiDAR-inertial estimator runnning on the top of this simulator. The paper leveraging this simulator "LIPS: LiDAR-Inertial 3D Plane SLAM" will be presented at IROS 2018.

IMAGE ALT TEXT

Package Descriptions

  • lips_comm: This package has the custom message files that the simulator should publish.
  • lips_matlab: Contains MATLAB scripts to generate simulated LiDAR sensor moving through a 3D environment.
  • lips_simulator: This package has a publisher node that takes the MATLAB exported files and publish on ROS.

Example Simulations

example lidar run

example lidar run

Quicker Quickstart Guide

  • To get up an running using the existing datasets, please perform the following.
  • Download one of the following datasets
  • Extract the datasets into the /lips_matlab/output/<name_of_dataset>/
  • Launch RVIZ and load the example config in the /lips_simulator/launch/ folder
  • Launch your specific launch file to publish the simulation
    • roslaunch lips_simulator spencer_large_01.launch
    • roslaunch lips_simulator spencer_small_01.launch
    • roslaunch lips_simulator spencer_small_02.launch
  • Examine the RVIZ output and published topics
  • Edit the launch files as needed to new generated datasets or change noise properties

Normal Quickstart Guide

  • To generate your own trajectory and enviroment you can follow the followings steps.
  • Open MATLAB in the matlab folder /lips_matlab/matlab/
  • You can use an existing floorplan and path or create your own
  • To create your own floorplan do the following:
    • Create a new text file in the /lips_matlab/input/ folder
    • A floorplan is made up of pairs of points that create a line
    • start_x, start_y, end_x, end_y
    • This floorplan will be extruded vertically
    • Should be in the unit of feet
    • Use the plot_2d_floorplan.m script to help create
  • To create your own trajectory do the following:
    • Create a new text file in the /lips_matlab/input/ folder
    • A trajectory is made up of ordered 3D control points
    • time,x(ft),y(ft),z(ft),yaw(deg),pitch(deg),roll(deg)
    • The time isn't the real time used, but instead is a "scale" factor for how you want the spline to weight each node
    • Note that the rotations are applied as rotz(yaw)*roty(pitch)*rotx(roll)
    • Use the plot_3d_spline.m script to help create
  • After creating your floorplan and trajectory we can specify the sensor properties
  • Open the MAINSCRIPT.m file and edit the paths to the floorplan and trajectory files
  • Specify the sensor properties you want to use in the top of the file (see matlab comments for units)
  • Run the MAINSCRIPT.m to generate the groundtruth measurement data
  • Move files from the /lips_matlab/output/ folder to a sub-folder
  • Follow the "Quicker Quickstart Guide" to publish this new simulation data on ROS

More Repositories

1

open_vins

An open source platform for visual-inertial navigation research.
C++
2,111
star
2

R-VIO

Robocentric Visual-Inertial Odometry
C++
737
star
3

kalibr_allan

IMU Allan standard deviation charts for use with Kalibr and inertial kalman filters.
MATLAB
577
star
4

MINS

An efficient and robust multisensor-aided inertial navigation system with online calibration that is capable of fusing IMU, camera, LiDAR, GPS/GNSS, and wheel sensors. Use cases: VINS/VIO, GPS-INS, LINS/LIO, multi-sensor fusion for localization and mapping (SLAM). This repository also provides multi-sensor simulation and data.
C++
427
star
5

cpi

Closed-form Preintegration for Graph-based Visual-Inertial Navigation
C++
248
star
6

R-VIO2

Square-Root Robocentric Visual-Inertial Odometry with Online Spatiotemporal Calibration
C++
228
star
7

ov_plane

A monocular plane-aided visual-inertial odometry
C++
197
star
8

calc

Convolutional Autoencoder for Loop Closure
Python
190
star
9

suo_slam

Symmetry and Uncertainty-Aware Object SLAM for 6DoF Object Pose Estimation
Python
133
star
10

android-camera-calibration

Updated (opencv3 and camera2 API) android camera calibration application
C++
118
star
11

calc2.0

CALC2.0: Combining Appearance, Semantic and Geometric Information for Robust and Efficient Visual Loop Closure
Python
95
star
12

vicon2gt

Vicon-IMU fusion for groundtruth trajectory generation.
C++
95
star
13

ocekf-slam

Observability-Constrained (OC)-EKF for 2D SLAM
MATLAB
79
star
14

ov_maplab

Interface for OpenVINS with the maplab project
C++
78
star
15

android-dataset-recorder

Dataset collection app that will collect both IMG and IMU measurements for offline processing
Java
60
star
16

icalib.github.io

Inertial Aided Multi-Sensor Calibration
60
star
17

ov_secondary

Secondary posegraph adapted for interfacing with OpenVINS, based on VINS-Mono / VINS-Fusion.
C++
59
star
18

ar_table_dataset

Small-scale indoor table AR visual-inertial datasets with 6DoF groundtruth.
Python
53
star
19

reach_ros_node

ROS driver for the Reach RTK GNSS module by Emlid
Python
36
star
20

mast_project

Underwater Camera and Sonar SLAM (Kevin and Linde's MAST class project)
C++
36
star
21

pointgrey_ladybug

ROS Driver for Pointgrey Ladybug Cameras
C++
30
star
22

clatt

cooperative localization and target tracking
MATLAB
28
star
23

android_sensors_driver

ROS Driver for Android Sensors (opencv3 and camera1 API)
Java
26
star
24

xsens_standalone

Python Standalone library for use with the xsens IMU
Python
19
star
25

rosbags

Github mirror of https://gitlab.com/ternaris/rosbags
Python
18
star
26

kitti_parser

C++ parser for the RAW KITTI dataset, with callbacks
C++
15
star
27

gps_path_pub

Handy publishing of a path and and frame from a single GPS sensor.
C++
13
star
28

CSO

Calibration the rigid transformation between the stereo and odometry
C++
12
star
29

img_imu_record

Easy recording of image and imu data to disk
C++
9
star
30

orb_slam_mapmerge

A Versatile and Accurate Monocular SLAM (with map merging)
C++
7
star
31

apriltags-cpp

A simple ros wrapper for apriltag-cpp
C++
7
star
32

vins_source

Helper package with launch files for getting imu and video sources.
CMake
6
star
33

microstrain_comm

IMU driver for the Microstrain 3DM-GX3®-25. Converted to run on the ROS framework.
C
5
star
34

Microstrain-3DM-GX3-35

ROS driver for Microstrain 3DM-GX3-35 IMU
C
3
star
35

firefly

AscTec Firefly Documentation
1
star
36

ZED_Odom_Grabber

Grab zed stereo images and odometry from turtlebot at the same time.
C++
1
star
37

dvs128-viewer

A driver for dvs128 camera
Java
1
star