Skip to content

Python package that facilitates the connection to helyOS core via RabbitMQ.

License

Notifications You must be signed in to change notification settings

helyOSFramework/helyos_agent_sdk

Repository files navigation


Logo Logo

helyOS Agent SDK

Methods and data strrctures to connect autonomous vehicles to helyOS.
Explore the docs »

Demo · Report Bug · Request Feature

About The Project

The helyos-agent-sdk python package encloses methods and data structures definitions that facilitate the connection to helyOS core via RabbitMQ.

List of features

  • RabbitMQ client for communication with helyOS core.
  • Support for both AMQP and MQTT protocols.
  • Definition of agent and assignment status.
  • Easy access to helyOS assignments and instant actions through callbacks.
  • SSL support and application-level security with RSA signature.
  • Automatic reconnection to handle connection disruptions.

Install

pip install helyos_agent_sdk

Usage

from helyos_agent_sdk import HelyOSClient, AgentConnector

# Connect via AMQP
helyOS_client = HelyOSClient(rabbitmq_host, rabbitmq_port, uuid=AGENT_UID)

# Or connect via MQTT
# helyOS_client = HelyOSMQTTClient(rabbitmq_host, rabbitmq_port, uuid=AGENT_UID)

helyOS_client.connnect(username, password)

# Check in yard
initial_agent_data = {'name': "vehicle name", 'pose': {'x':-30167, 'y':-5415, 'orientations':[0, 0]}, 'geometry':{"my_custom_format": {}}}
helyOS_client.perform_checkin(yard_uid='1', agent_data=initial_agent_data, status="free")
helyOS_client.get_checkin_result() # yard data

# Communication
agent_connector = AgentConnector(helyOS_client)
agent_connector.publish_sensors(x=-30167, y=3000, z=0, orientations=[1500, 0], sensor= {"my_custom_format": {}})

# ... #

agent_connector.publish_state(status, resources, assignment_status)

# ... #

agent_connector.consume_instant_action_messages(my_reserve_callback, my_release_callback, my_cancel_assignm_callback, any_other_callback)
agent_connector.consume_assignment_messages(my_assignment_callback)
agent_connector.start_listening()

Contributing

Keep it simple. Keep it minimal.

License

This project is licensed under the MIT License