Skip to content

Commit aed56cf

Browse files
committed
Improved readme
1 parent 3901abd commit aed56cf

File tree

2 files changed

+163
-16
lines changed

2 files changed

+163
-16
lines changed

Porolog showcasing.json

+1-1
Large diffs are not rendered by default.

README.md

+162-15
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,38 @@
1-
# Noos-Open
2-
Warehouse automation with modular (or other) robots
1+
# PoRoLog ROSE-AP
32

4-
> Blah blah here, regarding the general info of Noos-Open
3+
[![License: Apache 2.0](https://img.shields.io/github/license/Factobotics/FlexHex-Rose-AP)](https://opensource.org/licenses/Apache-2.0)
4+
<br/>
55

6-
# Deployment of Noos-Open cloud infrastructure
6+
ROSE-AP of the PoRoLog project, offers
7+
- Easy deployment of the NOOS Open Cloud infrastructure via `docker-compose`, allowing for robot logistics applications
8+
- Bootstrapping ROS2 software that can be installed in a ROS2-enabled Robot to automatically connect it to the NOOS Open infrastructure
9+
- [Codin](https://codin.issel.ee.auth.gr) dashboards, via which a Warehouse that uses the NOOS Open infrastructure can inspect its real-time status.
10+
11+
This project is part of [DIH^2](http://www.dih-squared.eu/).
12+
13+
## Contents
14+
15+
- [Background](#background)
16+
- [Installation guide (NOOS-Open)](#noos-open-installation)
17+
- [Deployment of NOOS-Open](#deployment-of-noos-open-cloud-infrastructure)
18+
- [Prerequisites](#prerequisites)
19+
- [Setup](#setup)
20+
- [Execution](#execution)
21+
- [The Codin dashboard](#codin-dashboard)
22+
- [Future work](#future-work)
23+
- [Robot(s) setup](#robots-setup)
24+
- [Bootstrapping software](#bootstrapping-software)
25+
- [Custom robot integration](#custom-robot-integration)
26+
- [Step by step tutorial](#step-by-step-tutorial)
27+
- [Additional utilities](#fiware--mqtt-broker-accompanying-files)
28+
29+
# Background
30+
31+
---
32+
33+
# NOOS-Open Installation
34+
35+
## Deployment of Noos-Open cloud infrastructure
736

837
Noos-Open is supported by a cloud infrastructure, which relies on a [Fiware Orion broker](https://fiware-orion.readthedocs.io/en/master/) and a [Mosquitto MQTT broker](https://mosquitto.org/) instance. In the following image, you may see the overall architecture.
938

@@ -55,28 +84,146 @@ Note: The script must have execution privilages. Run the following command as su
5584
sudo chmod +x launch.sh
5685
```
5786

58-
## To be added
87+
## Codin dashboard
88+
89+
Codin is not open-source but it is (and will be) free for use. The dashboards can be exported in JSON formatted files and imported by another user, making the solution easily transferable.
90+
91+
The Codin dashboard created for supporting Noos-Open can be found in [this link](https://github.com/ortelio/Noos-Open/blob/main/Porolog%20showcasing.json). You can import it in [Codin](https://codin.issel.ee.auth.gr/), declare your deployment's credentials and inspect your robots!
92+
93+
## Future work
5994
- Security on orion context broker via keyrock
6095
- Mosquitto certificates
6196

6297
[docker_tutorial]: https://docs.docker.com/engine/install/ubuntu/
6398
[docker_compose_tutorial]: < https://docs.docker.com/compose/install/>
6499

65-
# Fiware & MQTT broker accompanying files
100+
---
101+
102+
# Robot(s) setup
103+
104+
In order to integrate a robotic platform to the NOOS-Open infrastructure, the robot must be ROS2-enabled, at least supporting the ROS2 Navigation stack. Furthermore, its OS must be unix-based, in order to be able to execute Python v3, as well as the [Commlib-py](https://pypi.org/project/commlib-py/) library, which acts as the communication channel between the Robot and NOOS-Open.
105+
106+
## Bootstrapping software
107+
108+
For easier integration, NOOS-Open provides a bootstrapping ROS2 package that can be easily modified for any ROS2-supporting robot and allow for quick and easy integration with the NOOS-Open infrastructure. This package is located [here]().
109+
110+
The instructions to execute it follow:
111+
> VASILIS HERE!
112+
113+
## Custom robot integration
114+
115+
In the case where anyone wants to implement their own controllers (or some of them), they can write their own Python ROS2 package and create the following Commlib publishers/subscribers with the following data models:
116+
117+
#### PUBLISHER `/<ORION_API_KEY>/<ROBOT_ID>/attrs/battery`
118+
```yaml
119+
{
120+
percentage: <Float>
121+
}
122+
```
123+
124+
#### PUBLISHER `/<ORION_API_KEY>/<ROBOT_ID>/attrs/image`
125+
```yaml
126+
{
127+
val: <String> # The base64 encoded image
128+
}
129+
```
130+
131+
#### PUBLISHER `/<ORION_API_KEY>/<ROBOT_ID>/attrs/logs`
132+
```yaml
133+
{
134+
val: <String>
135+
}
136+
```
137+
138+
#### PUBLISHER `/<ORION_API_KEY>/<ROBOT_ID>/attrs/state`
139+
```yaml
140+
{
141+
state: <String>
142+
}
143+
```
144+
145+
#### PUBLISHER `/<ORION_API_KEY>/<ROBOT_ID>/attrs/status`
146+
```yaml
147+
{
148+
status: <String>
149+
}
150+
```
151+
152+
#### SUBSCRIBER `/<ORION_API_KEY>/<ROBOT_ID>/attrs/velocities`
153+
```yaml
154+
{
155+
command: <String> # One of FORWARD, BACKWARD, LEFT, RIGHT, STOP, LIFT, RELEASE
156+
}
157+
```
158+
159+
#### PUBLISHER `/<ORION_API_KEY>/<ROBOT_ID>/attrs/status`
160+
```yaml
161+
{
162+
linear: <Float>,
163+
angular: <Float>
164+
}
165+
```
166+
167+
#### PUBLISHER `/<ORION_API_KEY>/<ROBOT_ID>/attrs/status`
168+
```yaml
169+
{
170+
linear: <Float>,
171+
angular: <Float>
172+
}
173+
```
174+
175+
#### PUBLISHER `/<ORION_API_KEY>/<ROBOT_ID>/attrs/pose`
176+
```yaml
177+
{
178+
x: <Float>,
179+
y: <Float>,
180+
theta: <Float>
181+
}
182+
```
183+
184+
#### PUBLISHER `/<ORION_API_KEY>/<ROBOT_ID>/attrs/path`
185+
```yaml
186+
{
187+
path: [
188+
{
189+
x: <Float>,
190+
y: <Float>
191+
},
192+
...
193+
]
194+
}
195+
```
196+
197+
#### SUBSCRIBER `/<ORION_API_KEY>/<ROBOT_ID>/attrs/target`
198+
```yaml
199+
{
200+
x: <Float>,
201+
y: <Float>
202+
}
203+
```
204+
205+
#### SUBSCRIBER `/<ORION_API_KEY>/<ROBOT_ID>/attrs/target/entity`
206+
```yaml
207+
{
208+
type: <String>, # One of Parcel, Pallet, Slot
209+
id: <String>
210+
}
211+
```
212+
213+
---
214+
215+
# Step by step tutorial
216+
217+
The step by step tutorial will be uploaded to YouTube and the link will be posted here!
218+
219+
---
220+
221+
# Utilities - Fiware & MQTT broker accompanying files
66222

67223
- [Commlib-py](https://pypi.org/project/commlib-py/): Robot communication controller, i.e. the software to dispatch information to Fiware broker via MQTT, using Python. This component is commlib-py and is currently open-source
68224
- [Fiware entities JSON](https://github.com/ortelio/Noos-Open/blob/main/fiware-entities.tar.xz): Here you can find a collection of JSON-formatted files that contain the Fiware NGSI types, suitable for logistics applications
69225
- [Hoppscotch Fiware-related REST calls](https://github.com/ortelio/Noos-Open/blob/main/hoppscotch_calls.zip): REST collections for invoking and updating all Fiware entities. Hoppscotch is the open-source alternative of Postman, alleviating its restrictions regarding membership
70226
- [Script](https://github.com/ortelio/Noos-Open/blob/main/fiware_bootstrapping.py): Python script using [REST-ee-Fi](https://github.com/robotics-4-all/fiware-ngsi-api), via which an initial insertion of mock data to the respective Fiware entities is performed, so as for the Hoppscotch calls to operate
71227
- [Script](https://github.com/ortelio/Noos-Open/blob/main/fiware_parcel_2d_transformation.py): Python script that takes as input a Parcel’s ID and retrieves its x,y coordinates in the absolute coordinate frame (warehouse frame)
72228

73-
# Codin dashboard
74-
75-
Codin is not open-source but it is (and will be) free for use. The dashboards can be exported in JSON formatted files and imported by another user, making the solution easily transferable.
76-
77-
The Codin dashboard created for supporting Noos-Open can be found in [this link](https://github.com/ortelio/Noos-Open/blob/main/Porolog%20showcasing.json). You can import it in [Codin](https://codin.issel.ee.auth.gr/), declare your deployment's credentials and inspect your robots!
78-
79-
# Robotic components
80229

81-
- [Robot controller (ROS2 node)](): Vassilis here
82-
- Other algorithms?

0 commit comments

Comments
 (0)