-
Notifications
You must be signed in to change notification settings - Fork 2
/
servo_dynamixel.orogen
66 lines (49 loc) · 2.49 KB
/
servo_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
name "servo_dynamixel"
# Optionally declare the version number
# version "0.1"
using_library "dynamixel"
import_types_from "base"
import_types_from "dynamixel/dynamixel_types.hpp"
import_types_from "base/JointTransform.hpp"
task_context "Task" do
needs_configuration
# the system device name for the servo controller command
property "device", "/std/string"
# the baudrate for the communication with the servos
property "baudrate", "/int", 57600
# set a retry count for sending packages to the device
property "package_retry_count", "/int", 0
# read/write timeout of dynamixel in ms
property "timeout", "/int", 1000
# set limits of the servo. Scale and offset values from servo_config will be used to convert to ticks.
# Min Position corresponds to CW Angle Limit, Max Position to CCW Angle Limit
# Max Speed will be the initial moving speed of servo, max effort will be the torque limit
# If a value is not set, default will be used (0...1023 as joint limits in ticks, max moving speed (1023), max torque (1023))
# Min speed and min effort members are not used
property "joint_limits", "/base/JointLimits"
# If true, input command will be capped to respect the joint limits. If false, exception will be thrown if a joint limit is violated.
property "cap_at_limits", "/int", 0
# configuration of the servo chain
# adds the mapping of name to servo id, and also sets the
# dynamixel specific configuration values
property "servo_config", "std/vector</servo_dynamixel/ServoConfiguration>"
# Always keep torque enabled (even after stopping the component)
property "keep_torque_enabled", "int", 0
# optional configuration for the rigid_body_states
# this module will generate on the
property "joint_transform", "base/JointTransformVector"
# command values for the servos
# the names in the type need to match the configured values
input_port "command", "base/commands/Joints"
# status values for all the servos that have been configured
output_port "status_samples", "base/samples/Joints"
# if the joint_transform configuration is set, this port
# will output the joints in form of RigidBodyStates
#
# note: you will need a buffered connection if multiple joints
# are served by this module in order to not miss any transforms
output_port "transforms", "base/samples/RigidBodyState"
# Debug Port to check the cycle time
output_port "act_cycle_time", "double"
periodic 0.1
end