Usando micro ROS: Raspberry Pi Pico con ROS 2 Humble.
""" PARTE CERO Instalando docker y agregando permisos"""
Abre una terminal y corre los siguientes comando para instalar docker, puedes ver la documentación oficial de docker aquí.
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce
sudo systemctl status docker
Instala Thonny para verificar conectividad
sudo apt install python3-tk thonny
Agrega los permisos necesarios con el comando sudo usermod -aG dialout <username>, en mi caso el nombre de usuario es as
sudo usermod -aG dialout as
Reinicia tu raspberry para que se guarden los cambios. Entra a Thonny y verifica que la Raspberry Pi Pico/Dev Machine se conecte correctamente.
""" PARTE UNO Instalando micro ROS """
Ojo, desd este momento, para evitar cualquier problema de instalación de micro ROS con ROS 2 Humble, si no lo tienes automáticamente, cada que abras una terminal, corre el siguiente comando:
source /opt/ros/humble/setup.bash
Instala y corre micro ROS, puedes encontrar la documentación oficial de micro ROS aquí.
sudo apt install cmake g++ gcc-arm-none-eabi doxygen libnewlib-arm-none-eabi git python3
git clone --recurse-submodules https://github.com/raspberrypi/pico-sdk.git $HOME/pico-sdk
echo "export PICO_SDK_PATH=$HOME/pico-sdk" >> ~/.bashrc
source ~/.bashrc
Clona el proyecto usando git y crea archivos de configuración y compila el proyecto con CMake.
git clone -b humble https://github.com/micro-ROS/micro_ros_raspberrypi_pico_sdk.git
cd micro_ros_raspberrypi_pico_sdk
mkdir build
cd build
cmake ..
make -j4
""" PARTE DOS Instalando picotool """
Instala y corre picotool, puedes encontrar la documentación oficial de picotool aquí.
Primero ve al directorio de root con cd ~
cd ~
Ahora sí, iniciamos la instalación.
sudo apt install build-essential pkg-config libusb-1.0-0-dev cmake
sudo cp udev/99-picotool.rules /etc/udev/rules.d/
Clona el proyecto usando git y crea archivos de configuración y compila el proyecto con CMake.
git clone https://github.com/raspberrypi/picotool.git
cd picotool
mkdir build
cd build
cmake ..
make -j4
""" PARTE TRES Flasheando la Raspberry Pi Pico y conectando con ros2 """
Si estás en el directorio de root, accede a picotool build usando cd
cd picotool/build
Presiona el botón de boot de tu Raspberry Pi Pico mientras insertas el cable para entrar a flash mode, suelta el botón y corre el siguiente comando para flashear tu rasp.
sudo ./picotool load /home/as/micro_ros_raspberrypi_pico_sdk/build/pico_micro_ros_example.uf2 -f
Desconecta la Raspberry Pi Pico y vuelve a conectarla de manera normal. Corre el siguiente comando.
sudo docker run -it --rm -v /dev:/dev --privileged --net=host microros/micro-ros-agent:humble serial --dev /dev/ttyACM0 -b 115200
Abre una nueva terminal y sourcea ros2 si es necesario. Con topic list verás el nuevo topic publisher creado, si damos echo veremos que está publicando datos la Raspberry Pi Pico.
source /opt/ros/humble/setup.bash
ros2 topic list
ros2 topic echo /pico_publisher