Robobot architecture: Difference between revisions

From Rsewiki
Line 30: Line 30:
The Teensy interface connects the Teensy USB interface and the MQTT protocol.
The Teensy interface connects the Teensy USB interface and the MQTT protocol.


The interface can create log files for most data types. The configuration file robot.ini in svn/robobot/teensy_interface/build controls this.
The interface can create log files for most data types. <!-- The configuration file robot.ini in svn/robobot/teensy_interface/build controls this. -->


The Teensy interface is started from the ''on_reboot.bash'' in the home directory (/home/local)
<!-- The Teensy interface is started from the ''on_reboot.bash'' in the home directory (/home/local) -->
 
See more details in [[Robobot teensy interface]].


==== Mosquitto MQTT server ====
==== Mosquitto MQTT server ====

Revision as of 13:16, 17 January 2025

Back to Robobot

Software block overview

Figure 1. The main hardware building blocks.

Software building blocks

Figure 2. The main software building blocks.

The blocks marked with a blue dot are available in the repository as source code.

Mission app

The mission app block is the 'brain' of the robot.

The mission app is a Python app with a few essential capabilities.

It can subscribe to several messages from the Teensy interface and command the Teensy board to perform actions (like changing the motor voltage).

It attaches to the camera video stream and connects to the IO board (e.g. the start and stop buttons.

The mission app is in svn/robobot/mqtt_python; its main file is mqtt-client.py.

Teensy interface

The Teensy interface connects the Teensy USB interface and the MQTT protocol.

The interface can create log files for most data types.


See more details in Robobot teensy interface.

Mosquitto MQTT server

This Mosquitto server is an open-source MQTT protocol server - see https://mosquitto.org/. This server is running as a service.

Camera streamer

The camera streamer is a small Python app that takes data from the camera and streams the video to socket port 7123.

This means that the stream is also available on Wi-Fi.

See Robobot webcam server for more details

IP-disp

IP_disp is a silent app that is started at reboot (by on_reboot.bash) and has two tasks:

  • Detect the IP net address of the Raspberry and send it to the small display on the Teensy board.
  • Detect if the "start" button is pressed, and start the mission app.

Digital IO

This is the board on top of the Robobot. It provides digital IO and a power supply for external devices.

The IO is connected to the Raspberry PI pins GPIO06 (stop), 13 (start), 16, 19, 20, 21, and 26.

See details in Robobot circuits.

Teensy PCB

The Teensy board is a baseboard used in the more straightforward 'Regbot' robot. This board has most of the hardware interfaces and offers all sensor data to be streamed in a publish-subscribe protocol. All communication is based on clear text lines.

The firmware is in svn/robobot/teensy_firmware_8, compiled with ./compile and uploaded to the Teensy by ./upload. NB! An upload will cut the battery power, so press the power switch during upload.

See details in Robobot circuits.