-
Notifications
You must be signed in to change notification settings - Fork 1
/
asv_localization.orogen
146 lines (103 loc) · 4.9 KB
/
asv_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
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
name "asv_localization"
import_types_from "base"
using_library "pose_ekf"
using_library "aggregator"
using_library "uw_localization"
import_types_from "aggregator"
import_types_from "uw_localization/types/environment.hpp"
task_context "Task" do
#-------------------------
# Input ports
#-------------------------
input_port("gps_samples" , "base/samples/RigidBodyState").
doc("Position samples of the gps")
input_port("imu_samples" ,"base/samples/IMUSensors").
doc("Acceleration data of the imu")
input_port("orientation_samples", "base/samples/RigidBodyState").
doc("orientation_samples of the imu")
input_port("velocity_samples", "base/samples/RigidBodyState").
doc("Velocity samples for acceleration estimation. For test purpose only")
input_port("laser_samples", "base/samples/LaserScan").
doc("Samples from the laserscanner, to detect walls")
input_port("thruster_samples", "base/samples/Joints").
doc("Samples from the thruster, for velocity estimation")
#-------------------------
# Output ports
#-------------------------
output_port("pose_samples", "base/samples/RigidBodyState").
doc("A RBS containing position, velocity and covariance of both")
output_port("stream_aligner_status", "aggregator/StreamAlignerStatus").
doc("Actual status of the stream alligner")
output_port("environment", "/uw_localization/Environment").
doc("current map environment")
#------------------------
# Properties
#------------------------
property("gps_error", "double" , 1.0).
doc("Variance of the gps in meter")
property("acceleration_error" , "double" , 0.001).
doc("Variance of the imu in m/s^2")
property("velocity_error" , "double" , 0.1).
doc("Variance of the velocity estimation im m/s")
property("gps_reject_threshold", "double" , 3.0)
property("velocity_reject_threshold" , "double" , 1.0)
property("max_delay" ,"double" , 2.0).
doc("Max delay of incomming streams")
property("gps_period", "double" , 1.0)
property("imu_period", "double" , 0.1)
property("ori_period", "double" , 0.1)
property("vel_period", "double" , 0.1)
property("laser_period", "double", 0.01)
property("thruster_period", "double", 0.01)
property("initial_gps_origin", "bool" , false).
doc("When true, the first recieved gps-position is used as the origin")
property("estimate_velocity", "bool", true).
doc("Use gps for velocity-estimation")
property("velocity_estimation_count", "int", 10).
doc("Number of gps-samples, which are used for one velocity estimation")
property("imu_rotation", "double", 0.0).
doc("rotation of the imu around the z-axis")
property("use_gps_velocity", "int", 2).
doc("0: zero velocity, 1: gps-estimated velocity, 2: imu-estimated velocity, 3: gps-estimated x-velocity, yz-velocity zero")
property("relative_gps_position", "base/Vector3d").
doc("Position of the gps in the body frame")
property("enframe_to_nwframe", "bool", true).
doc("Convert gps from East-North-Frame to North-West-Frame")
property("gps_timeout", "double", 10.0)
property("orientation_timeout", "double", 10.0)
property("yaml_file", "std/string").
doc("yaml file for initial wall-map. this is used for laser-localiziation")
property("laser_variance", "double", 1.0)
property("laser_min_range", "double", 0.1)
property("laser_max_range", "double", 10.0)
property("laser_translation", "/base/Vector3d")
property("laser_rotation_euler", "/base::Vector3d")
property("number_of_thruster", "int", 4)
property("thruster_coef", "std/vector<double>").
doc("Thruster coefficients, vector must have the size of number_of_thruster")
property("thruster_voltage", "double", 24)
property("tcm", "std/vector<double>").
doc("Thruster coeffiecients in x and y, as a number_of_thruster x 2 matrix")
property("damping_coefficients", "std/vector<double>").
doc("damping coefficients in x and y, vector must have the size 2")
property("vehicle_mass", "double", 20)
property("model_variance", "double", 0.2)
#----------------------------
# Stream Aligner
#----------------------------
# stream_aligner do
# max_latency 1.5
# align_port "gps_samples", 1.0
# align_port "imu_samples", 0.1
# align_port "orientation_samples", 0.1
# align_port "velocity_samples", 0.1
# end
needs_configuration
port_driven :gps_samples
port_driven :imu_samples
port_driven :orientation_samples
port_driven :velocity_samples
port_driven :laser_samples
port_driven :thruster_samples
runtime_states "LOCALIZING", "NO_ORIENTATION", "GPS_TIMEOUT", "POSITION_INVALID"
end