Table des matières (manuelle)
- username: pi
- password: robotcdf
- Sur votre PC installer rpi-imager:
sudo snap install rpi-imager
. - Lancer
rpi-imager
- Sélectionner Ubuntu 22.04 (Server pour avoir + de ressources)
- Configurer pour avoir le SSH
- Configurer votre Réseau Wi-Fi (utiliser votre partage de connexion téléphone)
- Démarrer la raspberry et vous devriez pouvoir vous connecter et avoir une connexion Internet
- Activer le partage de connexion sur le téléphone
- Se connecter à eduroam sur le téléphone (pour éviter l'utilisation de donnée perso)
- Chercher l'adresse IP de la raspberry (Courage!)
- Se connecter au partage de connexion sur ton PC
- Se connecter à la Raspberry en SSH:
ssh [email protected]
Changer l'adresse IP avec la bonne
- Mettre à jour:
sudo apt update && sudo apt upgrade
- Installer outil de réseau:
sudo apt install -y net-tools
-
Mettre à jour:
sudo apt update && sudo apt upgrade
-
Installer can-utils:
sudo apt install -y can-utils
-
Mettre à jour la configuration firmware:
Ajouter les lignes suivantes à la fin de
/boot/firmware/config.txt
:
dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=8000000,interrupt=25
Le paramètre oscillator correspond au quartz du CAN Transceiver (peut-être différent de 8000000, 16000000 pour PiHat) Le paramètre interrupt correspond au PIN sur la Raspberry qui gère l'interruption CAN
- Tester si l'interface peut-être activée:
sudo ip link set can0 up type can bitrate 125000
En faisant ip a
, vous devriez voir l'interface can0 'UP'.
Le bitrate correspond au débit du bus CAN, ici 125kB/s
- Déboguer l'interface CAN
Regarder si le module est bien chargé: lsmod | grep can
sudo dmesg | grep can
ou sudo dmesg | grep mcp
Si vous avez l'erreur mcp251x spi0.0: Cannot initialize MCP2515. Error=110
. Alors il y a un problème électronique.
Source: https://askubuntu.com/questions/1337826/18-04-server-with-can-bus-and-netplan-configuration
- Ajouter le module can dans ce fichier:
/etc/modules
Modifier le fichier avec votre éditeur préféré: sudo nano /etc/modules
.
Ajouter les lignes suivantes:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
can
can-dev
- Créer un fichier sous
/etc/systemd/network
nommécan.network
avec le contenu suivant:
[Match]
Name=can0
[CAN]
BitRate=125000
[Link]
ActivationPolicy=up
- Redémarrer et vérifier que l'interface est 'UP':
sudo reboot
ip a
- Tester l'interface en envoyant et recevant des données CAN
Dans un terminal: candump can0
, puis dans un autre: cansend can0 123#1122334455667788
.
Vous devriez voir le message apparaitre dans le terminal avec candump.
Si ça ne marche pas, assurer vous que l'électronique est correcte. Documentation/Communication avec le hardware.
On désactive certains services pas très utiles:
sudo systemctl disable systemd-networkd-wait-online.service
sudo systemctl mask systemd-networkd-wait-online.service
Je te conseille de suivre le tuto. Source: https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html
locale # check for UTF-8
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
locale # verify settings
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop
sudo apt install ros-dev-tools
# Replace ".bash" with your shell if you're not using bash
# Possible values are: setup.bash, setup.sh, setup.zsh
source /opt/ros/humble/setup.bash
Je te conseille de rajouter cette ligne dans le ~/.bashrc
à la fin.
- Source ROS2 environment
source /opt/ros/humble/setup.bash
- Créer un espace de travail
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
- Cloner un example pour tester
git clone https://github.com/ros/ros_tutorials.git -b humble`
- Resoudre les dependances
cd ..
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -y
- Compiler l'espace de travail avec colcon From the root of the workspace (~/ros2_ws), run the following command to build the workspace:
colcon build
Je te conseille de compiler sur ton PC puis mettre les fichier compiler sur la Raspberry Pi. Si t'es pas convaincu, tu changeras rapidement d'avis face au temps de compilation sur la Raspi.
Si tu connais le réseau sur lequel la Raspberry a été configurée
- Allumer le partage de connexion configuré pour la Raspi (si téléphone, se connecter en même temps à un wifi pour sauvegarder des données mobiles)
- S'y connecter avec son PC
- Chercher l'adresse IP de la raspberry (Courage!)
- Se connecter à la Raspberry en SSH: ssh [email protected] Changer l'adresse IP avec la bonne
On utilise la commande scp
. Exemple:
scp -r ROS_playground [email protected]:/home/pi/ros2_ws/
.
Cette commande envoie le dossier ROS_playground de manière récursive à la Raspi dans le dossier /home/pi/ros2_ws/
.
On peut également utilisé rsync
pour synchroniser des dossiers. Exemple:
rsync -urltv --delete -e ssh /home/ronan/ClubRobot/Coupe_de_France/Info2024/* [email protected]:/home/pi/ros2_ws