Skip to content

Commit

Permalink
Merge pull request #393 from agri-gaia/update-readme
Browse files Browse the repository at this point in the history
Update README
  • Loading branch information
jarkenau authored Jul 18, 2024
2 parents 4077d44 + 602852a commit 529f05e
Show file tree
Hide file tree
Showing 5 changed files with 96 additions and 83 deletions.
166 changes: 83 additions & 83 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,103 +1,99 @@
# SEEREP
#

![logo](logo/Seerep%20Logo.svg)
<div align="center">
<img alt="Redoc logo" src="docs/logo/Seerep_Logo.svg" width="300px" />

![unstable](https://img.shields.io/badge/stability-unstable-orange)
[![License](https://img.shields.io/badge/license-BSD_3-brightgreen)](./LICENSE)
[![catkin build workflow](https://github.com/agri-gaia/seerep/actions/workflows/main.yml/badge.svg)](https://github.com/agri-gaia/seerep/actions)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](./.pre-commit-config.yaml)
[![Docker](https://img.shields.io/badge/Docker-enabled-blue?logo=docker)](./docker)
[![PyPI](https://img.shields.io/pypi/v/seerep-grpc?label=pypi%20seerep-gRPC)](https://pypi.org/project/seerep-grpc/)
<!-- ![Architecture](https://img.shields.io/badge/Architecture-x86-blue) -->
<h3> Spatio-Temporal-Semantic Sensor Data Management <br>
for Agricultural Robotics </h3>

## Table of Contents

- [Maintainer](#maintainer)
- [General](#general)
- [Quick Start](#quick-start)
- [Documentation](#documentation)
- [Related Publications](#related-publications)

<!-- - [Related Publications](#related-publications) -->
[![catkin build workflow](https://github.com/agri-gaia/seerep/actions/workflows/main.yml/badge.svg)](https://github.com/agri-gaia/seerep/actions)
![unstable](https://img.shields.io/badge/Stability-experimental-orange)
[![License](https://img.shields.io/badge/License-BSD_3-brightgreen)](./LICENSE)

## Maintainer

[Mark Niemeyer](https://github.com/Mark-Niemeyer)<br>
[[email protected]](mailto:[email protected])
<b><a href="https://agri-gaia.github.io/seerep/mkdocs/home/index.html">
Documentation</a></b>
|
<b><a href="https://github.com/agri-gaia/seerep/tree/main/examples/python/gRPC">
Examples</a></b>
</div>

[German Research Center for Artificial Intelligence](https://www.dfki.de/en/web)<br>
[DFKI Niedersachsen](https://www.dfki.de/en/web/about-us/locations-contact/osnabrueck-oldenburg)<br>
[Plan-Based Robot Control](https://www.dfki.de/en/web/research/research-departments/plan-based-robot-control)<br>
## Table of Contents

## General

The large amount of temporally and spatially high resolution sensor data of
autonomous mobile robots that have to be collected in today’s systems require a
structured and, above all, efficient management and storage already during the
robot mission. We present SEEREP: A _Spatio-Temporal-Semantic Environment
Representation for Autonomous Mobile Robots_. SEEREP deals with spatial,
temporal and semantic linked data at once and provides an efficient query
interface for all three modalities that can be combined for high-level analyses.
It supports the most popular robotic sensor data such as images and point clouds,
as well as sensor and robot coordinate frames changing over time. Furthermore,
SEEREP provides an efficient HDF5-based storage system running on the robot
during operation compatible with ROS and the corresponding sensor message
definitions. The compressed HDF5 data backend can be transferred efficiently to
an application server with a running SEEREP query server providing gRPC interfaces
with Protobuf and Flattbuffer message types. Partially unstructured environments
that change over time, as for example agricultural environments, can be understood
based on high-level planning and reasoning systems using the SEEREP query server.

## Quick Start

To deploy the server locally the following `docker run` command or the following
`docker-compose.yml` can be used.
- [Features](#-features)
- [Motivation](#muscle-motivation)
- [Getting Started](#-getting-started)
- [Maintainer](#wrench-maintainer)
- [Related Publications](#memo-related-publications)
- [License](#-license)

## 🎯 Features

- Robotic sensor data management integrated with [ROS](https://www.ros.org/).
- Creation of sub-datasets based on sub-symbolic information (positions,
timestamps) and their corresponding symbolic (semantic) information.
- Automated generation and evaluation (e.g neural network predictions) of
datasets.
- GDPR filtering of datasets (e.g excluding public roads) based on spatial
polygon queries.

## :muscle: Motivation

A key transition in robotics involves the adoption of data-driven approaches.
As a result, increasing amounts of data are being captured by high-resolution
sensors such as cameras and LiDAR.
With ROS, the typical workflow involves recording rosbags during missions and
uploading the resulting files to network or blob storage, organized according to
use-case specific hierarchies.
Later retrieval of data with specific properties, such as particular weather
conditions or a specific area of interest, is non-trivial. The relevant data
must be downloaded to open the rosbag where access to the data is only provided
through the time modality.

In contrast, SEEREP offers an integrated solution for managing robotic sensor
data and generating sub-datasets based on spatial, temporal, or semantic
queries. Simplifying the workflow to uploading the sensor data post-mission and
offering a gRPC-based query interface for subsequent applications.

## 🚀 Getting Started

The simplest way to start SEEREP is by using `docker compose` with the
configuration provided in the `docker/server` directory:

```bash
docker run \
--volume=seerep-data:/mnt/seerep-data \
--publish=9090:9090 \
--name=seerep_server \
--tty \
ghcr.io/agri-gaia/seerep_server:latest \
--data-folder=/mnt/seerep-data
git clone https://github.com/agri-gaia/seerep.git
cd seerep/docker/server
docker compose up
```

Example docker-compose.yml:
Which should produce an output like this:

```bash
version: "3.9"
services:
seerep:
image: ghcr.io/agri-gaia/seerep_server:latest
tty: true
container_name: seerep_server
ports:
# the gRPC port
- 9090:9090
volumes:
# persist the data folder
- seerep-data:/mnt/seerep-data
environment:
- TZ=Europe/Berlin
- SEEREP_DATA_FOLDER=/mnt/seerep-data
- SEEREP_LOG_PATH=/mnt/seerep-data/log
- SEEREP_LOG_LEVEL=info
volumes:
seerep-data:
seerep_server | [2024-07-11 13:40:00.853800]<info>: Initialized logging
seerep_server | [2024-07-11 13:40:00.860308]<info>: The used logging folder is: /mnt/seerep_data/log/
seerep_server | [2024-07-11 13:40:00.860730]<info>: Current timezone: CET
seerep_server | [2024-07-11 13:40:00.861233]<info>: SEEREP version: N/A
seerep_server | [2024-07-11 13:40:00.861567]<info>: The used data folder is: /mnt/seerep_data/
seerep_server | [2024-07-11 13:40:00.865541]<info>: Addded Protocol Buffers gRPC-services
seerep_server | [2024-07-11 13:40:00.867241]<info>: Added Flatbuffers gRPC services
seerep_server | [2024-07-11 13:40:00.903333]<info>: Serving gRPC Server on "[::]:9090"
```

## Documentation
For other ways to deploy SEEREP, check the
[documentation](https://agri-gaia.github.io/seerep/mkdocs/getting-started/server_deployment/).

The general [MkDocs](https://www.mkdocs.org/) based documentation of this project
is available [here](https://agri-gaia.github.io/seerep/mkdocs/home/). There the
general architecture is described, installation instructions and basic tutorials
are given.
Refer to the [examples section](https://github.com/agri-gaia/seerep/tree/update-readme/examples/python/gRPC)
for instructions on uploading data.

The [Doxygen](https://doxygen.nl/) based code documentation can be found
[here](https://agri-gaia.github.io/seerep/doxygen).
## :wrench: Maintainer

## Related Publications
[Mark Niemeyer](https://github.com/Mark-Niemeyer) <br>
[[email protected]](mailto:[email protected])

[German Research Center for Artificial Intelligence](https://www.dfki.de/en/web)<br>
[DFKI Niedersachsen](https://www.dfki.de/en/web/about-us/locations-contact/osnabrueck-oldenburg)<br>
[Plan-Based Robot Control](https://www.dfki.de/en/web/research/research-departments/plan-based-robot-control)<br>

## :memo: Related Publications

```bibtex
@inproceedings{Niemeyer2024,
Expand Down Expand Up @@ -129,3 +125,7 @@ The [Doxygen](https://doxygen.nl/) based code documentation can be found
publisher = {IEEE}
}
```

## 📄 License

This project is open-sourced software licensed under the [BSD 3-Clause license](./LICENSE).
1 change: 1 addition & 0 deletions docker/server/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ services:
command: chown -R ${USER_ID}:${GROUP_ID} ${SEEREP_DATA_FOLDER} ${SEEREP_LOG_PATH}
seerep:
image: ghcr.io/agri-gaia/seerep_server:latest
platform: linux/x86_64
user: "${USER_ID}:${GROUP_ID}"
tty: true
container_name: seerep_server
Expand Down
File renamed without changes
File renamed without changes
12 changes: 12 additions & 0 deletions docs/mkdocs/getting-started/known_issues.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,15 @@ catkin build --mem-limit 8G

For more details, refer to the
[catkin documentation](https://catkin-tools.readthedocs.io/en/latest/verbs/catkin_build.html#configuring-memory-use).

## [MacOS] False Positives by Check-Executables-Have-Shebangs

Due to a bug in Docker for MacOS non-executables get falsely reported as
executables see
[pre-commit/pre-commit-hooks#528](https://github.com/pre-commit/pre-commit-hooks/issues/528)
and the corresponding upstream bug
[docker/for-mac#5029](https://github.com/docker/for-mac/issues/5029).
The current workaround is to change the file system implementation to the
noticably slower `osxfs`in the Docker Desktop settings (both `VirtioFS` and
`gRPC FUSE` have the bug in version `4.31.0`). If there are no other pre-commit
violations, commit without checks using `git commmit --no-verify -m "message"`.

0 comments on commit 529f05e

Please sign in to comment.