-
Notifications
You must be signed in to change notification settings - Fork 7
/
nexus_tree_nodes.xml
182 lines (151 loc) · 9.26 KB
/
nexus_tree_nodes.xml
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
<?xml version="1.0"?>
<!--
Load this file into Groot before opening any behvaior trees.
-->
<root>
<TreeNodesModel>
<!-- ############################### ACTION NODES ################################# -->
<Action ID="IsPauseTriggered">
<output_port name="paused">Whether the system is paused</output_port>
</Action>
<Action ID="BidTransporter">
<input_port name="destination">Destination to transport to</input_port>
<output_port name="result">Id of the transporter assigned</output_port>
</Action>
<Action ID="TransporterRequest">
<input_port name="transporter">The transporter to use</input_port>
<input_port name="destination">A map between task id and it's transporter session</input_port>
</Action>
<Action ID="WorkcellRequest">
<input_port name="workcell">Workcell to use</input_port>
<output_port name="task">The task to execute</output_port>
</Action>
<Action ID="detection.DetectAllItems">
<input_port name="detector">Id of the detector</input_port>
<output_port name="items">Items to detect</output_port>
<output_port name="result">Detected items</output_port>
</Action>
<Action ID="dispense_item.DispenseItem">
<input_port name="dispenser">OPTIONAL. Id of the dispenser to use to perform the action. If not provided, the first dispenser is used.</input_port>
<input_port name="item">The item data for dispensing</input_port>
</Action>
<Action ID="MakePose">
<input_port name="pos_x">The X coordinate of the pose</input_port>
<input_port name="pos_y">The Y coordinate of the pose</input_port>
<input_port name="pos_z">The Z coordinate of the pose</input_port>
<input_port name="rot_x">The X quaternion of the pose</input_port>
<input_port name="rot_y">The Y quaternion of the pose</input_port>
<input_port name="rot_z">The Z quaternion of the pose</input_port>
<input_port name="rot_w">The W quaternion of the pose</input_port>
<output_port name="pose">The constructed pose</output_port>
</Action>
<Action ID="plan_motion.PlanMotion">
<input_port name="robot_name">The name of the robot to plan for</input_port>
<input_port name="goal">The goal pose</input_port>
<input_port name="scale_speed">An optional fraction [0,1] to scale the acceleraton and speed of the generated trajectory</input_port>
<input_port name="cartesian">True if a cartesian plan is required</input_port>
<input_port name="start_constraints">If provided the joint_constraints will be used as the start state of the robot. By default the current state is set as start</input_port>
<input_port name="force_cache_mode_execute_read_only">True to force cache mode to ExecuteReadOnly for this request.</input_port>
<output_port name="result">The generated motion plan</output_port>
</Action>
<Action ID="plan_motion.FrameToPose">
<input_port name="frame_id">The name of the TF frame to be set in the PoseStamped output</input_port>
<output_port name="pose">The PoseStamped msg with the frame_id provided</output_port>
</Action>
<Action ID="execute_trajectory.ExecuteTrajectory">
<input_port name="trajectory">The robot trajectory as a moveit_msgs::msg::RobotTrajectory</input_port>
</Action>
<Action ID="gripper.GripperControl">
<input_port name="gripper">The ID of the gripper to control</input_port>
<input_port name="position">The position to command the gripper to</input_port>
<input_port name="max_effort">The max effort for the command</input_port>
</Action>
<Action ID="detection.DetectOffset">
<input_port name="detector">The name of the detector</input_port>
<output_port name="result">The detected offset</output_port>
</Action>
<Action ID="detection.MergeOffset">
<input_port name="offset1">The first offset to merge</input_port>
<input_port name="offset2">The second offset to merge</input_port>
<output_port name="result">The merged offset</output_port>
</Action>
<Action ID="SerializeDetections">
<input_port name="detections">vision_msgs::msg::Detection3DArray</input_port>
<output_port name="result">std::string</output_port>
</Action>
<Action ID="DeserializeDetections">
<input_port name="yaml">std::string</input_port>
<output_port name="result">vision_msgs::msg::Detection3DArray</output_port>
</Action>
<Action ID="GetJointConstraints">
<input_port name="trajectory">The robot trajectory as a moveit_msgs::msg::RobotTrajectory</input_port>
<input_port name="index">Optional. The index of the TrajectoryPoint in the trajectory. Defaults to last index</input_port>
<output_port name="joint_constraints">A vector of moveit_msgs::msg::JointConstraint</output_port>
</Action>
<Action ID="ExecuteTask">
<input_port name="task">The task to execute in the form of an nexus_orchestrator_msgs::msg::WorkcellTask</input_port>
<input_port name="workcell">The workcell that should execute the task</input_port>
</Action>
<Action ID="SendSignal">
<input_port name="task">The task the signal is tied to</input_port>
<input_port name="signal">The signal to send as an std::string</input_port>
</Action>
<Action ID="SetResult">
<input_port name="key">An std::string key for storing the result of a task</input_port>
<input_port name="value">An std::string serialization of the results</input_port>
</Action>
<Action ID="WaitForSignal">
<input_port name="signal">An std::string signal to wait for</input_port>
<input_port name="clear">Optional. If true the signal will clear once the node finishes ticking</input_port>
</Action>
<Action ID="SetSignal">
<input_port name="signal">An std::string signal to set within a workcell</input_port>
</Action>
<Action ID="ApplyTransform">
<input_port name="base_pose">The geometry_msgs::msg::PoseStamped pose to apply input offsets to</input_port>
<input_port name="x">The translation along X-Axis</input_port>
<input_port name="y">The translation along Y-Axis</input_port>
<input_port name="y">The translation along Y-Axis</input_port>
<input_port name="z">The translation along Z-Axis</input_port>
<input_port name="qx">The qw component of quaternion rotation</input_port>
<input_port name="qy">The qy component of quaternion rotation</input_port>
<input_port name="qz">The qz component of quaternion rotation</input_port>
<input_port name="qw">The qw component of quaternion rotation</input_port>
<input_port name="transform">A geometry_msgs::msg::Transform which defines the desired transform. Overrides the direct values if defined.</input_port>
<input_port name="local">Perform a local transform instead, wrt. the frame of the base_pose. Defaults to false</input_port>
<output_port name="result">The pose with the offset applied as a geometry_msgs::msg::PoseStamped</output_port>
</Action>
<Action ID="GetTransform">
<input_port name="base_pose">The geometry_msgs::msg::PoseStamped pose at the start of the offset</input_port>
<input_port name="target_pose">The geometry_msgs::msg::PoseStamped pose at the end of the offset</input_port>
<input_port name="time">OPTIONAL, rclcpp::Time timepoint to lookup on, if not provided, the current time is used</input_port>
<input_port name="local">OPTIONAL, if true, return t such that `target_pose = base_pose * t`</input_port>
<output_port name="result">The geometry_msgs::msg::Transform offset that transforms base_pose to target_pose</output_port>
</Action>
<Action ID="detection.GetDetection">
<input_port name="detections">An array of detections in the form of a vision_msgs::msg::Detection3DArray</input_port>
<input_port name="idx">The index of the detection to retrieve. Ignored if id is provided</input_port>
<input_port name="id">The id of the detection to retrieve</input_port>
<output_port name="result">The detection result of interest as a vision_msgs::msg::Detection3D</output_port>
</Action>
<Action ID="detection.GetDetectionPose">
<input_port name="detection">A vision_msgs::msg::Detection3D</input_port>
<output_port name="result">The detection converted to a geometry_msgs::msg::PoseStamped</output_port>
</Action>
<Action ID="StringToVector">
<input_port name="string">The string that will be split into a vector of strings</input_port>
<input_port name="delimiter">The delimiter to split the string. Defaults to "","</input_port>
<output_port name="strings">The resulting list of strings after the split</output_port>
</Action>
<!-- ############################### CONDITION NODES ############################## -->
<!-- ############################### CONTROL NODES ################################ -->
<Control ID="PausableSequence">
<input_port name="pause">Whether the system is paused</input_port>
</Control>
<!-- ############################### DECORATOR NODES ############################## -->
<Decorator ID="ForEachTask">
<output_port name="task">The current task being processed</output_port>
<output_port name="workcell">The workcell id assigned to the task</output_port>
</Decorator>
</TreeNodesModel>
</root>