Missions
Webinar Available
Learn more about missions by watching the on-demand webinar: Build Connected Robots with NVIDIA Isaac Dispatch and Client
Architecture
What is a Mission
A mission is a series of tasks to be completed by a given robot. It is represented as a behavior tree generated from the mission_tree
, which is a list of task nodes that can be performed on the robot. The advantage of using a mission tree instead of an array of steps, is that it allows the robot to react to all sorts of situations. The behavior tree has an implicit sequence node as its root, which is also named “root”.
Each mission tree node has four possible states: IDLE
, RUNNING
, SUCCESS
, and FAILURE
. Supported mission tree nodes are: sequence, selector, route, and action:
Field |
Type |
Parameters |
Description |
---|---|---|---|
name |
|
None |
A unique name to give the node. If not specified, it will be automatically set to the index of the node in the list |
parent |
|
None |
The parent of the node. If not specified, it will be the “root” node. |
sequence |
|
None |
Executes children nodes in order. If the child node currently running completes with |
selector |
|
None |
Executes children nodes in order. If the child node currently running completes with |
action |
|
|
Performs some generic, named action on the robot. |
route |
|
|
Instructs the robot to travel a given route. The robot may or may not visit intermediate waypoints, but the final waypoint must be visited. Will return either |
The difference between the sequence and selector node:
a sequence node attempts to run all the child nodes as long as
SUCCESS
is being returned and instantly returnsFAILURE
on a node failing*a selector node attempts to get a single
SUCCESS
, and on failure, keeps trying child nodes until it getsSUCCESS
or exhausts all child nodes.
Note: All mission tree nodes are mutually exclusive – a sequence node cannot also be a selector node, an action node cannot also be a route node.
How it Works
Each route or action mission tree node is translated into a separate VDA5050 Order message. Each of the waypoints in the route mission tree node is an Order node. They are appended together to form an Order message. For the action mission tree node, the action is attached to the first node of the Order, which is the one corresponding to the current pose of the robot. The Order messages are then sent out sequentially, based on the progression of the behavior tree. An example is shown in the following figure:
In this example, the mission is shown on the left. The robot is asked to go to a pick-up point and execute the action of picking up a book. After the action is executed successfully, the robot jumps to the next route_fallback
selector node. If it fails to go to the drop-off point, then it goes back to the previous point and drops off the book. Otherwise, it drops off the book at the final goal point. The corresponding VDA5050 Order messages are shown on the right.