Commit 627b89ae by Sebastian Stern

edited readme

parent 9c4bb44e
......@@ -13,15 +13,32 @@ Dieses Dokument die beschreibt die Nutzung des Plugingenerator Scriptes zur Gene
Alternativ kann auch die beiliegende virtualenv genutzt werden.
### ROS2
* Ardent Apalone
* Bouncy Bolson
* Both build systems `ament` and `colcon` can be used by editing your settings.
* Installations Anleitungen fúr alle Betriebssysteme sind hier <https://github.com/ros2/ros2/wiki/Installation> zu finden.
* Aktuell werden die Buildsyteme `ament` und `colcon` unterstützt die Auswahl erfolgt im Tool úber die `Settings`.
<table>
<tr>
<th>ROS2 Version </th>
<th>Buildsystem</th>
</tr>
<tr>
<td>Ardent Apalone</td>
<td>ament</td>
</tr>
<tr>
<td>Bouncy Bolson</td>
<td>colcon</td>
</tr>
</table>
Es ist darauf zu achten das fúr die jewailige ROS2-Version passende Buildsystem zu verwenden,
da sonst die ROS2 Installation beschädigt werden kann.
### ADTF
* Version >= 3.3.1
### Compliler
* MSVC, Visual Studio 2015 or 2017 depending on ros2 distribution on Windows
* MSVC, Visual Studio 2015 oder 2017 Abhängig von ROS2 Release
* GCC 5.4 on Ubuntu 1604
## Übersicht
......@@ -31,28 +48,55 @@ Alternativ kann auch die beiliegende virtualenv genutzt werden.
## Erste Schritte
### System Service
Der Service kann von Source gebaut werden. Die Daten dazu liegen im Ordner `plugins/adtf_system_service` bei.
Diesen Ordner einfach in `path_to_ros\ros2_ws\src\ros2` kopieren und in der `CMakeLists.txt` den Installationspfad anpassen.
Danach in einer VisualStudio Command-Line(Windows)
```
cd path_to_ros2
install\local_setup.bat
```
oder im Terminal(Unix) folgende Befehle ausführen
```
cd path_to_ros2
. /install/local_setup.bash
```
Dadurch wird die ROS2 Installation in der geöffneten Command-Line bereitgestellt.
Im Anschluss daran kann der Service durch folgende Befehle installiert werden.
#####ament
```
ament build --only-package adtf_ros2_system_service
```
#####colcon
```
colcon build --packages-select adtf_ros2_system_service
```
Nach dem Build und Install Vorgang liegen die Plugindateien im angegebenen Pfad.
### Umgebung in ADTF
#### Windows
Damit ROS2 in ADTF genutzt werden kann müssen Umgebungsvariablen ergänzt werden.
Dazu im Configuration-Editor das gewünschte System auswählen und im Bereich System-Editor >> Environment-Variables folgende Einträge ergänzen.
* PYTHONPATH = path_to_ros\install\Lib\site-packages
* Path= path_to_ros\install\Scripts;path_to_ros\install\bin;$(Path)
TODO: how to set up Ubuntu environment
Danach muss ein bereitgestellter Service hinzugefügt werden.
Die Plugindaten liegen im Unterverzeichnis `\plugins`.
Den Service im Configuration-Editor unter System-Editor >> Services einfügen mit dem Level System.
Der Service kann auch von Source gebaut werden. Die Daten dazu liegen im Ordner `plugins/adtf_system_service` bei.
Diesen Ordner einfach in `path_to_ros\ros2_ws\src\ros2` kopieren und danach in einer VisualStudio CommandLine folgende Befehle ausführen:
```
cd path_to_ros
install\local_setup.bat
ament build --only-package adtf_system_service
#### Ubuntu 1604
Hier ist die Nutzung in ADTF zur Zeit nur möglich wenn ADTF-Komponenten zB. der `adtf_configuration_editor` aus einer ROS2 gesourcten Shell gestartet witrd.
```
. /path_to_ros2/install/local_setup.bash
. /path_to_adtf/bin/adtf_configuration_editor
```
Dies kann bei Bedarf auch über ein Shell-Script automatisiert werden.
Nach dem Build&Install Vorgang liegen die Plugindateien im angegebenen Pfad (Bei Bedarf in der `CMakeLists.txt` anpassen)
## Funktionen
Das Python-Script kann über die Konsole gestartet werden. Man landet danach zunächst im Hauptmenu.
<img src="./documentation/pics/main.gif" alt="main"/>
......@@ -62,9 +106,6 @@ Diese sind unter dem Menü (5) Settings zu finden. Nach dem anpassen bzw. ergän
<img src="./documentation/pics/settings.PNG" alt="settings"/>
## Funktionen
Das Script bietet zwei Grundfunktionen.
### Create Subscriber
......
......@@ -18,13 +18,13 @@ class SETTINGS_CONST(ValueEnum):
ROS_MSG_PKG = "ros_msg_pkg"
ROS_BUILD_SYSTEM = "ros_build_system"
INIT_SETTINGS = {ROS_SRC_PATH: "path to your ros2 workspace",
ADTF_SRC_PATH: "path to your adtf installation",
ADTF_PLUGIN_INSTALL_PATH: "path to the dir where your adtf plugins will be installed to",
VISUAL_STUDIO_PATH: "path to your visual studio installation(only for windows0)",
ROS_SUBSCRIBER_PKG: "adtf_generated_subscriber",
ROS_PUBLISHER_PKG: "adtf_generated_publisher",
ROS_MSG_PKG: "adtf_generated_msgs",
ROS_BUILD_SYSTEM: "ament"}
ADTF_SRC_PATH: "path to your adtf installation",
ADTF_PLUGIN_INSTALL_PATH: "path to the dir where your adtf plugins will be installed to",
VISUAL_STUDIO_PATH: "path to your visual studio installation(only for windows0)",
ROS_SUBSCRIBER_PKG: "adtf_generated_subscriber",
ROS_PUBLISHER_PKG: "adtf_generated_publisher",
ROS_MSG_PKG: "adtf_generated_msgs",
ROS_BUILD_SYSTEM: "select (ament, colcon)"}
class Settings(dict, metaclass=Singleton):
......
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<plugindescription xmlns="adtf/xsd/plugindescription">
<file_version>
<major>1</major>
<minor>0</minor>
</file_version>
<name/>
<cache_info>
<plugin_name>ROS2 System Service</plugin_name>
<plugin_checksum/>
</cache_info>
<debug>true</debug>
<versions>
<version>
<name>adtf</name>
<major>3</major>
<minor>3</minor>
<patch>3</patch>
<description>TODO!</description>
</version>
<version>
<name>adtf::ucom</name>
<major>3</major>
<minor>1</minor>
<patch>0</patch>
<description>TODO!</description>
</version>
</versions>
<service_descriptions>
<service_description>
<name>ros2_com.service.adtf_ros2tb.cid</name>
<label>ROS2 System Service</label>
<versions>
<version>
<name>adtf::ucom</name>
<major>3</major>
<minor>1</minor>
<patch>0</patch>
<description>TODO!</description>
</version>
</versions>
<provided_interfaces/>
<required_interfaces/>
<required_optional_interfaces/>
<description>TODO!</description>
<property_set_description>
<property_descriptions/>
<ref_property_descriptions/>
</property_set_description>
<editor_descriptions/>
</service_description>
</service_descriptions>
<filter_descriptions/>
<activerunner_descriptions/>
<samplestream_descriptions/>
<bindingproxy_descriptions/>
<streaming_sink_descriptions/>
<streaming_source_descriptions/>
<platform_dependencies/>
</plugindescription>
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<plugindescription xmlns="adtf/xsd/plugindescription">
<file_version>
<major>1</major>
<minor>0</minor>
</file_version>
<name/>
<cache_info>
<plugin_name>ROS2 System Service</plugin_name>
<plugin_checksum/>
</cache_info>
<debug>false</debug>
<versions>
<version>
<name>adtf</name>
<major>3</major>
<minor>3</minor>
<patch>1</patch>
<description>TODO!</description>
</version>
<version>
<name>adtf::ucom</name>
<major>3</major>
<minor>1</minor>
<patch>0</patch>
<description>TODO!</description>
</version>
</versions>
<service_descriptions>
<service_description>
<name>ros2_com.service.adtf_ros2tb.cid</name>
<label>ROS2 System Service</label>
<versions>
<version>
<name>adtf::ucom</name>
<major>3</major>
<minor>1</minor>
<patch>0</patch>
<description>TODO!</description>
</version>
</versions>
<provided_interfaces/>
<required_interfaces/>
<required_optional_interfaces/>
<description>TODO!</description>
<property_set_description>
<property_descriptions/>
<ref_property_descriptions/>
</property_set_description>
<editor_descriptions/>
</service_description>
</service_descriptions>
<filter_descriptions/>
<activerunner_descriptions/>
<samplestream_descriptions/>
<bindingproxy_descriptions/>
<streaming_sink_descriptions/>
<streaming_source_descriptions/>
<platform_dependencies/>
</plugindescription>
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<plugindescription xmlns="adtf/xsd/plugindescription">
<file_version>
<major>1</major>
<minor>0</minor>
</file_version>
<name/>
<cache_info>
<plugin_name>ROS2 Video Receiver</plugin_name>
<plugin_checksum/>
</cache_info>
<debug>false</debug>
<versions>
<version>
<name>adtf</name>
<major>3</major>
<minor>3</minor>
<patch>1</patch>
<description>TODO!</description>
</version>
<version>
<name>adtf::ucom</name>
<major>3</major>
<minor>1</minor>
<patch>0</patch>
<description>TODO!</description>
</version>
</versions>
<service_descriptions/>
<filter_descriptions/>
<activerunner_descriptions/>
<samplestream_descriptions/>
<bindingproxy_descriptions/>
<streaming_sink_descriptions/>
<streaming_source_descriptions>
<streaming_source>
<name>video_receiver.streaming_source.adtf_ros2tb.cid</name>
<label>ROS2 Video Receiver</label>
<versions>
<version>
<name>adtf::ucom</name>
<major>3</major>
<minor>1</minor>
<patch>0</patch>
<description>TODO!</description>
</version>
</versions>
<category>1</category>
<description>TODO!</description>
<property_set_description>
<property_descriptions>
<property_description>
<name>Node name</name>
<type>cString</type>
<value>adtf_video_reciever</value>
<list/>
</property_description>
<property_description>
<name>Topic name</name>
<type>cString</type>
<value>adtf_topic_video</value>
<list/>
</property_description>
</property_descriptions>
<ref_property_descriptions/>
</property_set_description>
<pin_set_description>
<pin_descriptions>
<pin_description>
<name>out</name>
<streamtype_description>
<metatype_name>adtf/image</metatype_name>
<property_descriptions>
<property_description>
<name>data_endianess</name>
<type>tUInt32</type>
<value>1</value>
<list/>
</property_description>
<property_description>
<name>format_name</name>
<type>cString</type>
<value>R(8)G(8)B(8)(8)</value>
<list/>
</property_description>
<property_description>
<name>max_byte_size</name>
<type>tUInt32</type>
<value>0</value>
<list/>
</property_description>
<property_description>
<name>pixel_height</name>
<type>tUInt32</type>
<value>0</value>
<list/>
</property_description>
<property_description>
<name>pixel_width</name>
<type>tUInt32</type>
<value>0</value>
<list/>
</property_description>
</property_descriptions>
</streamtype_description>
<direction>2</direction>
<description>TODO!</description>
</pin_description>
</pin_descriptions>
<binding_object_descriptions/>
<runner_descriptions/>
<dynamic_input_pins>false</dynamic_input_pins>
<dynamic_output_pins>false</dynamic_output_pins>
</pin_set_description>
<editor_descriptions/>
<provided_interfaces/>
<required_interfaces/>
<required_optional_interfaces/>
</streaming_source>
</streaming_source_descriptions>
<platform_dependencies/>
</plugindescription>
......@@ -37,6 +37,6 @@ find_package(ADTF REQUIRED)
find_package(ADTF COMPONENTS systemsdk)
find_package(ADTF COMPONENTS filtersdk)
# modifiy this Paths to specify the Plugin-Install Path
adtf_ros2_install_service(${PROJECT_NAME} /home/ss/adtf_plugins "rclcpp")
# uncomment the line below and edit the path to specify the Plugin-Install Path for the system service
# adtf_ros2_install_service(${PROJECT_NAME} yourdir/plugin/install/path "rclcpp")
ament_package()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment