/smglib

A framework for hybrid mapping and drone control in populated indoor scenes

OtherNOASSERTION

smglib

teaser

This is the open-source Python framework and Oxford Hybrid Mapping dataset associated with our drone research in the Cyber-Physical Systems group at the University of Oxford.

Oxford Hybrid Mapping Dataset

The dataset can be downloaded from here. It contains a single directory called ohm that has a subdirectory for each sequence in the dataset. By default, our framework expects it to be extracted into C:/datasets or D:/datasets, but if you want to put it somewhere else, just modify determine_dataset_root_dir.sh in smg-rescueflight/smg/rescueflight/datasets as desired. (We'll introduce an environment variable for it ultimately.)

Installation

Note #1: Installing the framework currently takes a bit more effort than we would prefer (sorry!). We plan to address this in future.

Note #2: The installation instructions are currently for Windows, although there's no inherent reason why the framework can't work on Linux or Mac OS X. Again, we plan to address this in future.

  1. Install Git for Windows. (You'll need it to run some of the .sh scripts.)

  2. Install Anaconda.

  3. Install Visual Studio. (We've tried our framework with both VS2017 and VS2019. It should work with other versions as well, but a few tweaks may be required.)

  4. Choose a root directory, hereafter (and in the submodule-level README files) referred to as <root>.

  5. Clone the smglib repository into <root>, e.g.

    git clone --recursive git@github.com:sgolodetz/smglib.git <root>
    
  6. Create a Conda environment for the framework, e.g. conda create -n smglib python==3.7.

  7. Follow the installation instructions specified in the submodule-level README files. Since some of the submodules depend on other submodules, the order in which the submodules are installed matters. One suitable installation order is as follows.

    Group 1:

    Group 2:

    Group 3:

    Group 4:

    • smg-comms -> smg-rigging, smg-skeletons, smg-utility
    • smg-mapping -> smg-joysticks, smg-open3d, smg-pyoctomap, smg-skeletons
    • smg-navigation -> smg-pyoctomap
    • smx-smplx -> smg-skeletons
    • smg-vicon -> smg-skeletons [optional, only needed if using a Vicon system or data saved from one]

    Group 5:

    Group 6:

    Group 7:

Usage

See here.

Publications

If you build on this framework for your research, please cite the following paper:

@inproceedings{Golodetz2022TR,
author = {Stuart Golodetz and Madhu Vankadari* and Aluna Everitt* and Sangyun Shin* and Andrew Markham and Niki Trigoni},
title = {{Real-Time Hybrid Mapping of Populated Indoor Scenes using a Low-Cost Monocular UAV}},
booktitle = {IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
month = {October},
year = {2022}
}

Acknowledgements

This work was supported by Amazon Web Services via the Oxford-Singapore Human-Machine Collaboration Programme, and by UKRI as part of the ACE-OPS grant. We would also like to thank Graham Taylor for the use of the Wytham Flight Lab, Philip Torr for the use of an Asus ZenFone AR, and Tommaso Cavallari for implementing TangoCapture.