Coder Social home page Coder Social logo

volumetric_mapping's Introduction

volumetric_mapping

A repository for 3D volumetric (occupancy) maps, providing a generic interface for disparity map and pointcloud insertion, and support for custom sensor error models.

Packages

volumetric_map_base - base class/package that all volumetric maps should inherit from, contains methods to handle ROS disparity maps and pointclouds.

volumetric_msgs - collection of messages for interacting with various maps.

octomap_world - an octomap-based volumetric representation, both with a library and a stand-alone ROS node.

Dependencies

OpenCV is required for this package to work, installation of this package was tested with OpenCV version 3.4.14. See instructions on how to install OpenCV on Ubuntu system

In addition to ros-indigo-desktop-full, please install:

sudo apt-get install ros-indigo-octomap-mapping

And the following packages, which can be done all at once with the script below:
minkindr
minkindr_ros
eigen_catkin
eigen_checks
glog_catkin
gflags_catkin

cd ~/catkin_ws/src/
wstool init
wstool set catkin_simple       --git https://github.com/catkin/catkin_simple.git
wstool set eigen_catkin        --git https://github.com/ethz-asl/eigen_catkin.git
wstool set eigen_checks        --git https://github.com/ethz-asl/eigen_checks.git
wstool set gflags_catkin       --git https://github.com/ethz-asl/gflags_catkin.git
wstool set glog_catkin         --git https://github.com/ethz-asl/glog_catkin.git
wstool set minkindr            --git https://github.com/ethz-asl/minkindr.git
wstool set minkindr_ros        --git https://github.com/ethz-asl/minkindr_ros.git
wstool set volumetric_mapping  --git https://github.com/ethz-asl/volumetric_mapping.git
wstool update

On Mac OS X, see the mav_tools Wiki instructions.

Installation

Assuming SegMap and its workspace is already installed, most of the required dependencies should already be in the ~/segmap_ws/src folder. So, the package can be simply git cloned into the ~/segmap_ws/src folder

cd ~/segmap_ws/src/
git clone https://github.com/leonardlohky/volumetric_mapping

After that, build the package using catkin build

cd ~/segmap_ws
catkin build volumetric_mapping

Libraries

OctomapWorld - general library for handling insertion of pointclouds, can be run outside of a ROS node, and takes parameters as a struct.

OctomapManager - inherits from OctomapWorld, essentially a ROS wrapper for it. Reads parameters in from the ROS parameter server.

Nodes

octomap_manager

Listens to disparity and pointcloud messages and adds them to an octomap.

Parameters

  • tf_frame (string, default: "/world") - tf frame name to use for the world.
  • resolution (double, default: 0.15) - resolution each grid cell in meters.
  • Q (vector of doubles (representing 4x4 matrix, row-major)) - Q projection matrix for disparity projection, in case camera info topics are not available.
  • map_publish_frequency (double, default: 0.0) - Frequency at which the Octomap is published for visualization purposes. If set to < 0.0, the Octomap is not regularly published (use service call instead).
  • octomap_file (string, default: "") - Loads an octomap from this path on startup. Use load_map service below to load a map from file after startup.

For other parameters, see octomap_world.h.

Subscribed Topics

Published Topics

Services

Running

Run an octomap manager, and load a map from disk, then publish it in the map tf frame:

rosrun octomap_world octomap_manager _tf_frame:=map
rosservice call /octomap_manager/load_map /home/helen/data/my_awesome_octomap.bt
rosservice call /octomap_manager/publish_all

volumetric_mapping's People

Contributors

helenol avatar sebastianind avatar birchera avatar gawela avatar tcies avatar zacharytaylor avatar rdube avatar omaris avatar leonardlohky avatar lorenwel avatar ffurrer avatar burrimi avatar fmina 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.