Core¶
Core is the ROS-facing API surface: namespace discovery, topic inspection, publish/subscribe, image helpers, parameter handling, and service calls.
Image, CompressedImage, and PointCloud2 topics carry their data as native protobuf bytes in both directions. Other ROS messages use the generic structured representation.
Core topic/param wrapper over olo.core.v1.Core.
Client interfaces
- class olo.core.Core[source]¶
Bases:
object- call_service(service, request=None, *, timeout=10.0)[source]¶
Call a ROS service and return the response as a plain dict.
- get_image(topic, *, timeout=5.0)[source]¶
Wait for the next image on a topic and decode it into an
Image.Handles both
sensor_msgs/msg/Imageandsensor_msgs/msg/CompressedImagetransparently, driven bytopic.msg_type.
- get_latest(topic, *, timeout=5.0)[source]¶
Wait for the next message on a topic and return it as a raw dict. It resolves once a message is published (or the timeout elapses). Use getImage to decode image topics into an Image.
- get_params(node, names, *, timeout=10.0)[source]¶
Read ROS parameters from a node.
Values come back as natives matching the ROS parameter type (bool, int, float, str, bytes, or a homogeneous list). Unset parameters are returned as None.
- handle(namespace=None)[source]¶
Return a namespace-scoped core handle.
- Return type:
- Parameters:
namespace (str | None)
- list_robot_namespaces(*, timeout=10.0)[source]¶
List available robot namespaces.
- Return type:
- Parameters:
timeout (float)
- list_services(*, timeout=10.0)[source]¶
List available ROS services.
- Return type:
- Parameters:
timeout (float)
- publish(topic, message, *, timeout=10.0)[source]¶
- Overloads:
self, topic (TopicInfo), message (Dict[str, Any]), timeout (Optional[float]) → None
self, topic (TopicInfo), message (Image), timeout (Optional[float]) → None
- Parameters:
- Return type:
None
Publish a ROS message on a topic.
messageis either a plain ROS message dict or anImage. When anImageis given, it is encoded according totopic.msg_type(sensor_msgs/msg/Image-> raw,sensor_msgs/msg/CompressedImage-> compressed), mirroring howget_latest()decodes those types into anImage.
- set_params(node, params, *, timeout=10.0)[source]¶
Write ROS parameters on a node.
The Python type of each value determines the ROS parameter type (bool, int, float, str, bytes, or a homogeneous list thereof).
- class olo.core.CoreHandle[source]¶
Bases:
objectNamespace-scoped handle for common core operations.
- call_service(service, request=None, *, timeout=10.0)[source]¶
Call a service resolved against this namespace.
- get_image(topic, *, timeout=5.0)[source]¶
Wait for the next image on a topic resolved against this namespace.
- get_latest(topic, *, timeout=5.0)[source]¶
Wait for the next message on a topic resolved against this namespace.
- get_params(node, names, *, timeout=10.0)[source]¶
Read ROS parameters from a namespace-relative node.
- list_services(*, timeout=10.0)[source]¶
List services visible through this handle using namespace-relative names.
- Return type:
- Parameters:
timeout (float)
- list_topics(*, timeout=10.0)[source]¶
List topics visible through this handle using namespace-relative names.
- publish(topic, message, *, timeout=10.0)[source]¶
- Overloads:
self, topic (TopicInfo), message (Dict[str, Any]), timeout (Optional[float]) → None
self, topic (TopicInfo), message (Image), timeout (Optional[float]) → None
- Parameters:
- Return type:
None
Publish a ROS message on a topic resolved against this namespace.
- set_params(node, params, *, timeout=10.0)[source]¶
Write ROS parameters on a namespace-relative node.
- class olo.core.Publisher[source]¶
Bases:
objectLightweight handle for repeated Publish calls (stateless on the appliance).
- class olo.core.Subscription[source]¶
Bases:
objectContext-managed sync iterator over a Core.Subscribe server stream.
Types
- class olo.core.RobotNamespaces[source]¶
Bases:
objectRobot namespaces available through the appliance.
- __init__(has_global=False, namespaces=())¶
Import from olo/core:
Client interfaces
Core — service wrapper for low-level Core RPCs.
CoreHandle — namespace-scoped helper for common robot operations.
Publisher — reusable topic publisher.
Subscription — async iterable subscription stream.
Types
TopicInfo — topic name and ROS message type.
ServiceInfo — service name and ROS service type.
RosMessage — ROS-shaped object; binary sensor fields are
Uint8Arrayvalues.Image — dependency-free image payload.
CallOptions — per-call timeout options.
ParamNative— native value union for ROS parameters.RobotNamespaces — namespace discovery result and default-resolution helper.
Images and namespaces