оригинал:Raspberry Pi Pi4B + построение среды картографирования лидара SLAM (Ubuntu20.04.3 + ROS Noetic)
Когда я раньше изучал ros, система ubuntu18.04, установленная на плате nvidia jetson nano, была относительно нормальной, но система Raspberry, установленная на плате pi4b, имела различные проблемы с зависимостями. Недавно я хочу в полной мере использовать следующие несколько плат pi4b, и я неоднократно пробовал официальную/неофициальную версию ubuntu18.04.5+ROS Melodic pi4, но в конце концов я застрял на таких зависимостях, как картографический сервер или рвиз. Наконец, тест установки прошел успешно с использованием Pi4B + Ubuntu20.04.3 + ROS Noetic + RpLidar. Запишите процесс установки.
Подготовьте плату PI4B, SD-карту, устройство чтения карт USB, монитор, неограниченную клавиатуру и мышь, а также компьютер для записи. Здесь я использую ноутбук для разработки Ubuntu.
Установите официальное программное обеспечение для записи Raspberry Pi Raspberry Pi Imager. Я использую сам Linux. Вы можете установить его напрямую с помощью следующей команды:
sudo snap install rpi-imager
Другие операционные системы могут сами скачать соответствующие версии:
После установки приложения это будет значок Raspberry Pi. Найдя его, запустите:
Нажмите «ВЫБРАТЬ ОС», выберите «Другая ОС общего назначения» — «Ubuntu» — «Ubuntu Server 20.04.3», выберите версию Arm64 (соответствующий файл образа будет загружен автоматически, отдельно его скачивать не нужно) :
б. Выберите SD-карту.
Нажмите «ВЫБРАТЬ STOGAGE», выберите SD-карту для записи и нажмите «ЗАПИСАТЬ».
*Примечание: Скорость загрузки и стрельбы здесь очень медленная. По ощущениям это занимает минимум 1-2 часа. Я уже не выдержал и уснул на следующее утро и увидел, что стрельба завершена. ..
Вставьте SD-карту в pi4, подключите клавиатуру, мышь и монитор и запустите систему. Исходное имя пользователя и пароль — Ubuntu. Пароль будет принудительно изменен при первом входе в систему.
Вы также можете создать собственного пользователя:
# Добавить рабочего пользователя
sudo adduser work
# Добавить разрешения
sudo vim /etc/sudoers
work ALL=(ALL) ALL
sudo usermod -aG sudo,adm,dialout,cdrom,floppy,audio,dip,video,plugdev,lxd,netdev work
# Просмотр разрешений
id work
# Сменить пользователя
su work
Поскольку установлена серверная версия, для облегчения работы нам также необходимо установить десктоп:
# возобновлять
sudo apt update
sudo apt upgrade
# Установить рабочий стол
sudo apt install -y ubuntu-desktop
После настройки вики в настройках скачайте и установите версию nomachine Arm64 с официального сайта. После этого можно отключиться от монитора, клавиатуры и мыши, проверить IP через роутер и напрямую работать по ssh или nomachine.
Вы также можете установить ZeroTier, войти в систему и создать частную сеть. После присоединения к плате вы можете напрямую подключиться к плате в сети, отличной от локальной сети:
# Установка Linux следующим щелчком мыши
curl -s https://install.zerotier.com | sudo bash
# Присоединяйтесь к созданной вами частной сети
zerotier-cli join a09acf02339e3f97
Настройте «сетевой» автоматический сетевой прокси-сервер и настройте адрес файла .pac, чтобы в дальнейшем вы не смогли загрузить определенные пакеты.
Поскольку melodic поддерживает только 18.04, а ubuntu20.04 в ROS1 поддерживает только noetic, поэтому мы устанавливаем noetic версию здесь:
# Настройка источника ros
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
# Добавить открытый ключ
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
# или curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
# Установить рос Десктопная версия
sudo apt update
sudo apt install ros-noetic-desktop #Desktop полная версия-desktop-full Версия для настольных компьютеров-рабочий стол Базовая версия-ros-base;
# Установить пакет Slam
sudo apt install ros-noetic-slam-gmapping ros-noetic-map-server
# Настройте среду
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
# Установите зависимости компиляции
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
# инициализация rosdep
sudo apt install python3-rosdep
sudo vim /etc/hosts
185.199.110.133 raw.githubusercontent.com
sudo rosdep init
rosdep update
# Подготовьте каталог компиляции
mkdir -p ~/catkin_ws/src
cd catkin_ws/src/
# Клон РПЛИДАР Библиотека ROSкод (не забудьте добавить ssh платы ключ к гитхабу)
git clone git@github.com:robopeak/rplidar_ros.git
# компилировать
cd ~/catkin_ws
catkin_make
# source
echo "source /home/ubuntu/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
echo $ROS_PACKAGE_PATH
# Запустить узел лидара
roscore
rosrun rplidar_ros rplidarNode
# Просмотр данных лидара
rostopic list
rostopic echo /scan
# Визуализация данных облака точек
roslaunch rplidar_ros view_rplidar.launch
# Если вы просматриваете облака точек на ПК, необходимо отключить запуск rplidarNode.
roscd rplidar_ros/launch/
cp view_rplidar.launch view_rplidar_robot.launch # Изменить файл робота,Закомментируйте rplidar.launch,Чтобы запретить ПК запускать узел rplidar локально
Ссылка: Операционная система робота ROS — использование лидара RpLidar A1 для позиционирования и картографирования SLAM № 4. Использование лидара для позиционирования и картографирования SLAM.
# Инструменты позиционирования и управления картой
sudo apt install ros-noetic-fake-localization ros-noetic-map-server
# hector Никаких данных одометра не требуется, карты можно строить только на основе лазерной информации.
sudo apt install ros-noetic-hector-slam ros-noetic-hector-slam-launch
# gmapping Для построения карты требуется информация IMU+одометр+лазер.
sudo apt install ros-noetic-gmapping ros-noetic-slam-gmapping
# karto
sudo apt install ros-noetic-open-karto ros-noetic-slam-karto
# Тест на отображение SLAM
roslaunch rplidar_ros view_slam.launch
# Визуализация на ПК
roslaunch rplidar_ros view_slam_robot.launch #Оставить только rviz узел может
# сохранить карту
roscd rplidar_ros/
mkdir map -p && cd map
rosrun map_server map_saver -f map
В процессе установки точка доступа 4G для мобильного телефона была подключена на протяжении всего процесса, за исключением raw.githbusercontent.com. Установка прошла относительно гладко, поэтому, если у вас возникли различные проблемы с сетью, обратите внимание на три решения:
1. Используйте Интернет с научной точки зрения, чтобы избежать недоступных доменных имен;
2. Точки доступа мобильных телефонов 4/5G имеют более высокую скорость сети (весь трафик 2-3G снижается);
3. Если доменное имя не удается найти, что бы вы ни делали, проверьте IP-адрес с другого компьютера и настройте IP-адрес непосредственно в /etc/hosts, пропуская процесс DNS.