Skip to main content

Putting it all together

Step 1: update all modules

Now that the the WebController is set up we want to start the rover, but first we must make sure all modules are up-to-date. The following command will download the latest binaries with their service configurations.

sudo rover update

If any errors occur during update notify the daily supervisors.

Step 2: set up the transceiver

Next, we must make sure the Debix sends its data to our forwarding server. For this we must make a custom service.yaml for the Transceiver (we don't want to simply edit ~/mods/mod-Transceiver/service.yaml because the rover update command will overwrite those files). First, copy the existing service.yaml to a new file cp ~/mods/mod-Transceiver/service.yaml ~/custom-transceiver-service.yaml. Then, open the file in your favorite terminal text editor with vim ~/custom-transceiver-service.yaml. Change "localhost" in the last line to the IP of your laptop or wherever the forwarding server was setup in the previous step.

~/custom-transceiver-service.yaml
...

options:
- name: forwardingserver-address
type: string
mutable: false
default: http://localhost:7500 # Change this to the IP address that of the forwarding server

Step 3: start all programs

Now everything is set up and ready to be started. We must edit one more file before we can start the rover. The ~/rover.yaml defines which programs should be run. So take the following example, we define four modules and specify the command use to start their respective programs. Here we must specify our custom transceiver service.yaml that we made in the previous step. Files inside of the ~/mods/ directory will be overwritten with the rover update command, however our rover.yaml will persist with out changes.

- name: System Manager
cmd: mod-SystemManager -service-yaml /home/debix/mods/mod-SystemManager/service.yaml -debug

- name: Actuator
cmd: mod-Actuator -service-yaml /home/debix/mods/mod-Actuator/service.yaml -debug

- name: Controller
cmd: mod-Controller -service-yaml /home/debix/mods/mod-Controller/service.yaml -debug

- name: Imaging
cmd: mod-Imaging -service-yaml /home/debix/mods/mod-Imaging/service.yaml -debug

- name: Transceiver
cmd: mod-Transceiver -service-yaml /home/debix/custom-transceiver-service.yaml -debug

In order to receive the live data we must also start the transceiver module, simply uncomment the last two lines of you rover.yaml. Before we start the rover, it's important to note that these programs will be run as systemd services. Which means they will automatically get restarted if they exit. Additionally, every time a program exits you will here a beep sound from the Rover.

Now we can finally start it with sudo rover start. You should see the Rover drive and plot its data to your WebController.