Giter Club home page Giter Club logo

clutter-dataset-toolbox's Introduction

Clutter Dataset Toolbox

This is a clutter dataset toolbox.

This toolbox is part of FP-Loc 2.0.

This toolbox integrates a pipeline that transforms a floor plan into an indoor lidar point cloud dataset with clutter, including:

  • Converting from svg format to 3D model in Gazebo.
  • Generating trajectory according to landmarks in the model.
  • Generating clutters and detecting collision.
  • Recording lidar and IMU messages in the 3D model.

Build and Run

This toolbox uses ROS as the framework, and uses gazebo as the simulation tool. In addition, we use pcg_gazebo as a tool for using gazebo with python. In order to make it easy for you to use different tools in the toolbox, we will list the libraries used by different tools separately.

For all the tools, we tested them on Ubuntu 18.04 and ROS Melodic, using Gazebo version 11.0.0.

Generating Gazebo model

The location of this tool is utils/building_gen/gen_building.py. Please download pcg_gazebo in advance, and rewrite the path option in the file. This tool converts the svg format floor plan generated by FloorplanTransformation into a model in Gazebo.

FloorplanTransformation into a model in Gazebo. FloorplanTransformation is a method of recovering semantic information from floor plan images using deep neural networks.

For your convenience, we also provide a file that generates a Gazebo world model, located at utils/building_gen/gen_world.py. If you use this tool, please run utils/building_gen/gen_building.py firstly.

Generating Clutters and Detecting Collision

The location of this tool is utils/obj_gen/. Please download pcg_gazebo and matplotlib in advance, and rewrite the path and landmarks options in the file.

We used some furniture models provided by Gazebo and some self-made models, located in models/, please place them under the ~/.gazebo/ folder.

  • ceiling.py generates clutter on the ceiling, such as cylindrical and cubic clutter, to simulate furniture such as lamps.
  • ground.py generates clutter on the ground. The clutter on the ground satisfies two constraints, perpendicular to the ground and not overlapping with each other. Here we use the official gazebo models of tables, chairs and other furniture as clutter.
  • wall.py generates clutter on the wall. Panels were made for features such as Loam, simulating larger clutter such as wardrobes.
  • pycubicspline.py. A function that generates trajectories, called by the above three tools, to detect whether the clutters collide with the trajectories.

Generating trajectory and Recording messages

This tool generates trajectory based on the given landmarks and records lidar and IMU messages along the trajectory in the given Gazebo model.

The initial position of the sensor can be modified in launch/demo.launch, the landmarks can be modified in src/car_steer.cpp.

Enter your catkin workspace and execute following command:

 # build
 catkin_make
 source ~/catkin_ws/devel/setup.bash
 # run
 roslaunch virtual_dataset demo.launch

Ackonwledgement

Our algorithm for generating trajectories borrows a lot of code from CubicSpline.

clutter-dataset-toolbox's People

Contributors

gregfujie avatar erwin-wu-x avatar

Watchers

 avatar

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.