Integration Reference

The supported Python control interface is the Robot wrapper from gather_sdk. ROS applies only to separately provisioned integrator robots.

Gather Robot SDK

from gather_sdk import Robot

Constructor

Robot(
    ecu_host="192.168.4.4",
    ecu_port=502,
    max_linear_mps=0.25,
    max_angular_rps=0.75,
    camera_resolution="HD720",
    camera_fps=30,
)

Core Methods

robot.open() -> None
robot.capture() -> CameraFrame
robot.safety_status() -> SafetyStatus
robot.enable_motors() -> None
robot.drive(linear_mps: float, angular_rps: float) -> None
robot.stop() -> None
robot.disable_motors() -> None
robot.close() -> None

Use with Robot() as robot: so camera and controller cleanup occurs even when project code raises an error.

SafetyStatus

status.estop_ok
status.motors_enabled
status.service_button_0
status.service_button_1
status.service_button_2

estop_ok=True means the physical E-stop circuit reports healthy. Enabling and driving recheck safety and fail closed when health cannot be confirmed.

ROS Integration

Use ROS only when the assigned robot has a separately installed ROS workspace.

Primary guide:

ROS Module (gather_motor)

Published topics:

  • /motor/engaged (std_msgs/msg/Bool)
  • /motor/estop_engaged (std_msgs/msg/Bool)
  • /motor/button_states (gather_motor/msg/ButtonStates)

Subscribed topics:

  • /cmd_vel (geometry_msgs/msg/Twist)
  • /motor/enable (std_msgs/msg/Bool)

Services:

  • /motor/set_lights (gather_motor/srv/SetLights)
  • /motor/reset_service_buttons (gather_motor/srv/ResetServiceButtons)

/motor/estop_engaged=true is a motion-inhibit state. In the Gather SDK, the corresponding developer-facing value is SafetyStatus.estop_ok=false.

Interface Boundaries

  • Use Robot for Python camera, safety, and motion projects.
  • Do not import or configure the controller backend directly.
  • The developer SDK does not include ROS packages.
  • Installed project internals are not public APIs.