Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository

Repository Summary

Checkout URI https://github.com/mitre/mitre_fast_layered_map.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2021-03-08
Dev Status MAINTAINED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
mitre_fast_layered_map 0.1.4

README

MITRE Layered Map

This package contains a high-speed lidar and gridmap based mapping solution for unstructured environments and an editable “static map” for use in recording obstacles over large distances. The package is intended for use in autonomous vehicle operations since it can perform on a large scale (several hundred meters), at moderate to high resolution (0.3-1m cell width), and at a high frequency (>10hz).

The sensor mapping solution takes a point cloud segmented into ground and nonground points as input. This is currently done externally by the LidarPerception Library. Internally, the mapping solution uses the GridMap package for data storage and configurable Filter Chains to process the data. Finally, the map outputs a costmap and the gridmap.

The editable “static” map can take a static map from the map server, a gridmap, or a marker message as input. It will use each of these to record obstacles on a large scale.

Quick Start

Below is a guide to get up and running with this package quickly.

Dependencies

We assume that you already have installed ros. This package is specifically for ros kinetic. It may work with others, but has not been thorougly tested. Below are several packages that you may not have installed by default:

sudo apt-get install libeigen3-dev

sudo apt-get install ros-kinetic-grid-map

# For Ubuntu only, installation for other distros may vary
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-all

sudo apt-get install ros-kinetic-tf2-sensor-msgs

Building

You should now have all of the packages required to build. You can build by running:

catkin build mitre_fast_layered_map -DCMAKE_BUILD_TYPE=Release

You do not need to always build in release mode, but GridMap and Eigen suggest it for matrix optimization. We have generally seen >100% increase in speed in building release vs standard.

Running

The easiest way to run the package will be to use the local_map.launch file located in the launch directory. You should modify the configuration to fit the topics and tf-frames that you are currently using.

Our current approach using the GPF segmenter launched from the LidarPerception Library.

# In first terminal window
roslaunch lidar_perception lidar_segmenter.launch

# Second terminal window
roslaunch mitre_fast_layered_map run_maps.launch

The first command will start up the lidar segmentation node, which will output the topics ingested by the mapping node. The second roslaunch will start both our horizon and local mapping systems, which are detailed below.

ROS API

This package currently contains 2 different mapping solutions. One, which is shown in the quickstart section is a sensor map that relies on lidar data to populate cells as obstacles. Secondly, is an editible static map that is populated from the map server instance, gridmap, or marker messages.

You can see full configuration setups for each by viewing the files: /launch/local_map.launch, /config/local_map.yaml, and config/filter_chain.yaml for the sensor map, and the files: /launch/static_map.launch and /config/static_map.yaml for static mapping.

Published Topics

  • /map_name/costmap(nav_msgs/OccupancyGrid) - Contains cost map calculated from various grid map layers
  • /map_name/gridmap(grid_map_msgs/GridMap) - Contains the full grid map. This may be large depending on the the configurations options for the map.

Both the sensor map and static map output the same topics where map_name is a configurable map name and is Map by default.

Subscribed Topics

Sensor Map

  • ground_points(sensor_msgs/PointCloud2) - Lidar points hitting the ground plane.
  • nonground_points(sensor_msgs/PointCloud2) - Lidar points that are nonground, generally assumed to be obstacles.
  • odometry(nav_msgs/Odometry) - The odometry for the vehicle. The map will follow the vehicle so that the vehicle is always in the center.
  • static_map(nav_msgs/OccupancyGrid) - Optional. A geo-referenced map that holds apriori obstacle data for reference with the map.
  • marker(visualization_msgs/Marker) - Optional. Markers can be passed to the map to create obstacles.

Static Map

File truncated at 100 lines see the full file

Repo symbol

mitre_fast_layered_map repository

Repo symbol

mitre_fast_layered_map repository