Git Product home page Git Product logo

adaptslam's Introduction

This repository contains the code for the IEEE INFOCOM 2023 paper: "AdaptSLAM: Edge-Assisted Adaptive SLAM with Resource Constraints via Uncertainty Minimization" by Ying Chen, Hazer Inaltekin, and Maria Gorlatova.

The AdaptSLAM implementation is based on ORB-SLAM3 and Edge-SLAM.

Outline

I. Prerequisites

Setup the ORB-SLAM3 prerequisites.

II. Our Testing Setup

  • Dell XPS 8930 desktop with Intel (R) Core (TM) i7-9700K [email protected] and NVIDIA GTX 1080 GPU, and a Lenovo Legion 5 laptop (with an AMD Ryzen 7 4800H CPU and an NVIDIA GTX 1660 Ti GPU) using a virtual machine with 4-core CPUs and 8GB of RAM.
  • Ubuntu 18.04LTS.
  • OpenCV 3.4.2.
  • Eigen3 3.2.10.

III. Running AdaptSLAM in Simulated Settings

1. Building AdaptSLAM in Simulated Settings

After cloning the repository, build the Thirdparty libraries and AdaptSLAM.

cd AdaptSLAM/Sim AdaptSLAM
chmod +x build.sh
./build.sh
2. Running Examples

a. Download the EuRoC V102 sequence.

b. Execute the following script:

./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml V102FileDirectory ./Examples/Monocular/EuRoC_TimeStamps/V102.txt dataset-V102_mono

Change V102FileDirectory to the directory where the dataset has been uncompressed.

IV. Running AdaptSLAM on Client and Server Devices

1. Building AdaptSLAM on Client and Server Devices

a. In src/LocalMapping.cc, modify #Input your IP address# to your IP address. You can also modify #Input your port number# to the port number you selected. However, the default port numbers should also work.

b. On both client and server devices, build the Thirdparty libraries and AdaptSLAM.

cd AdaptSLAM/Edge-assisted AdaptSLAM
chmod +x build.sh
./build.sh
2. Running Examples

For example, for EuRoC V102 sequence, please execute the following script on both server and client devices

./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml V102FileDirectory ./Examples/Monocular/EuRoC_TimeStamps/V102.txt dataset-V102_mono

Then on the client device, please enter client when the message in the terminal window ask to Enter the run type (client or server). On the server device, please enter server.

After this, two TCP connections between the client and server devices will be established.

Associated Demo

The associated demo builds a game engine-based emulator, which lets participants navigate virtual spacecraft environments while create their own moving trajectories for evaluating AdaptSLAM and the baseline. The demo was presented at IEEE INFOCOM in Hoboken, NJ.

Citation

Please cite the following paper in your publications if this code helps your research.

 @inproceedings{Chen23AdaptSLAM,
  title={{AdaptSLAM}: Edge-Assisted Adaptive SLAM with Resource Constraints via Uncertainty Minimization},
  author={Chen, Ying and Inaltekin, Hazer and Gorlatova, Maria},
  booktitle={Proc. IEEE INFOCOM},
  year={2023}
}

Acknowledgments

The contributors of the code are Ying Chen and Maria Gorlatova. For questions on this repository or the related paper, please contact Ying Chen at yc383 [AT] duke [DOT] edu.

This work was supported in part by NSF grants CSR1903136, CNS-1908051, and CNS-2112562, NSF CAREER Award IIS-2046072, by an IBM Faculty Award, and by the Australian Research Council under Grant DP200101627.

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.