Оглавление:

Установите ROS Kinetic, TurtleBot3, Raspicam на Raspberry Pi  4b: 5 шагов
Установите ROS Kinetic, TurtleBot3, Raspicam на Raspberry Pi 4b: 5 шагов

Видео: Установите ROS Kinetic, TurtleBot3, Raspicam на Raspberry Pi 4b: 5 шагов

Видео: Установите ROS Kinetic, TurtleBot3, Raspicam на Raspberry Pi  4b: 5 шагов
Видео: 02 Установка ROS 2024, Ноябрь
Anonim
Установите ROS Kinetic, TurtleBot3, Raspicam на Raspberry Pi 4b
Установите ROS Kinetic, TurtleBot3, Raspicam на Raspberry Pi 4b

TurtleBot3 Burger поставляется с Raspberry Pi 3 B / B + и не поддерживает новый (по состоянию на 9/2019) Raspberry Pi 4b. Выполните следующие действия, чтобы TurtleBot3 работал на Raspberry Pi 4b, включая

  • сборка ROS Kinetic из исходников на Raspberry Pi 4b Raspbian Buster
  • добавление пакетов, специфичных для TurtleBot3
  • добавление распикам-узла в

Шаг 1. Установите Raspbian и настройте Raspberry Pi 4b

Установите Raspbian и настройте Raspberry Pi 4b
Установите Raspbian и настройте Raspberry Pi 4b

Загрузите образ Raspbian. Я использовал Raspbian Buster от 2019-07-10.

Запишите загруженный образ Raspbian на SD-карту (размером не менее 8 ГБ). Подключите дисплей, клавиатуру и мышь к Raspberry Pi 4b, загрузитесь и подключитесь к Wi-Fi. Расширьте файловую систему, чтобы она занимала всю SD-карту, и, при желании, включите SSH и VNC, запустив

sudo raspi-config

Шаг 2. Загрузите источники кинетики ROS

Скачать исходники кинетики ROS
Скачать исходники кинетики ROS

Приведенные ниже инструкции соответствуют официальному руководству по ROS, а также руководству DmitryM8.

Войдите в свой Raspberry Pi 4b и выполните эти команды, чтобы добавить репозиторий пакетов ROS, инструменты сборки и инициализировать инструмент зависимости ROS.

sudo sh -c 'echo "deb https://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 sudo apt-get update sudo apt-get install -y python-rosdep python-rosinstall-generator python-w python-rosinstall build-essential cmake sudo rosdep init обновление rosdep

Создайте рабочее пространство для сборки ROS Kinetic из исходного кода.

mkdir ~ / ros_catkin_ws

cd ~ / ros_catkin_ws

Загрузите исходный код пакета "ros_comm", который содержит основные модули, предназначенные для работы на бортовом компьютере робота. Здесь rosinstall_generator создает список репозиториев исходного кода для загрузки. Затем wstool переходит к загрузке исходного кода.

rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar> kinetic-ros_comm-wet.rosinstall

wstool init -j8 src kinetic-ros_comm-wet.rosinstall rosdep install --from-paths src --ignore-src --rosdistro kinetic -y

Для запуска TurtleBot3 и raspicam вам потребуются эти пакеты ROS в дополнение к ros_comm: common_msgs, rosserial, image_common, image_transport_plugins и диагностике. Чтобы добавить эти пакеты, выполните эти команды.

rosinstall_generator common_msgs common_msgs rosserial image_common image_transport_plugins Diagnostics nodelet_core --rosdistro kinetic --deps --wet-only --tar> kinetic-extra-wet.rosinstall

wstool merge -t src kinetic-extra-wet.rosinstall wstool update -j8 -t src rosdep install --from-paths src --ignore-src --rosdistro kinetic -y

Поскольку версии зависимостей со временем меняются, могут возникать такие ошибки, как «python-rosdistro-modules_0.7.5-1_all.deb (--unpack): попытка перезаписать» /usr/lib/python2.7/dist-packages/rosdistro/_init_.py ', который также находится в пакете python-rosdistro 0.7.2-1 ". Устраните эти ошибки, связанные с "попыткой перезаписи":

sudo dpkg --remove --force-all python-catkin-pkg python-catkin-pkg-modules python-rosdistro python-rosdistro-modules python-rospkg python-rospkg-modules

// или sudo apt remove sudo apt --fix-broken install

Шаг 3. Исправьте ошибки компиляции ROS вручную

Исправить ошибки компиляции ROS вручную
Исправить ошибки компиляции ROS вручную

Сборка ROS на этом этапе завершится ошибкой. Давайте исправим эти ошибки, вручную отредактировав исходный код ROS.

Редактировать

/home/pi/ros_catkin_ws/src/opencv3/modules/python/src2/cv2.cpp строка 885

Заменять

char * str = PyString_AsString (объект);

с участием

const char * str = PyString_AsString (объект);

Отредактируйте файлы ниже.

/home/pi/ros_catkin_ws/src/rospack/include/rospack/rospack.h /home/pi/ros_catkin_ws/src/rospack/src/rospack.cpp /home/pi/ros_catkin_ws/src/rospack/src/utils.utils.

Удалите все вхождения

/ tr1

и заменить все вхождения

std:: tr1

с участием

увеличение

Отредактируйте файлы ниже.

/home/pi/ros_catkin_ws/src/actionlib/include/actionlib/client/simple_action_client.h /home/pi/ros_catkin_ws/src/actionlib/include/actionlib/destruction_guard.h / home / pi / ros_catkin_ws / sr / include /actionlib/server/simple_action_server_imp.h /home/pi/ros_catkin_ws/src/actionlib/src/connection_monitor.cpp /home/pi/ros_catkin_ws/src/actionlib/test/destruction_guard_test.cpp / home / bond_test.cpp / home / pi / roskin /bondcpp/src/bond.cpp /home/pi/ros_catkin_ws/src/ros_comm/roscpp/include/ros/timer_manager.h /home/pi/ros_catkin_ws/src/ros/roslib/test/utest.cpp

Заменить все вхождения

boost:: posix_time:: миллисекунды (…)

с участием

boost:: posix_time:: миллисекунды (int (…))

Отредактируйте файл ниже.

/home/pi/ros_catkin_ws/src/geometry2/tf2/src/buffer_core.cpp

Заменить все

logWarn

с участием

CONSOLE_BRIDGE_logWarn

а также

logError

с участием

CONSOLE_BRIDGE_logError

Шаг 4. Создайте ROS Kinetic

На этом этапе сборка должна завершиться успешно.

cd ~ / ros_catkin_ws

sudo./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE = Release --install-space / opt / ros / kinetic

Добавьте в ~ /.bashrc, а также выполните в своей оболочке:

источник /opt/ros/kinetic/setup.bash

Шаг 5: Создайте пакеты TurtleBot3 и Raspicam

Сборка пакетов TurtleBot3 и Raspicam
Сборка пакетов TurtleBot3 и Raspicam

Эти инструкции соответствуют руководству ROBOTIS.

mkdir -p ~ / catkin_ws / src

cd ~ / catkin_ws / catkin_make исходный код devel / setup.bash

Отредактируйте ~ /.bashrc и добавьте

источник /home/pi/catkin_ws/devel/setup.bash

Теперь выполните

cd ~ / catkin_ws / src

git clone https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone https://github.com/ROBOTIS-GIT/turtlebot3. git git clone https://github.com/UbiquityRobotics/raspicam_node.git cd ~ / catkin_ws / src / turtlebot3 rm -r turtlebot3_description / turtlebot3_teleop / turtlebot3_navigation / turtlebot3_slam_&cattlebot3_make_example/cattlebot3_slam_&cattlebot3_slam&cattlebot

Сборка должна завершиться успешно.

Настройте Raspberry Pi 4b для распознавания периферийных USB-устройств TurtleBot3.

rosrun turtlebot3_bringup create_udev_rules

Запустите ifconfig и запишите IP-адрес Raspbery Pi.

ifconfig

Отредактируйте ~ /.bashrc. Добавьте строки ниже и также выполните их в своей оболочке.

экспорт ROS_MASTER_URI = https://YOUR. ROS. MASTER. IP: 11311

экспорт ROS_HOSTNAME = YOUR. RASPBERRY. PI. IP

Синхронизируйте время Raspberry Pi и ПК:

sudo apt-get install ntpdate

sudo ntpdate ntp.ubuntu.com

На этом ваша настройка должна быть завершена. Теперь вы можете использовать Raspberry Pi 4b вместо Raspberry Pi 3/3 + в TurtleBot3.

Рекомендуемые: