Overview
Purpose
The controller
service uses a simple PID controller to make steering and acceleration decisions based on pre-processed track edges it receives.
Installation
To install this service, the latest release of roverctl
should be installed for your system and your Rover should be powered on.
- Using roverctl
- Using roverctl-web
- Install the service from your terminal
# Replace ROVER_NUMBER with your the number label on your Rover (e.g. 7)
roverctl service install -r <ROVER_NUMBER> https://github.com/VU-ASE/controller/releases/latest/download/controller.zip
- Open
roverctl-web
for your Rover
# Replace ROVER_NUMBER with your the number label on your Rover (e.g. 7)
roverctl -r <ROVER_NUMBER>
- Click on "install a service" button on the bottom left, and click "install from URL"
- Enter the URL of the latest release:
https://github.com/VU-ASE/controller/releases/latest/download/controller.zip
Follow this tutorial to understand how to use an ASE service. You can find more useful roverctl
commands here
Inputs
As defined in the service.yaml, this service depends on the following read streams:
path
, exposed by animaging
service:- From this stream, it will read a
CameraSensorOutput
message wrapped in aSensorOutput
wrapper message.
- From this stream, it will read a
Outputs
As defined in the service.yaml, this service exposes the following write streams:
decision
:- To this stream,
ControllerOutput
messages will be written. Each message will be wrapped in aSensorOutput
wrapper message
- To this stream,