Giter VIP home page Giter VIP logo

heethesh / salsa-semantic-assisted-slam Goto Github PK

View Code? Open in Web Editor NEW
68.0 3.0 12.0 78.85 MB

SALSA: Semantic Assisted Life-Long SLAM for Indoor Environments (16-833 SLAM Project at CMU)

License: BSD 3-Clause "New" or "Revised" License

CMake 1.57% Dockerfile 0.50% C++ 94.66% Python 3.16% Shell 0.11%
orb-slam2 semantic-slam mask-rcnn loop-closure slam-methods salsa indoor-environments openloris-scene slam lifelong-slam

salsa-semantic-assisted-slam's Introduction

ROS Distro: Melodic CI License: BSD

SALSA: Semantic Assisted Life-Long SLAM for Indoor Environments

We propose a learning augmented lifelong SLAM method for indoor environments. Most of the existing SLAM methods assume a static environment and disregard dynamic objects. Another problem is that most feature and semantic based SLAM methods fail in repetitive environments. The unexpected changes of surroundings corrupts the quality of the tracking and leads to system failure. This project aims to use learning methods to classify landmarks and objects as dynamic and/or repeatable in nature to better handle optimization, achieve robust performance in a changing environment, and to re-localize in a lifelong-setting. We propose using semantic information and assigning scores to object feature points based on their probability to be dynamic and/or repeatable. We update the front-end, optimization cost functions, and BOW feature generation for loop closures from the original ORB-SLAM2 pipeline. Please see our paper for more details.

All 80 classes from the COCO dataset are assigned scores. This list is only a subset of some interesting objects. Some objects are exclusively labelled as dynamic objects.

 
 

Mask-RCNN was used to segment object instances and the scores were mapped according to the scale shown on the right. The left column shows score maps for the OpenLORIS-Scene [3] cafe1-2 sequence and the right column shows the score maps for TUM-RGBD walking_static sequence.

Setup and Usage

The current version does not perform segmentation online, the score maps are pre-computed using Detectron 2's Mask RCNN network and appended into the ROS bag file (using scripts/update_rosbag.py). See USAGE.md for more details on setting up and running this pipeline.

catkin build
roslaunch orb_slam_2_ros salsa.launch

Please see our report for the changes that we have made in the pipeline. We have tested on monocular camera data, RGB-D camera is still experimental and might work. Stereo mode is supported in the back-end optimization but the front-end (feature culling and ROS node integration) is not fully supported yet.

Results

RMSE Absolute Trajectory Error (ATE) on TUM-RGBD Dataset

Sequences ORB-SLAM2 [1] DS-SLAM [2] SALSA (Ours)
walking_static 0.4030m 0.0081m 0.0059m
walking_xyz 0.1780m 0.0247m 0.0521m

RMSE Relative Pose Error (RPE) on TUM-RGBD Dataset

Sequences ORB-SLAM2 [1] DS-SLAM [2] SALSA (Ours)
walking_static 0.2162m 0.0102 0.00829m
walking_xyz 0.4124m 0.0333 0.02951m

RMSE Absolute Trajectory Error (ATE) on OpenLORIS-Scene [3] Dataset

Sequences ORB-SLAM2 [1] SALSA (Ours)
cafe1_1 0.0777m 0.0464m
cafe1_2 0.0813m 0.0588m

Results of tracking on OpenLORIS-Scene [3] cafe1-1 sequence, TUM-RGBD walking_static and walking_xyz sequences. The columns depict the ground truth trajectory, estimated trajectory results, and tracking and mapping results visualized in Rviz.

Videos

TUM-RGBD Sequences: YouTube Link
OpenLORIS-Scene Sequences: YouTube Link.

Dynamic feature points in the red mask region are removed. Possibly dynamic and repeatable feature points have a shade a green/blue and rest of the static object features points are labelled in yellow.

Citation

Please cite our work if you use SALSA.

@unpublished{SALSA2020,
    author    = {Ayush Jhalani and Heethesh Vhavle and Sachit Mahajan},
    title     = {{SALSA}: Semantic Assisted Life-Long {SLAM} for Indoor Environments},
    note      = {16-833 Robot Localization and Mapping (Spring 2020) Final Project at Carnegie Mellon University},
    month     = "May",
    year      = "2020"
}

References

[1] R. Mur-Artal and J. D. Tardos, "Orb-slam2: An open-source slam" system for monocular, stereo, and rgb-d cameras,” IEEE Transactions on Robotics, vol. 33, no. 5, pp. 1255–1262, 2017.

[2] C. Yu, Z. Liu, X. Liu, F. Xie, Y. Yang, Q. Wei, and Q. Fei, "Dsslam: A semantic visual slam towards dynamic environments," in 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2018, pp. 1168–1174.

3] X. Shi, D. Li, P. Zhao, Q. Tian, Y. Tian, Q. Long, C. Zhu, J. Song, F. Qiao, L. Song, Y. Guo, Z. Wang, Y. Zhang, B. Qin, W. Yang, F. Wang, R. H. M. Chan, and Q. She, "Are we ready for service robots? the openloris-scene datasets for lifelong slam," 2019. Dataset Link

salsa-semantic-assisted-slam's People

Contributors

ayush-j9 avatar heethesh avatar sachitm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

salsa-semantic-assisted-slam's Issues

Problems with semantic labels rviz

Hello.

THanks for your code. I was able to launch salsa on mono euroc data but i've got some strange results. Here
Euroc_salsa_example

THing is that there are like no semantic labels on the pointcloud. Just white points. I'm launching eouroc bag, which i've updated with segmentation as it said in FAQ, using commands:
rosbag play V1_01_easy_segment.bag /cam0/image_raw:=/d400/color/image_raw /cam0/dynamic_scores:=/d400/annotation/dynamic_scores
roslaunch orb_slam2_ros salsa.launch (by the way. In your FAQ it is orb_slam_2_ros which is incorrect in my case).

ANy suggestions what i'm doing wrong to see semantically labelled pointcloud?

Running on TUM dataset

@heethesh Hi, thanks for the inspiring work! I would like to know the right way to run your model on the TUM dataset( e.g. walking). The following is how I'm going to try it, and please correct me if I misunderstand:

  1. catkin_make orb_slam(I use the one in your repo)
  2. segment the pictures converted from the bag (I would appreciate if the steps are offered)
  3. run updata_rosbag to apply the semantic segmentation result, since the script requiresimage-dir (I would like to know the specific way to do this step)

Thanks again for the great work, looking forward to your reply.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.