-
Notifications
You must be signed in to change notification settings - Fork 1
/
interfaces.orogen
120 lines (99 loc) · 5.13 KB
/
interfaces.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
name "interfaces"
version "0.1"
import_types_from "base"
import_types_from "interfacesTypes.hpp"
task_context "Servo" do
needs_configuration
abstract
property("zero_offset", "double", 0.0).
doc "offset between the servo zero and the mounting zero"
property("mode", "/servo/MODE", :POSITION).
doc("mode of the module, 0 is hold position, 1 is contious sweep")
property("lower_sweep_angle", "double", 0).
doc("lower bound of the sweep")
property("upper_sweep_angle", "double", 0).
doc("upper bound of the sweep")
property("moving_speed", "double", 0).
doc("turning speed in rad/sec")
property("upper_frame", "std/string", "upper_servo").
doc "The name of the frame, where the upper part (rotating) of the servo is mounted"
property("lower_frame", "std/string", "lower_servo").
doc "The name of the frame, where the lower part (fixed) of the servo is mounted"
property("rotation_axis", "base/Vector3d").
doc "rotational axis for the upper2lower transform."
output_port('upper2lower', '/base/samples/RigidBodyState').
doc "transformation between the lower and upper frame. The rotational axis of the servo is specified in rotation_axis."
output_port('angle', 'double').
doc "current tilt angle of the servo, in radians"
input_port('cmd_angle', 'double').
doc "wanted tilt angle of the servo, in radians"
operation("set_angle").
returns('bool').
argument("angle", "double", "set the angle of the servo, in radians")
end
#task_context "Actuator" do
# needs_configuration
# abstract
#
# operation('dispatch').
# doc('creates an output port of actuator status and an input port for setting actuator commands').
# returns("bool").
# argument('name', 'std::string', "the name of the board set. Ports called status_name and cmd_name will be created").
# argument('actuatorMap', '/std/vector</int>', "A map that maps the actuator id to the position in the Command structure. Note that a negative value can be given to autoamtically invert the commands")
#
# dynamic_input_port(/cmd_\w+/, "base/actuators/Command").
# doc "commands for a set of actuators set up by #dispatch"
# dynamic_output_port(/status_\w+/, "base/actuators/Status").
# doc "status of a set of actuators set up by #dispatch"
#end
task_context "ActuatorCommandWriter" do
needs_configuration
abstract
operation('dispatch').
doc('creates an output port of actuator status and an input port for setting actuator commands').
returns("bool").
argument('name', 'std::string', "the name of the board set. Ports called status_name and cmd_name will be created").
argument('actuatorMap', '/std/vector</int>', "A map that maps the actuator id (1-based) to the position (0-based) in the Command structure. Note that a negative value can be given to autoamtically invert the commands, and zero to insert an empty entry.")
dynamic_input_port(/cmd_\w+/, "base/commands/Joints").
doc "commands for a set of actuators set up by #dispatch"
end
task_context "ActuatorSensorReader" do
needs_configuration
abstract
operation('dispatch').
doc('creates an output port of actuator status and an input port for setting actuator commands').
returns("bool").
argument('name', 'std::string', "the name of the board set. Ports called status_name and cmd_name will be created").
argument('actuatorMap', '/std/vector</int>', "A map that maps the actuator id (1-based) to the position in the Status structure. Note that a negative value can be given to autoamtically invert the Sensor output, and zero to insert an empty entry.")
dynamic_output_port(/status_\w+/, "base/samples/Joints").
doc "status of a set of actuators set up by #dispatch"
end
task_context 'LaserRangeFinder' do
needs_configuration
abstract
property('remission_values', 'bool', 0).
doc 'include remission values in output if set to true and available in the device'
property('start_step', 'int', -1).
doc 'the step at which to start acquisition'
property('end_step', 'int', -1).
doc 'the step at which to end acquisition'
property('scan_skip', 'int', 0).
doc 'how much acquisitions to ignore between two acquisitions to report'
property('merge_count', 'int', 1).
doc 'how much ranges measurement to merge into one single reported measurement'
output_port('scans', 'base/samples/LaserScan').
max_sizes('remission' => 2000, 'ranges' => 2000).
doc "the laser scans themselves"
end
task_context 'IMU' do
needs_configuration
abstract
property("imu_frame", "std/string", "imu").
doc "The name of the imu frame."
property("world_frame", "std/string", "world").
doc "The name of the world frame."
output_port('orientation_samples', '/base/samples/RigidBodyState').
doc 'provides timestamped IMUReading samples containing the orientation estimate as reported by the IMU.'
output_port('calibrated_sensors', '/base/samples/IMUSensors').
doc 'provides timestamped IMUReading samples containing the calibrated sensor readings.'
end