Skip to content

This is the repository for our paper 'Occlusion-Resistant LiDAR Fiducial Marker Detection'

Notifications You must be signed in to change notification settings

York-SDCNLab/Marker-Detection-General

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 

Repository files navigation

Motivations

The LiDAR fiducial tag, akin to the well-known AprilTag used in camera applications, serves as a convenient resource to impart artificial features to the LiDAR sensor, facilitating robotics applications. Unfortunately, the existing LiDAR fiducial tag localization methods do not apply to 3D LiDAR maps while resolving this problem is beneficial to LiDAR-based relocalization and navigation. In this paper, we develop a novel approach to directly localize fiducial tags on a 3D LiDAR prior map, returning the tag poses (labeled by ID number) and vertex locations (labeled by index) w.r.t. the global coordinate system of the map. The following shows a 3D map built from the modified livox_mapping.

fig2

map
Our method can detect the LiDAR fiducial markers in a point cloud with occlusion while computing their poses relative to the global frame.

The following is a synthesis point cloud with occlusion. The two presenters are holding two different AprilTag markers. Observing along the X-axis of the global coordinate system, the back subpoint cloud is totally blocked by the front one. Thus, it is infeasible to project the 3D point cloud to a 2D image plane due to the occlusion.

synthesis.mp4

process

result.mp4


Besides the capability of handling point clouds with occlusion, our method shows superiority in terms of pose estimation accuracy compared to IILFM. image

Supplementary Instructions

The pcd file corresponding to the above video is available at GoogleDrive. Again, please refer to modified livox_mapping if you are interested in the generation of the point cloud. Our algorithm requires that the inputted point cloud is in the format of pcd. modified livox_mapping is just a tool to help you obtain such a point cloud with a Livox mid-40 LiDAR rather than a necessary condition. That is, you can use other ways, for instance, terrestrial laser scanning, to acquire a point cloud. As long as the format is in pcd and the intensity values are available, our algorithm is applicable.

How to use

Requirements

  • Ubuntu 20.04
    Other versions of the Ubuntu system could work if the following libraries are installed correctly.
  • PCL
    sudo apt update
    sudo apt install libpcl-dev
  • OpenCV
    sudo apt update
    sudo apt install libopencv-dev python3-opencv
  • catkin
    sudo apt update
    sudo apt install catkin
  • yaml-cpp
    sudo apt update
    sudo apt-get install libyaml-cpp-dev

Commands

git clone https://github.com/York-SDCNLab/Marker-Detection-General.git
cd Marker-Detection-General
cd aruco_detection
mkdir build
cd build
cmake ..
Then, download the pcd file and put it in the build folder.
Move the config.yaml file into the build folder as well. It can be found in aruco_detection folder.
Run the following command in the build folder
./tag_detection
Afterward, the visualization of the marker detection process will be shown in the 3D viewer.
Moreover, the detection result will be shown in the terminal.