Raspberry Pi Pi4B + построение среды картографирования лидара SLAM (Ubuntu20.04.3 + ROS Noetic)
Raspberry Pi Pi4B + построение среды картографирования лидара SLAM (Ubuntu20.04.3 + ROS Noetic)

оригинал: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. Запишите процесс установки.

01  Запись образа Ubuntu

Подготовьте плату PI4B, SD-карту, устройство чтения карт USB, монитор, неограниченную клавиатуру и мышь, а также компьютер для записи. Здесь я использую ноутбук для разработки Ubuntu.

1.1 Подготовьте программное обеспечение к записи

а. Установите Raspberry Pi Imager.

Установите официальное программное обеспечение для записи Raspberry Pi Raspberry Pi Imager. Я использую сам Linux. Вы можете установить его напрямую с помощью следующей команды:

Язык кода:javascript
копировать
sudo snap install rpi-imager

Другие операционные системы могут сами скачать соответствующие версии:

  • Raspberry Pi Imager as a deb package
  • Raspberry Pi Imager for Windows
  • Raspberry Pi Imager for macOS

После установки приложения это будет значок Raspberry Pi. Найдя его, запустите:

1.2 Запись образа

а. Выберите изображение

Нажмите «ВЫБРАТЬ ОС», выберите «Другая ОС общего назначения» — «Ubuntu» — «Ubuntu Server 20.04.3», выберите версию Arm64 (соответствующий файл образа будет загружен автоматически, отдельно его скачивать не нужно) :

б. Выберите SD-карту.

Нажмите «ВЫБРАТЬ STOGAGE», выберите SD-карту для записи и нажмите «ЗАПИСАТЬ».

*Примечание: Скорость загрузки и стрельбы здесь очень медленная. По ощущениям это занимает минимум 1-2 часа. Я уже не выдержал и уснул на следующее утро и увидел, что стрельба завершена. ..

1.3 Инициализация системы

а. Пароль инициализации

Вставьте SD-карту в pi4, подключите клавиатуру, мышь и монитор и запустите систему. Исходное имя пользователя и пароль — Ubuntu. Пароль будет принудительно изменен при первом входе в систему.

Вы также можете создать собственного пользователя:

Язык кода:python
кодКоличество запусков:0
копировать
# Добавить рабочего пользователя
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

Поскольку установлена ​​серверная версия, для облегчения работы нам также необходимо установить десктоп:

Язык кода:javascript
копировать
# возобновлять
sudo apt update
sudo apt upgrade
# Установить рабочий стол
sudo apt install -y ubuntu-desktop

1.4 Удаленное управление

а. Удаленный рабочий стол

После настройки вики в настройках скачайте и установите версию nomachine Arm64 с официального сайта. После этого можно отключиться от монитора, клавиатуры и мыши, проверить IP через роутер и напрямую работать по ssh или nomachine.

б. Удаленная сеть.

Вы также можете установить ZeroTier, войти в систему и создать частную сеть. После присоединения к плате вы можете напрямую подключиться к плате в сети, отличной от локальной сети:

Язык кода:python
кодКоличество запусков:0
копировать
# Установка Linux следующим щелчком мыши
curl -s https://install.zerotier.com | sudo bash
# Присоединяйтесь к созданной вами частной сети
zerotier-cli join a09acf02339e3f97

Настройте «сетевой» автоматический сетевой прокси-сервер и настройте адрес файла .pac, чтобы в дальнейшем вы не смогли загрузить определенные пакеты.

02  Установить РОС Noetic

2.1 Установка ros noetic

Поскольку melodic поддерживает только 18.04, а ubuntu20.04 в ROS1 поддерживает только noetic, поэтому мы устанавливаем noetic версию здесь:

Язык кода:python
кодКоличество запусков:0
копировать
# Настройка источника 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

2.2 Установите среду компиляции и протестируйте лидар

Язык кода:javascript
копировать
# Подготовьте каталог компиляции
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 локально

2.3 Тестовое картографирование ударов

Ссылка: Операционная система робота ROS — использование лидара RpLidar A1 для позиционирования и картографирования SLAM № 4. Использование лидара для позиционирования и картографирования SLAM.

Язык кода:javascript
копировать
# Инструменты позиционирования и управления картой
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

03  Подвести итог

В процессе установки точка доступа 4G для мобильного телефона была подключена на протяжении всего процесса, за исключением raw.githbusercontent.com. Установка прошла относительно гладко, поэтому, если у вас возникли различные проблемы с сетью, обратите внимание на три решения:

1. Используйте Интернет с научной точки зрения, чтобы избежать недоступных доменных имен;

2. Точки доступа мобильных телефонов 4/5G имеют более высокую скорость сети (весь трафик 2-3G снижается);

3. Если доменное имя не удается найти, что бы вы ни делали, проверьте IP-адрес с другого компьютера и настройте IP-адрес непосредственно в /etc/hosts, пропуская процесс DNS.

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.