ROS 2 Concepts for OLO¶
SDK v2 is a typed control plane over a live ROS 2 system. You do not need to
write an rclpy or rclcpp node for every script, but the ROS graph and
its conventions still determine what the SDK can observe and control.
Nodes, topics, services, and actions¶
Nodes are processes in the ROS graph. Topics are typed publish/subscribe
streams such as /scan, /odom, or /joint_states. SDK v2 Core can
inspect topics, publish typed messages, subscribe, read the latest message, and
work with node parameters.
Domains and discovery¶
ROS_DOMAIN_ID isolates DDS discovery. Nodes in different domains do not
normally discover one another. The Appliance uses OLO_APL_ROS_DOMAIN_ID to
join the intended domain. One Appliance sees only the ROS graph available in
that domain and network environment.
Namespaces organize multiple robots inside a domain. For example, robot_1
and robot_2 can each expose a relative joint_states topic without
colliding. SDK v2 discovers robot namespaces and uses a robot handle to resolve
relative names:
with Client() as client:
robot_1 = client.robot("robot_1")
robot_2 = client.robot("robot_2")
A leading slash makes a topic absolute; a bare name is relative to the handle’s
namespace. If exactly one robot is discoverable, client.robot() resolves it.
Ambiguous multi-robot graphs require an explicit namespace. The complete rules
are in Robot Namespaces.
Frames and transforms¶
ROS TF describes coordinate frames and transforms between them. The Spatial
service provides the complete transform tree, exact lookups, and
namespace-scoped robot frames. On a robot handle, bare frame names such as
base_link are scoped to the robot while global frames such as world,
map, and odom remain global.
Simulation time¶
Simulations commonly publish /clock and set use_sim_time on
participating nodes. The Appliance has one runtime useSimTime setting used
when it brings up Nav2, MoveIt, and exploration components. Mixing wall-clock
and simulation-time nodes can cause stale transforms, timeouts, or goals that
never progress.