-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.yaml
More file actions
136 lines (123 loc) · 8.4 KB
/
server.yaml
File metadata and controls
136 lines (123 loc) · 8.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# Copyright (c) 2026 Chair of Robotics (Computer Science XVII) @ Julius–Maximilians–University
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
/**:
ros__parameters:
# host and port to which the websocket server should bind to
host: '0.0.0.0'
port: '9090'
# host and port of the authentication server
# if SSL = true, transport encryption will be applied
authentication/host: '127.0.0.1'
authentication/port: '8080'
authentication/ssl: false
# the dynamically loaded plugin which implements the authentication scheme
authentication/plugin: ''
# the authentication server endpoint to perform a user_key / authentication check against
authentication/endpoint: '/'
# if the authentication check should be omitted
authentication/omit: true
# timeout after which the 'server' closes the connection if no
# user_key was send by the 'client'
authentication/timeout: 10
# create a pre-defined ClockSubscriber which sends the ros-time over topic /clock
# this will allow ROS2 time synchronization between the 'server' and 'client'
clock/subscribe: true
# create a pre-define ThreadedSubscriber which subscribes to tf2 transformations from topic /tf and /tf_static
# this will allow tf2 transformations forwarding from 'server' to 'client'
# this will only work, if the 'client' has the parameter tf/publish = true
tf/subscribe: true
# enable / disable per-message fragmentation during websocket transport
# using the given fragmentation size if enabled
fragmentation/enable: false
fragmentation/size: 4096
# the maximum size of a message which is accepted to receive
# 16 * 1024B * 1024B
max_message_size: 16777216
# quality of service definitions
# the policies history, depth, reliability and durability are mandatory
# the policies deadline, lifespan, liveliness and liveliness_lease_duration are optional and set to default if missing
#
# id: unique id ... to be used for subscriber, publisher, service & action server & clients ... range from 0 to 255
#
# history: RMW_QOS_POLICY_HISTORY_SYSTEM_DEFAULT, RMW_QOS_POLICY_HISTORY_KEEP_LAST, RMW_QOS_POLICY_HISTORY_KEEP_ALL
# depth: * a positive integer *
# reliability: RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT, RMW_QOS_POLICY_RELIABILITY_RELIABLE, RMW_QOS_POLICY_RELIABILITY_BEST_EFFORT
# durability: RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT, RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL, RMW_QOS_POLICY_DURABILITY_VOLATILE
#
# deadline: RMW_QOS_DEADLINE_DEFAULT, RMW_QOS_DEADLINE_BEST_AVAILABLE, *{seconds, nanoseconds}* e.g. *{123, 456000000}*
# lifespan: RMW_QOS_LIFESPAN_DEFAULT, *{seconds, nanoseconds}* e.g. *{123, 456000000}*
# liveliness: RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT, RMW_QOS_POLICY_LIVELINESS_AUTOMATIC, RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_TOPIC, RMW_QOS_POLICY_LIVELINESS_BEST_AVAILABLE
# liveliness_lease_duration: RMW_QOS_LIVELINESS_LEASE_DURATION_DEFAULT, RMW_QOS_LIVELINESS_LEASE_DURATION_BEST_AVAILABLE, *{seconds, nanoseconds}* e.g. *{123, 456000000}*
#
# 1: default profile, 2: action-status profile, 3: sensors profile
qos:
- '{"id": 1, "history": "RMW_QOS_POLICY_HISTORY_KEEP_LAST", "depth": 10, "reliability": "RMW_QOS_POLICY_RELIABILITY_RELIABLE", "durability": "RMW_QOS_POLICY_DURABILITY_VOLATILE"}'
- '{"id": 2, "history": "RMW_QOS_POLICY_HISTORY_KEEP_LAST", "depth": 10, "reliability": "RMW_QOS_POLICY_RELIABILITY_RELIABLE", "durability": "RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL"}'
- '{"id": 3, "history": "RMW_QOS_POLICY_HISTORY_KEEP_LAST", "depth": 10, "reliability": "RMW_QOS_POLICY_RELIABILITY_BEST_EFFORT", "durability": "RMW_QOS_POLICY_DURABILITY_VOLATILE"}'
# compression profile definitions with default compression rate value
#
# id: unique id ... to be used for subscriber, publisher, service & action server & clients ... range from 0 to 255
#
# NONE: no compression
# LZ4_DEFAULT: very fast but low compression
# LZ4_HC: faster than ZLIB for low compression rates, slower than ZLIB for high compression rates, always larger compressed size than ZLIB
# ZLIB: lowest compressed size overall
#
# NONE: rate is ignored
# LZ4_DEFAULT: rate is understood as accelerator, the bigger the fast ... range from 1 - LZ4_ACCELERATION_MAX (65537) .. default 1
# LZ4_HC: rate is understood as rate, the bigger the slower ... range from 1 - LZ4HC_CLEVEL_MAX (12) ... default 9
# ZLIB: rate is understood as rate, the bigger the slower ... range from 1 - Z_BEST_COMPRESSION (9) ... default 6
compression:
- '{"id": 1, "compressor": "NONE", "rate": 0}'
- '{"id": 2, "compressor": "LZ4_DEFAULT", "rate": 1}'
- '{"id": 3, "compressor": "LZ4_HC", "rate": 9}'
- '{"id": 4, "compressor": "ZLIB", "rate": 6}'
# topics which are published by the 'client' locally
# messages from these topics can be send by the 'server'
#
# channel: channel ... must be unique over all subscriber and publisher ... range from 0 to 248
# topic: topic name
# type: topic type definition
# useOwnThread: if true, an own processing thread
# qos: id of the quality of service profile to apply
#
# publisher: []
# topics to which the 'client' subscribes locally
# these topics can be requested by the 'server'
#
# channel: channel ... must be unique over all subscriber and publisher ... range from 0 to 248
# topic: topic name
# type: topic type definition
# useOwnThread: if true, an own processing thread plus executor thread is used
# permanent: if true, subscriber won't be destroyed when other side stopped requesting for the data ... necessary for RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL
# qos: id of the quality of service profile to apply
# compression: id of the compression profile to apply ... needs useOwnThread = true
#
# subscriber: []
# service client which are run by the 'server'
# these service client re-call the service call of the 'client' to an actual service server which are run on the 'server'
#
# channel: channel ... must be unique over all service server & client ... range from 0 - 255
# type: service client type as defined in plugins.xml (pluginlib)
# useOwnThread: if true, an own executor thread is used
# allowSimultaneous: if simultaneous calls by the service client should be processed simultaneously or sequentially ... needs useOwnThread = true
# service-qos: id of the quality of service profile to apply
# compression: id of the compression profile to apply (also possible for shared thread, but not recommended)
service/client:
- '{"channel": 0, "type": "connect_plugins::AddTwoIntsServiceClient", "service-qos": 1, "useOwnThread": false, "allowSimultaneous": false, "compression": 1}'
# action client which are run by the 'server'
# these action client re-call the action call of the 'client' to an actual action server which are run on the 'server'
#
# channel: channel ... must be unique over all action server & client ... range from 0 - 255
# type: action client type as defined in plugins.xml (pluginlib)
# useOwnThread: if true, an own executor thread is used
# allowSimultaneous: if simultaneous calls by the action server should be processed simultaneously or sequentially ... needs useOwnThread = true
# service-qos: id of the quality of service profile to apply for goal handling
# feedback-qos: id of the quality of service profile to apply for publishing feedback message
# status-qos: id of the quality of service profile to apply for broadcasting goal statuses
# compression: id of the compression profile to apply (also possible for shared thread, but not recommended)
action/client:
- '{"channel": 0, "type": "connect_plugins::FibonacciActionClient", "service-qos": 1, "feedback-qos": 1, "status-qos": 2, "useOwnThread": false, "allowSimultaneous": false, "compression": 1}'