GitHub repo for FireRover platformen. https://github.com/trondfc/FireRover
Utviklet som en bacheloroppgave hos NTNU i sammarbeid med SINTEF og TBRT
Plattformen skal være en fjernstyrt bil, styrt over mobilnett og utstyrt med kameraer og sensorer. Denne skal kunne brukes av brannvesenet på oppdrag for å sende inn for å skaffe seg oversikt i situasjoner hvor det ikke er trygt å sende inn mennesker, som ved brann i et annlegsområde med gassflasker.
Plattformen er konstruert rundt en Raspberry pi med tilleggsmoduler for mobilnettilkobling, PWM-styring og mer.
Koden til plattformen er laget for WebRTC-tilkobling mellom enhetene, og baserer seg på aiortc biblioteket.
For detaljert infromasjon om systemet, se bacheloroppgaven Utvikling og realisering av 5G-basert, fjernstyrt kjøretøy for brann- og redningstjenesten på ntnu open.
Enable legacy kamera og I2C på Raspberry pien med sudo raspi-config
Last ned github repoet til Raspberry pien og gå inn i mappen.
cd FireRover
Installer nødvendige python-biblioteker med
pip install -r Code/rover_requirements.txt
kopier FireRover.service
og PowerButtons.service
til /lib/systemd/system/
og enable servicene med sudo systemctl enable FireRover.service
og tilsvarende for PowerButtons
For å sette opp pien til å prioritere nettverk fra 5G HATen:
sudo nano /etc/dhcpcd.conf
her må det legges til instillinger for wlan0 og usb0
interface wlan0
metric 300
interface usb0
metric 200
Aiortc biblioteket bennytter seg av en utdatert h264 encoder på Raspberry pi. Derfor må det gjøres forandringer til biblioteket. Dette gjøres enklest ved å kjøre kommandoen:
sudo cp Code/h264.py /home/pi/.local/lib/python3.9/site-packages/aiortc/codecs/h264.py
Denne erstatter filen for h264-encoding med en oppdatert fil.
Restart raspberry pien med sudo reboot
. Om alt fungerte vil bilen komme med tre raske pip ved oppstart.
Last ned github repoet
Installer Python3 på PCen om den ikke har det
Kjør download_packages.bat
for å installere nødvendige python-biblioteker
Kjør main.bat
for å starte programmet
Koden benytter seg av noen forskjellige eksterne tjenester med innloging som må konfigureres før bruk.
Pagekite er en tunneling tjeneste som brukes for å sende HTTP komandoer til bilen ved oppstart. Denne tjenesten må det lages en bruker til og settes opp i client.js. For og lage bruker kan man kjøre pagekite.py koden på raspberry pien med komandoen
python3 pagekite.py 5000 <yourName>.pagekite.me
For ICE servere er det benyttet Twilio. Dette er en teneste med et API kall som returnerer ICE servere og autentikasjon. Mer informasjon om dette ligger i start.py hvor dette brukes.
Coturn er et alternativ til Twilio som ICE server. Dette er et opensorce program som kjører på en raspberry pi