-
Notifications
You must be signed in to change notification settings - Fork 0
/
sonar_wall_hough.orogen
116 lines (102 loc) · 5.2 KB
/
sonar_wall_hough.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
name "sonar_wall_hough"
# Optionally declare the version number
# version "0.1"
# If the component/deployments use data types that are defined in other oroGen
# projects, these projects should be imported there as well.
using_library "sonar_wall_hough"
using_library "jpeg_conversion"
# 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
# import_types_from "sonar_wall_houghType.hpp"
import_types_from "tasks/DebugTypes.hpp"
import_types_from "base"
import_types_from "sonar_wall_hough/Config.hpp"
# Declare a new task context (i.e., a component)
#
# The corresponding C++ class can be edited in tasks/Task.hpp and
# tasks/Task.cpp, and will be put in the sonar_wall_hough namespace.
task_context "Task" do
needs_configuration
# A configuration property (here, a std::string). Its value can be retrieved
# in the C++ code with # _config_value.get() and _config_value.set(new_value).
property("sensorAngularResolution", 'double', 1.8).
doc("Angular resolution of sonar (in degree)")
property("sensorAngularTolerance", 'double', 15).
doc("Angular tolerance of linedetection")
property("anglesPerBin", 'int', 2).
doc("Number of Angle steps collected in 1 bin in houghspace")
property("maxDistance", 'int', 600). #600 for sauc-e logs
doc("Number of bins of the sonar")
property("filterThreshold", 'int', 50).
doc("bins in sonar beam with fewer entries will be ignored")
property("withMinimumFilter", 'bool', true). #true for sauc-e logs
doc("If the incoming beams should be filtered with a minimum filter first")
property("minDistance", 'double', 2.5).
doc("Minimum distance for sonar to filter out the auv itself")
property("distancesPerBin", 'int', 4).
doc("Number of distance bin in sonar beam collected in 1 bin in houghspace")
property("minLineVotesRatio", 'double', 0.1).
doc("Factor for sonar peaks; lines must have at least that many votes to be detected as lines")
property("angleDelta", 'double', 220.0). #220.0 for sauc-e logs
doc("the angle between orientation-zero and basin zero (in degree)")
property("basinHeight", 'double', 60.0). #60.0 for sauc-e logs
doc("Height of the basin")
property("basinWidth", 'double', 50.0). #50.0 for sauc-e logs
doc("Width of the basin")
property("gain", 'int', 10). #10 for sauc-e logs
doc("How much do the sonar peaks accumulate the hough space")
property("show_debug", 'bool', false).
doc("Shows sonar peaks, houghspace and lines as debug")
property("continous_write", 'bool', true).
doc("write continously each position sample to output")
property("usePositionSamples", 'bool', true).
doc("enable sensor-correction by position_samples")
property("correctToFirstPosition", 'bool' , true)
doc("transforms SonarPeaks to the first Position of Avalon. Takes only effekt, if usePositionSamples is true")
property("avalonSonarPose", 'double' , 0.5).
doc("Position of the sonar at Avalon, given as the relative x-Position to the origin of Avalon")
property("ignoreOrientation", 'bool', false).
doc("Ignore the vehicle orientation in the line selection algorithm")
property("pos_covar", "double", 0.1).
doc("Covariance of the estimated position")
property("origin_translation", "base/Vector3d").
doc("Translate the origin (center of the basin) to a offset")
# An input port, i.e. an object from which the component gets data from
# other components' outputs
#
# Data can be retrieved using _input.read(value), which returns true if data
# was available, and false otherwise. _input.connected() returns if this
# input is connected to an output or not.
input_port("sonar_samples", "/base/samples/SonarBeam").
doc("sonar beams to detect walls").
needs_reliable_connection
input_port("reset", "bool").
doc(" ")
input_port("orientation_samples", "/base/samples/RigidBodyState").
doc("orientation of avalon to correct the angle of sonar peaks").
needs_reliable_connection
input_port("pose_samples", "base/samples/RigidBodyState").
doc("position sample for sonar-correction").
needs_reliable_connection
# An output port, i.e. an object to which the component pushes data so that
# it is transmitted to other components' inputs
#
# Data can be written using _output.write(value). _output.connected() returns
# if this output is connected to an input or not.
output_port "lines", "/base/samples/frame/Frame"
output_port "peaks", "/base/samples/frame/Frame"
output_port "houghspace", "/base/samples/frame/Frame"
output_port "position", "/base/samples/RigidBodyState"
output_port "position_quality", "/sonar_wall_hough/PositionQuality"
# If you want that component's updateHook() to be executed when the "input"
# port gets data, uncomment this
port_driven "sonar_samples"
port_driven "reset"
end
# Declares a deployment, i.e. an actual executable that contains various tasks.
deployment "sonar_wall_hough_deployment" do
# This is a test deployment that should not be installed
#do_not_install
task("sonar_wall_hough", "Task")
add_default_logger
end