RaspberryPi for Robotics
The infamous, the inevitable, whatever your next project is if it does not involve Raspberry Pi you are missing out. We use Raspberry Pi as the central brain that runs the robot software and so by building INNOBOT you can learn how to use Raspberry Pi for Robotics application.
Raspberry Pi and Ubuntu Focal and Real-time (RT_PREEMPT) Kernel
- Instrukce z ROS Realtime group github
Raspberry setup (odzkoušeno na RPi 4) - Ubuntu Server 20.04.05 LTS 64-bit
Pomocí RPI Imager naisntalovat na SD kartu (ozkoušeno s 32GB) Ubuntu Server 20.04.05 LTS 64-bit: Raspberry Pi Generic (64-bit ARM) preinstalled server image
Po zapsání Ubuntu na SD kartu editni soubor
network-config
a doplňWIFI-NAME
aWIFI-PASSWORD
- pro headless start (bez klávesnice a myši, jen pomocí ssh):
version: 2
ethernets:
eth0:
dhcp4: true
optional: true
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"WIFI-NAME":
password: "WIFI-PASSWORD"
po isntalaci UBUNTU, pokud je problém se síťovýcm připojením. Konfigurační soubor pro síťové adaptéry
/etc/netplan/50-cloud-init.yaml
network:
ethernets:
eth0:
dhcp4: true
optional: true
version: 2
wifis:
wlan0:
optional: true
access-points:
"WIFI-NAME":
password: "WIFI-PASSWORD"
dhcp4: truev případě změny konfiguračního souboru aplikovat
netplan
příkazy. Wifi se zprovozní až po resratu. V GUI UBUNTU se nezobrazují sítě protože není instalovný GUI manager. Ubuntu server nemá standartně GUI,sudo netplan generate
sudo netplan try
sudo netplan apply
sudo reboot
ip a
Vysuň SD kartu z PC a vlož do RPi:
Připoj napíjecí kabel a nech inicializovat:
cca po 2-3 minutách restartuj RPi (výtahni napájecí kabel a připoj zpátky):
- RPi se nepodaří napoprvé při inicializace Ubuntu Server připojit na WiFi - proto nutný reset
Najdi RPi na síti (z PC - Windows):
6.1. naisnatlovat nmap
6.2. Napiš příkaz
nmap -sn 192.168.1.0/24
6.3. Napiš si IP adresu
- pokud nmap nenašel žádné zařízení potom se RPi nepodařilo připojit na k síti
- zkus restartovat RPi (opakuj krok 5)
- pokud stále nic tak potom byla pravděpodobně chyba ve jménu a heslu k WiFi - opakuj krok 2
Připoj se k RPi pomocí ssh z PC - Powershell anebo PuTTy
- default přihlašovací údaje pro Ubuntu Server jsou
ubuntu/ubuntu
- po prvním připojení se RPi je potřeba změnit heslo - propt je od RPi automaticky
- po změně hesla tě Ubuntu odpojí - připoj se znovu přes ssh s novým heslem
- default přihlašovací údaje pro Ubuntu Server jsou
Update your system. After that you need to connect to the Internet and update your system
sudo apt-get update
sudo apt-get upgrade
sudo rebootInstall Ubuntu Desktop
sudo apt-get update && sudo apt-get upgrade && sudo apt-get install ubuntu-desktop
install Midnight Commander (mc)
sudo apt-get install mc
Installation of recommended tools
- Double Commander
sudo apt install doublecmd-gtk
- Double Commander
Real-time (RT_PREEMPT) Kernel
Download ready-to-use RT Kernel deb packages from GitHub Build RT_PREEMPT kernel for Raspberry Pi 4, release for
ubuntu: focal
wget https://github.com/ros-realtime/linux-real-time-kernel-builder/releases/download/5.4.195-rt74-raspi-arm64-lttng/RPI4.RT.Kernel.deb.packages.zip
Unzip RT Kernel deb packages
unzip RPI4.RT.Kernel.deb.packages.zip
System information before new kernel inmstalation
uname -a
Linux ubuntu 5.4.0-1042-raspi #46-Ubuntu SMP PREEMPT Fri Jul 30 00:35:40 UTC 2021 aarch64 aarch64 aarch64 GNU/LinuxInstall new kernel
sudo dpkg -i linux-image-*.deb
sudo rebootAfter reboot you should see a new RT kernel installed and real-time enabled
uname -a
Linux ubuntu 5.4.195-rt74-raspi #1 SMP PREEMPT_RT Thu Jul 28 06:58:49 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
cat /sys/kernel/realtime
1
Troubleshooting:
Pokud výpis z uname -v
neobsahuje PREEMPT_RT, ale myslíš, že jsi vše udělal OK podle instrukcí, potom RPi ignorovalo nový kernel a je potřeba mu ho vnutit:
Je nutno upravit vmlinuz a initrd.img:
Zadej pojednom tyhle příkazy a doplň instalovanou verzi kernelu:
v /boot jsou soubory s názvy jako
config-5.4.0-1053-raspi
aconfig-5.3.162.rt68
5.4.0-162-rt68
odpovídá<kernel-version-rt>
vln
příkazech dole5.4.0-1053-raspi
odpovídá<kernel-version>
vln
příkazech dole- pokud máš novější kernel a v názvy jsou jiné tak v
ln
příkazech zadej svoji verzi
Nacpi RPi nový kernel silou:
sudo ln -s -f /boot/vmlinuz-<kernel-version-rt> /boot/vmlinuz
sudo ln -s -f /boot/vmlinuz-<kernel-version> /boot/vmlinuz.old
sudo ln -s -f /boot/initrd.img-<kernel-version-rt> /boot/initrd.img
sudo ln -s -f /boot/initrd.img-<kernel-version> /boot/initrd.img.old
cd /boot
sudo cp vmlinuz firmware/vmlinuz
sudo cp vmlinuz firmware/vmlinuz.bak
sudo cp initrd.img firmware/initrd.img
sudo cp initrd.img firmware/initrd.img.bak
sudo reboot
Připoj se zpět na RPi a vyzkoušej uname -v
Remote desktop connections
Popstupovat podle návodu Install Xrdp On Ubuntu 20, nespouštět firewall
- Jsou to tyto příkazy:
sudo apt-get update -y
sudo apt install xubuntu-desktop
sudo apt install xrdp
sudo systemctl status xrdp
sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp - Create a file called .xsession in the home folder
echo -e "startxfce4\n" >> ~/.xsession
chmod +x ~/.xsession
Troubleshooting:
light-locker
Po připojení ke vzdálené ploše :
ProblemType: Crash
Package: light-locker 1.8.0-1ubuntu1odinstalovat loght-locekr:
sudo apt-get remove light-locker
sudo systemctl restart xrdpLog files
xRDP writes some log files into your system. We would recommend you to have a look at these log files. These logs files might provide useful insight about the problem you are encountering.
You should look at the following files:
cat ~/.xsession-errors
cat /var/log/xrdp.log
cat /var/log/xrdp-sesman.log