Synced files and folders¶
Everything you build on the dashboard is copied to the robot’s disk. That is what lets a robot run tasks without asking the server first, and keep working when it is offline. This page shows what goes where and when.
When files are sent¶
Every time the robot connects, it receives the whole project: trees, environments, scratch files, tasks and code nodes.
While it is connected, every change you save on the dashboard is sent to it within seconds.
The ROS bag recording settings are the exception: they are sent only when you press Save Recording Settings (see ROS bag recording).
What goes where¶
Paths are relative to the package’s install folder <share>, usually
~/xparo_ws/install/xparo/share/xparo, with the launch file’s default
settings (the parameters that move them are in Configuration).
On the dashboard |
On the robot |
|---|---|
Behaviour → Behaviour trees → name |
|
Behaviour → Environments → name |
|
Behaviour → Code nodes → name |
|
Behaviour → Scratch Space → Behaviour tree |
|
Behaviour → Scratch Space → Environment |
|
Behaviour → Scratch Space → Text files |
|
Behaviour → Scratch Space → Properties |
|
Tasks (all of them) |
|
Database → Sensors → ROS Bag Recording |
|
Behaviour → External Plugin Paths |
|
Behaviour → Custom Nodes (inline code) |
|
Trees are stored wrapped as a complete BehaviorTree.CPP file:
<root BTCPP_format="4" main_tree_to_execute="MainTree">
<BehaviorTree ID="MainTree">
<Sequence name="Delivery_run">
...
</Sequence>
</BehaviorTree>
</root>
When the robot is started with xparo_environment:=local and the package
source is in <workspace>/src/xparo, trees and environments are written
into the source folders instead, so you can keep them in git.
From the robot back to the project¶
When the robot connects, it also tells the server which tree, environment and code-node files it has:
A new file you create on the robot in
custom_behaviors/custom_aiml/,custom_envs/custom_maps/orcustom_behaviors/custom_node_files/<language>/is added to the project. A new code-node file must look like a node (for example a Python file with aCustomBTNodeclass); helper files are left alone.A file that exists in both places: the project’s version is sent to the robot when it connects, and replaces any edits made on the robot’s disk in the meantime. Make changes to existing files on the dashboard.
If the project and the robot each have a different new version of the same file, nothing is overwritten: the Behaviour page shows a conflict banner where you choose which version to keep.
Files the robot keeps for itself¶
The robot’s own credential, the Files tool’s folder, logs and outgoing
messages live next to its Python code, not in <share>; see
What the robot keeps on its own disk.