Skip to content

Charlemagne2017/is-robot-controller

 
 

Repository files navigation

Robot Controller Service

Fuse the robot pose measured by all the available cameras and use it to compute the velocity commands that need to be sent to the robot in order to execute a given task.

Dependencies:

This service depends on the following services:

  • is-broker-events: Used to check which cameras are available.
  • is-frame-transformation: Used grab the transformations from the robot frame to the world frame using the available cameras. Note that the transformations should be available somehow, this may imply a dependency on other services like is-aruco-detector, for instance.
  • is-robots: This service expects the robot to have a gateway compliant with the standard API. Particularly, it expects the robot to have RobotGateway.{robot_id}.SetConfig implemented.

Events:

⇒ Triggered By Triggers ⇒ Description
📨 topic: RobotController.{robot_id}.SetTask
💎 schema: RobotTaskRequest
📨 topic: {request.reply_to}
💎 schema: RobotTaskReply
[RPC] Configure the current task to be executed.
🕔 interval: {RobotTask.rate} 📨 topic: RobotController.{robot_id}.Progress
💎 schema: RobotControllerProgress
[Stream] Periodically publishes the progress of the current task being executed. The period is determined by the task sampling rate.
{robot_id} = robot id passed in the configuration file.
{RobotTask.rate} = rate configured by the user when making a SetTask RPC.

Configuration:

The behavior of the service can be customized by passing a JSON configuration file as the first argument, e.g: ./service config.json. The schema and documentation for this file can be found in src/is/robot-controller/conf/options.proto. An example configuration file can be found in etc/conf/options.json.

Examples:

An example on how to configure a task and then watch its progress is provided by the python script in examples/client.py.

About

Robot controller service

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 78.4%
  • Shell 6.7%
  • Python 6.1%
  • CMake 5.0%
  • Dockerfile 3.8%