-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patheslam.orogen
151 lines (110 loc) · 4.68 KB
/
eslam.orogen
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
name 'eslam'
version 0.1
using_library 'eslam'
using_library 'eslam-viz'
using_library 'envire'
import_types_from 'base'
import_types_from 'terrain_estimator'
import_types_from 'envire'
import_types_from "eslam/Configuration.hpp"
import_types_from "eslam/PoseParticle.hpp"
import_types_from "odometry"
import_types_from 'stereo'
import_types_from "aggregator"
task_context 'Task' do
needs_configuration
##########################
# configuration options
##########################
property('eslam_config', '/eslam/Configuration').
doc 'Configuration options for the eslam filter.'
property('odometry_config', '/odometry/Configuration').
doc 'Configuration options for the odometry.'
property('calc_gmm', 'bool', false).
doc 'Optionally calculated the Guassian Mixture Model of the particle Distribution.'
property('hash_config', '/eslam/SurfaceHashConfig').
doc 'Option to calculate the hash for a given environment and use it to spawn new random particles'
##########################
# environment parameters
##########################
property('environment_path', 'string').
doc 'path to environment'
property('environment_debug_path', 'string').
doc 'if this property is set, the final environment will be written to the given file path.'
property('debug_viz', 'bool', false).
doc 'if set to true, the module will display the current environment for debugging.'
output_port('envire_data', ro_ptr('std/vector</envire/BinaryEvent>')).
doc 'a dump of currently most likely map'
property('envire_period', 'double', 1.0).
doc 'update period in s for the envire_data port.'
##########################
# filter parameters
##########################
property('start_pose', '/base/samples/RigidBodyState').
doc 'path to environment'
##########################
# i/o ports
##########################
input_port('stereo_features', '/stereo/StereoFeatureArray').
needs_reliable_connection.
doc 'sparse feature array'
input_port('distance_frames', '/base/samples/DistanceImage').
needs_reliable_connection.
doc 'distance images'
input_port('terrain_classification_frames', '/base/samples/frame/Frame').
needs_reliable_connection.
doc '(optional) image frames with visual terrain classification given in the reference frame of the distance images. Need to be in sync with the distance frames.'
input_port('terrain_classification_wheel', '/terrain_estimator/TerrainClassification').
needs_reliable_connection.
doc '(optional) proprioceptive terrain classification data.'
input_port('scan_samples', '/base/samples/LaserScan').
needs_reliable_connection.
doc 'timestamped laser scans'
input_port('bodystate_samples', '/odometry/BodyContactState').
needs_reliable_connection.
doc 'timestamped samples providing the configuration state of the robot.'
input_port('reference_pose', '/base/samples/RigidBodyState').
needs_reliable_connection.
doc 'you can provide a reference pose here for debug purposes.'
property('world_frame', 'std/string', 'world')
output_port('pose_samples', '/base/samples/RigidBodyState').
doc 'timestamped samples of the particle filters pose centroid.'
output_port('pose_distribution', '/eslam/PoseDistribution').
doc 'timestamped particle distribution of the pose.'
property('map_resolution', '/double', 0.1 ).
doc 'provide the resolution of the map which is generated when cloneMap is triggered, or 0 for using the internal resolution.'
property('map_file', '/std/string').
doc 'if set, cloneMap will write the environment to this location.'
property('map_id', '/std/string').
doc 'the ID of the generated map.'
operation('cloneMap').
doc("Dumps the currently best map on the map output port if it is connected and/or to a directory if the file parameter is set. Returns the pose of the current best particle.").
returns("/base/samples/RigidBodyState")
output_port('map', ro_ptr('std/vector</envire/BinaryEvent>')).
doc 'a dump of currently most likely map'
##########################
# transformer
##########################
transformer do
max_latency( 0.2 )
transformation("laser", "body")
transformation("lcamera", "body")
transformation("body", "odometry")
align_port("scan_samples", 0.02)
align_port("terrain_classification_frames", 0.1)
align_port("terrain_classification_wheel", 0.0)
align_port("distance_frames", 0.5)
align_port("stereo_features", 0.5)
align_port("bodystate_samples", 0.01)
end
port_driven "dynamic_transformations"
end
deployment "eslam_test" do
do_not_install
task("eslam", "Task")
add_default_logger
end
deployment "eslam" do
task("eslam", "Task")
add_default_logger
end