-
Notifications
You must be signed in to change notification settings - Fork 0
/
dynamixel.orogen
75 lines (56 loc) · 2.8 KB
/
dynamixel.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
name "dynamixel"
import_types_from "base"
using_library "dynamixel"
import_types_from "servoTypes.hpp"
task_context "Task" do
needs_configuration
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")
property("device", "/std/string").
doc "the device file used to connect to the RS485 bus"
property("servo_id", "int").
doc "the dynamixel id off the tilt angle"
property("cw_slope", "int", 32).
doc "the dynamixel slope A (see RX-28 manual)"
property("cw_margin", "int", 1).
doc "the dynamixel margin B (see RX-28 manual)"
property("ccw_margin", "int",1).
doc "the dynamixel margin C (see RX-28 manual)"
property("ccw_slope", "int",32).
doc "the dynamixel slope D (see RX-28 manual)"
property("punch", "int",32).
doc "the dynamixel punch E (see RX-28 manual)"
property("torque_limit", "int", 512).
doc "the dynamixel punch E (see RX-28 manual)"
property("upperFrameName", "std/string", "upper_dynamixel").
doc "The name of the frame, where the upper part (rotating) of the servo is mounted"
property("lowerFrameName", "std/string", "lower_dynamixel").
doc "The name of the frame, where the lower part (fixed) of the servo is mounted"
output_port('lowerDynamixel2UpperDynamixel', '/base/samples/RigidBodyState').
doc "transformation between the lower and upper frame. It is allways assumed, that the axis of the servo is located on the X-Axis"
default_activity :periodic, 0.01
exception_states :IO_ERROR
end