-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #9 from openhumanoids/mf-seperate-maps-from-lcm
seperate maps from lcm
- Loading branch information
Showing
197 changed files
with
464 additions
and
2,848 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,35 @@ | ||
cmake_minimum_required(VERSION 2.6.0) | ||
|
||
# pull in the pods macros. See cmake/pods.cmake for documentation | ||
set(POD_NAME maps-server) | ||
set(POD_NAME maps) | ||
find_package(PkgConfig) | ||
pkg_check_modules(LCMTYPES_BOT2CORE lcmtypes_bot2-core) | ||
include_directories(${LCMTYPES_BOT2CORE_INCLUDE_DIRS}) | ||
include(cmake/pods.cmake) | ||
|
||
include(cmake/lcmtypes.cmake) | ||
lcmtypes_build() | ||
|
||
# main maps library (no application) | ||
add_subdirectory(src/libmaps) | ||
add_subdirectory(src/maps) | ||
|
||
# maps library specific to lcm | ||
add_subdirectory(src/maps-lcm) | ||
|
||
# library: minimal version of the above | ||
add_subdirectory(src/libmaps-mini) | ||
add_subdirectory(src/maps-mini) | ||
|
||
# library: used for filling in cell in height maps | ||
add_subdirectory(src/terrain-map) | ||
|
||
# applications using libmaps | ||
# LCM applications using maps and maps_lcm | ||
add_subdirectory(src/server) | ||
add_subdirectory(src/apps) | ||
|
||
# misc utils | ||
add_subdirectory(src/utils) | ||
|
||
add_subdirectory(src/plane-seg) | ||
|
||
# Maps GTK renderer works as of Feb 2017 | ||
#add_subdirectory(src/renderers) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,49 @@ | ||
# Default pod makefile distributed with pods version: 12.09.21 | ||
|
||
default_target: all | ||
|
||
# get a list of subdirs to build by reading tobuild.txt | ||
SUBDIRS:=$(shell grep -v "^\#" tobuild.txt) | ||
# Default to a less-verbose build. If you want all the gory compiler output, | ||
# run "make VERBOSE=1" | ||
$(VERBOSE).SILENT: | ||
|
||
# Figure out where to build the software. | ||
# Use BUILD_PREFIX if it was passed in. | ||
# If not, search up to three parent directories for a 'build' directory. | ||
# If not, search up to four parent directories for a 'build' directory. | ||
# Otherwise, use ./build. | ||
ifeq "$(BUILD_PREFIX)" "" | ||
BUILD_PREFIX=$(shell for pfx in ./ .. ../.. ../../..; do d=`pwd`/$$pfx/build; \ | ||
BUILD_PREFIX:=$(shell for pfx in ./ .. ../.. ../../.. ../../../..; do d=`pwd`/$$pfx/build;\ | ||
if [ -d $$d ]; then echo $$d; exit 0; fi; done; echo `pwd`/build) | ||
endif | ||
# create the build directory if needed, and normalize its path name | ||
BUILD_PREFIX:=$(shell mkdir -p $(BUILD_PREFIX) && cd $(BUILD_PREFIX) && echo `pwd`) | ||
|
||
# build quietly by default. For a verbose build, run "make VERBOSE=1" | ||
$(VERBOSE).SILENT: | ||
# Default to a release build. If you want to enable debugging flags, run | ||
# "make BUILD_TYPE=Debug" | ||
ifeq "$(BUILD_TYPE)" "" | ||
BUILD_TYPE="Release" | ||
endif | ||
|
||
all: pod-build/Makefile | ||
$(MAKE) -C pod-build all install | ||
|
||
all: | ||
@[ -d $(BUILD_PREFIX) ] || mkdir -p $(BUILD_PREFIX) || exit 1 | ||
@for subdir in $(SUBDIRS); do \ | ||
echo "\n-------------------------------------------"; \ | ||
echo "-- $$subdir"; \ | ||
echo "-------------------------------------------"; \ | ||
$(MAKE) -C $$subdir all || exit 2; \ | ||
done | ||
@# Place additional commands here if you have any | ||
pod-build/Makefile: | ||
$(MAKE) configure | ||
|
||
.PHONY: configure | ||
configure: | ||
@echo "\nBUILD_PREFIX: $(BUILD_PREFIX)\n\n" | ||
|
||
# create the temporary build directory if needed | ||
@mkdir -p pod-build | ||
|
||
# run CMake to generate and configure the build scripts | ||
@cd pod-build && cmake -DCMAKE_INSTALL_PREFIX=$(BUILD_PREFIX) \ | ||
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE) .. | ||
|
||
clean: | ||
@for subdir in $(SUBDIRS); do \ | ||
echo "\n-------------------------------------------"; \ | ||
echo "-- $$subdir"; \ | ||
echo "-------------------------------------------"; \ | ||
$(MAKE) -C $$subdir clean; \ | ||
done | ||
@# Place additional commands here if you have any | ||
-if [ -e pod-build/install_manifest.txt ]; then rm -f `cat pod-build/install_manifest.txt`; fi | ||
-if [ -d pod-build ]; then $(MAKE) -C pod-build clean; rm -rf pod-build; fi | ||
|
||
# other (custom) targets are passed through to the cmake-generated Makefile | ||
%:: | ||
$(MAKE) -C pod-build $@ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
*********** | ||
Maps Server | ||
*********** | ||
|
||
The maps server is a request-respond application for collating local LIDAR (or stereo) data into a point cloud and the serving outputs from that point cloud such as heightmaps, depthmaps or octrees. | ||
|
||
Care is take to make the application: | ||
|
||
* Minimal: except for the standard libararies mentioned below | ||
* Data-efficient: an support transmission of local maps at 5KB/sec - sufficient for a very very weak wireless link | ||
* Stateless: all content output by the server is self enclosed | ||
|
||
The software was developed for the 2015 MIT DARPA Robotics Challenge team. | ||
|
||
**Details about message flow** | ||
|
||
TODO: put flow chart here | ||
|
||
1. DATA_REQUEST: tiny message requesting a high level type of map (a few bits in size). Made by UI e.g. Director. (A) | ||
2. MAP_REQUEST: specific details of map of interest (a few bytes). Made by the data-request-server. (B) | ||
3. MAP_DEPTH: actual height/depth map data stream. Published by maps-server (C) | ||
|
||
MAP_OCTREE: as for MAP_DEPTH above except an Octree, messages 10x larger | ||
|
||
**(A) enum types supported by data request** | ||
|
||
- short range, detailed height map (for footstep planning) | ||
- long range, coarse height map (for navigation planning) | ||
- short range depth map (for manipulation) | ||
- long range depth map (for situational awareness) | ||
- octomap (for manipulation) | ||
- stereo depth map | ||
|
||
**(B) information in the maap request** | ||
|
||
- which data type to use (depth image, point cloud, octree | ||
- time window to accumulate | ||
- virtual camera to use to project data | ||
- quantization level, resolution | ||
- height estimation mode e.g. median, mean, nearest | ||
|
||
**(C) details about the actual maps produced** | ||
|
||
The maps is entirely self contained e.g. it doesn't use bot frames or tf, or joint angles. It contains: | ||
|
||
- id to identify it | ||
- resolution, compression (e.g. Zlib usually) | ||
- projective transformation matrix for data | ||
- data blob | ||
|
||
Example data rate for short range height map: 5KB at 1Hz | ||
|
||
|
||
**Dependencies** | ||
|
||
* Required: PCL, Octomap | ||
* Optional: LCM, libbot | ||
|
||
**Pods** | ||
|
||
This software is constructed according to the Pods software policies and | ||
templates. The policies and templates can be found at: | ||
|
||
* http://sourceforge.net/projects/pods | ||
|
||
|
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.