• Stars
    star
    277
  • Rank 143,992 (Top 3 %)
  • Language
    Python
  • License
    MIT License
  • Created 10 months ago
  • Updated 5 months ago

Reviews

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

Repository Details

Online Monocular Lane Mapping Using Catmull-Rom Spline (IROS 2023)
MonoLaM

Introduction

overview This is the official code repository of "Online Monocular Lane Mapping Using Catmull-Rom Spline", which is accepted by IROS'23.

MonoLaM (Monocular Lane Mapping) is an online lane mapping algorithm based on a monocular camera. It takes real-time images and odometry (such as from VIO), and estimates its own pose as well as the lane map.

Its main features are:

  • MonoLaM uses a monocular 3D lane detection network to obtain 3D lane marking measurements.
  • Lane association using a combination of Chamfer distance, pose uncertainty, and lateral sequence consistency.
  • The lane marking is parameterized by the Catmull-Rom Spline, which saves the map memory.
  • Initializing control points for unordered lane line point clouds.
  • Incrementally extending and optimizing the lane map.
example

Prerequisites

ROS

Follow the official guide to install ROS1.

Python Dependencies

pip install -r requirements.txt

GTSAM

Follow the official guide to install GTSAM with Python Bindings.

OpenLane ROS Package

mkdir -p catkin_ws/src
cd catkin_ws/src
git clone https://github.com/qiaozhijian/openlane_bag.git

Build

git clone https://github.com/HKUST-Aerial-Robotics/MonoLaneMapping.git
cd ..
catkin_make

OpenLane Example

We validate the method based on the OpenLane dataset. Users need to download this dataset and the rosbags we provide after preprocessing with openlane_bag.

Specifically, we use PersFormer to predict 3D lane markings and save them along with GT and calibration parameters (Details). The camera coord sys (OpenLane) is x-front, y-left, z-up. However, you may feel confused if you want preprocess by yourself using PersFormer. Because its camera coord sys is different from OpenLane (please refer to issue 24.

Rosbag download link [OneDrive][Baidu Cloud]

Unzip the downloaded file and put it in the OpenLane dataset folder.

โ”œโ”€โ”€ OpenLane
โ”‚ย ย  โ””โ”€โ”€ lane3d_1000
โ”‚ย ย      โ”œโ”€โ”€ rosbag
โ”‚ย ย      โ””โ”€โ”€ test
โ”‚ย ย      โ””โ”€โ”€ validation
โ”‚ย ย      โ””โ”€โ”€ training

Modify the config/lane_mapping.yaml file to change the dataset path.

dataset:
    name: "openlane"
    dataset_dir: "/media/qzj/Document/datasets/OpenLane/"

Quick Start

python examples/demo_mapping.py --cfg_file=config/lane_mapping.yaml

Reproduce the results in the paper

#In this step, users need to download the original [OpenLane](https://github.com/OpenDriveLab/OpenLane) dataset and merge it with our provided dataset.
cd src/MonoLaneMapping
# lane mapping and save the results
python examples/mapping_bm.py --cfg_file=config/lane_mapping.yaml
# evaluation of lane recall and precision
python examples/openlane_eval3d.py --cfg_file=config/lane_mapping.yaml
# lane association evaluation
python examples/lane_association.py --cfg_file config/lane_association.yaml --bm

Toy example for curve fitting

python examples/demo_curve_fitting.py

Citation

If you find this work useful in your research, please consider citing:

@INPROCEEDINGS{qiao_monolam,
  author={Zhijian Qiao, Zehuan Yu, Huan Yin and Shaojie Shen},
  booktitle={2023 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}, 
  title={Online Monocular Lane Mapping Using Catmull-Rom Spline}, 
  year={2023},
  volume={},
  number={}}

License

This project is licensed under the MIT License - see the LICENSE file for details.

More Repositories

1

VINS-Mono

A Robust and Versatile Monocular Visual-Inertial State Estimator
C++
4,733
star
2

VINS-Fusion

An optimization-based multi-sensor state estimator
C++
3,181
star
3

Fast-Planner

A Robust and Efficient Trajectory Planner for Quadrotors
C++
2,194
star
4

A-LOAM

Advanced implementation of LOAM
C++
1,957
star
5

VINS-Mobile

Monocular Visual-Inertial State Estimator on Mobile Phones
C++
1,242
star
6

Teach-Repeat-Replan

Teach-Repeat-Replan: A Complete and Robust System for Aggressive Flight in Complex Environments
C++
875
star
7

GVINS

Tightly coupled GNSS-Visual-Inertial system for locally smooth and globally consistent state estimation in complex environment.
C++
792
star
8

FUEL

An Efficient Framework for Fast UAV Exploration
C++
744
star
9

Stereo-RCNN

Code for 'Stereo R-CNN based 3D Object Detection for Autonomous Driving' (CVPR 2019)
Python
681
star
10

DenseSurfelMapping

This is the open-source version of ICRA 2019 submission "Real-time Scalable Dense Surfel Mapping"
C++
661
star
11

FIESTA

Fast Incremental Euclidean Distance Fields for Online Motion Planning of Aerial Robots
C++
552
star
12

EPSILON

C++
493
star
13

ESVO

This repository maintains the implementation of "Event-based Stereo Visual Odometry".
C++
408
star
14

Btraj

Bezier Trajectory Generation for Autonomous Quadrotor, ICRA 2018
C++
388
star
15

grad_traj_optimization

Gradient-Based Online Safe Trajectory Generator
C++
349
star
16

open_quadtree_mapping

This is a monocular dense mapping system corresponding to IROS 2018 "Quadtree-accelerated Real-time Monocular Dense Mapping"
Cuda
347
star
17

MVDepthNet

This repository provides PyTorch implementation for 3DV 2018 paper "MVDepthNet: real-time multiview depth estimation neural network"
Python
305
star
18

D2SLAM

$D^2$SLAM: Decentralized and Distributed Collaborative Visual-inertial SLAM System for Aerial Swarm
Jupyter Notebook
218
star
19

Omni-swarm

A Decentralized Omnidirectional Visual-Inertial-UWB State Estimation System for Aerial Swar.
Jupyter Notebook
179
star
20

GVINS-Dataset

A dataset containing synchronized visual, inertial and GNSS raw measurements.
C++
173
star
21

spatiotemporal_semantic_corridor

Implementation of the paper "Safe Trajectory Generation For Complex Urban Environments Using Spatio-temporal Semantic Corridor".
C++
160
star
22

PredRecon

A Prediction-boosted Planner for Fast and High-quality Autonomous Aerial Reconstruction
C++
142
star
23

eudm_planner

Implementation of the paper "Efficient Uncertainty-aware Decision-making for Automated Driving Using Guided Branching".
C++
139
star
24

DSP

Trajectory Prediction with Graph-based Dual-scale Context Fusion
Python
132
star
25

Nxt-FC

Mini PX4 for UAV Group
Shell
130
star
26

mockamap

a simple map generator based on ROS
C++
120
star
27

pointcloudTraj

Trajectory generation on point clouds
C++
117
star
28

Flow-Motion-Depth

This is the project page of the paper "Flow-Motion and Depth Network for Monocular Stereo and Beyond''
Python
114
star
29

Pagor

Pyramid Semantic Graph-based Global Point Cloud Registration with Low Overlap (IROS 2023)
C++
113
star
30

SIMPL

SIMPL: A Simple and Efficient Multi-agent Motion Prediction Baseline for Autonomous Driving
Python
107
star
31

VINS-kidnap

a place recognition system for VINS-fusion
105
star
32

gnss_comm

Basic definitions and utility functions for GNSS raw measurement processing
C++
97
star
33

G3Reg

G3Reg: Pyramid Graph-based Global Registration using Gaussian Ellipsoid Model
87
star
34

ublox_driver

A driver for u-blox receiver (ZED-F9P) with ros support
C++
81
star
35

TopoTraj

A robust UAV local planner based on the ICRA2020 paper: Robust Real-time UAV Replanning Using Guided Gradient-based Optimization and Topological Paths
80
star
36

TimeOptimizer

Optimal Time Allocation for Quadrotor Trajectory Generation
C++
77
star
37

Pinhole-Fisheye-Mapping

70
star
38

FC-Planner

An Efficient Planner for Fast Aerial Coverage
54
star
39

AutoTrans

AutoTrans: A Complete Planning and Control Framework for Autonomous UAV Payload Transportation.
C++
54
star
40

EMSGC

This repository maintains the implementation of the paper "Event-based Motion Segmentation withSpatio-Temporal Graph Cuts".
C++
54
star
41

LiDAR-Registration-Benchmark

LiDAR-based 3D global registration benchmark.
Python
53
star
42

VINS-Fisheye

Fisheye version of VINS-Fusion
C++
52
star
43

GeometricPretraining

This is the code base for paper ``Geometric Pretraining for Monocular Depth Estimation``, the paper is currently under review. The preprint will be available when it is ready.
49
star
44

HKUST-ELEC5660-Introduction-to-Aerial-Robotics

Repo for HKUST ELEC5660 Course Notes & Lab Tutorial & Project Docker
C++
44
star
45

OmniNxt

A Fully Open-source and Compact Aerial Robot with Omnidirectional Visual Perception
32
star
46

IMPACTOR

Impact-Aware Planning and Control for Aerial Robots with Suspended Payloads
31
star
47

plan_utils

Some useful pkgs for running planning simulation.
Makefile
28
star
48

edge_alignment

Clone of https://github.com/mpkuse/edge_alignment
C++
26
star
49

mockasimulator

C++
19
star
50

probabilistic_mapping

Probabilistic Dense Mapping
C++
19
star
51

swarm_gcs

Ground Station Software for aerial robots.
JavaScript
18
star
52

stTraj

Spatial-temporal Trajectory Planning for UAV Teach-and-Repeat
15
star
53

APACE

APACE: Agile and Perception-aware Trajectory Generation for Quadrotor Flights (ICRA2024)
10
star
54

MASSTAR

A Multi-modal Large-scale Scene Dataset and A Versatile Toolchain for Scene Prediction
8
star
55

mockacam

Camera package of mocka WFB
C++
3
star
56

RI_Mocap

Mocap device driver of RI
C++
1
star