This is an old revision of the document!
The FPV Camera serves a video stream as the first person view (FPV) of the Robot. This makes it possible to see the position of the Robot and anything in its way.
A 3d Printed mount for the bosh40x40 profile was made to stick a polie on it so that the camera gets a better view. The camera is set in a case which was designed with a litte roof to prevent raindrops on the lense.
[picture of 40×40 clip and camera case]
The following hardware is used for capturing and broadcasting the video stream:
The SD-Card has been flashed with an Ubuntu 20.10 arm64-raspi OS. The Pi is configured with the following user:
Its connectable via ethernet or build in wifi module.
An initial update has been run:
sudo apt update && sudo apt upgrade
Also some config changes have been made:
sudo nano /boot/firmware/config.txt [gpu_mem=512 ; start_x=1]
Using v4l2m2m encoder to have arm64 hardware support to efficiently encode a efficient h.265 stream which is sent via rtmp to a server which reencodes to hls to view video stream in a browser.
ffmpeg is used for data conversion:
cd/home/pi/ mkdir -p ~/ffmpeg_sources ~/ffmpeg_build mkdir -p ~/bin
(installing to /home/pi/bin/ to avoid conflicts with the system package folder)
According to https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu a lot of dependancies have to be installed beforehand:
sudo apt-get update -qq && sudo apt-get -y install \
autoconf \
automake \
build-essential \
cmake \
git-core \
libass-dev \
libfreetype6-dev \
libgnutls28-dev \
libsdl2-dev \
libtool \
libva-dev \
libvdpau-dev \
libvorbis-dev \
libxcb1-dev \
libxcb-shm0-dev \
libxcb-xfixes0-dev \
meson \
ninja-build \
pkg-config \
texinfo \
wget \
yasm \
zlib1g-dev \
libunistring-dev