edit 🚀

Triggers, Events, And Actions on Rocos

Wed Sep 30 2020 00:00:00 GMT+0000 (Coordinated Universal Time)

The Rocos Platform Events engine allows operators to be notified in real-time when important things happen on your robots. When operating robots at scale, teams need to rely on a robust, reactive messaging system to manage robots by exception, improving operational efficiency, and allowing one operator to coordinate multiple robots at once. 

You can configure actions to be triggered based on values in your robot’s telemetry. So, if your battery voltage sensor drops below a value you’ve set, then trigger an action, which might be to send you a SMS, post a message to Slack, or to call any HTTP-based API, the choice is yours! 

Our Events system provides you with the ability to detect the occurrence of a particular condition onboard a robot, and to automatically take action in response to that condition.

For example:

  • Page your support team when a wheeled robot detects that it has become stuck.
  • Notify a PLC controlling a conveyor belt when a robot completes loading a carton onto the belt.
  • Send a drone back to its charging station when the battery drops below a certain threshold.

The Event streams themselves can be viewed in the Live Data Viewer and can be captured and accessed in Storage Streams.


Event definitions can be created either for a single robot, or with a Robot Profile. Event definitions applied to a Robot Profile will apply the event to all the robots within that profile - i.e. you have the ability to configure an event just once for every robot with that profile. Events definitions are shown on the "Events" tab.

When creating an event definition you configure a trigger - the conditions which must be met for the event to fire. You do this by telling the platform which properties on specific telemetry streams you want to evaluate, and then when the event definition is published, this trigger is deployed to the robot and evaluated by the agent without consuming any precious bandwidth.


You have full control over the dispatch interval for the event - they will only be created and dispatched by the agent to the platform if sufficient time has elapsed since the last time that event was dispatched. For example, you can increase the dispatch interval to prevent multiple events being dispatched to the platform in response to a single error or occurrence. If the agent does not have internet connectivity, events will be queued for dispatch but actions will not be executed, as these are executed by the platform. Events will be queued for up to 48 hours, or until the agent is restarted. 


By default, events contain a copy of the payload from the source message which caused the event to be created. This allows you to capture data associated with the event for later evaluation and analysis. However, events with large payloads may result in increased network and consumption costs. If you want to raise an event based on a large source message, or don't care to retain the source message's data, then you can configure the event to not include the source message in its payload.


Each event definition may specify a single action which is automatically executed by the platform when an event is dispatched. The following types of actions are currently available:

  • Call an HTTP endpoint
  • Invoke a Command on a robot
  • Take no action

Taking no action can be useful if you just want the occurrence to be recorded, but do not need to immediately respond.

Get drones working for your business.