-
Notifications
You must be signed in to change notification settings - Fork 0
/
localization.orogen
90 lines (67 loc) · 3.25 KB
/
localization.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
name "localization"
# Optionally declare the version number
# version "0.1"
# If new data types need to be defined, they have to be put in a separate C++
# header, and this header will be loaded here
using_library "localization" # Localization library
using_library "envire_core" # Environment representation library
# If the component/deployments use data types that are defined in other oroGen
# projects, these projects should be imported there as well.
import_types_from "base"
import_types_from "localization/core/Types.hpp"
import_types_from "localizationTypes.hpp"
# Declare the State Optimization class
task_context "Task" do
# This is the default from now on, and should not be removed. Rock will
# transition to a setup where all components use a configuration step.
needs_configuration
#**************************
#***** Task Properties ****
#**************************
property('localization_source_frame', '/std/string').
doc 'Frame of the localization (normally body frame)'+
'The localization target frame is taken from the world frame of the transformer.'
property('maximum_number_sensor_poses', 'unsigned int', 0).
doc 'Maximum number of sensor camera poses in the filter state.'
property('measurement_covariance', 'base::MatrixXd').
doc "Measurement uncertainty in meters at the sensor plane projection."
property('update_period', 'double').
doc "Desired update period. It cannot be smaller that the visual features samples period."
property("update_type", "localization::UpdateType", :EKF).
doc "Filter update type."
#******************************
#******* Input ports *********
#******************************
#******* Proprioceptive sensors *********
input_port('delta_pose_samples', '/base/samples/RigidBodyState').
needs_reliable_connection.
doc 'Delta pose displacement.'
#******* Exteroceptive sensors *********
# Exteroceptive update samples to correct the prediction (Visual, ICP, etc..).
input_port('visual_features_samples', 'visual_stereo::ExteroFeatures').
doc 'Visual features samples.'
##########################
# Transformer
##########################
transformer do
transform "navigation", "world" # navigation in world in "Source IN target" convention
transform "sensor", "body" # sensor in body in "Source IN target" convention
align_port("delta_pose_samples", 0)
align_port("visual_features_samples", 0)
max_latency(0.02)
end
#******************************
#******* Output ports ********
#******************************
output_port('pose_samples_out', '/base/samples/RigidBodyState').
doc 'Corrected estimated robot pose.'
output_port('body_pose_samples_out', '/base/samples/RigidBodyState').
doc 'Corrected estimated robot pose.'
property('output_debug', 'bool', false).
doc "Set to true in case you want to have filter debug information"
output_port('filter_info_out', 'localization/FilterInfo').
doc 'State estimation information.'
output_port("features_point_samples_out", 'base::samples::Pointcloud').
doc 'Features 3d point of the Opportunistic features in the localization.'
port_driven
end