Spisu treści:

Zainstaluj ROS Kinetic, TurtleBot3, Raspicam na Raspberry Pi 4b: 5 kroków
Zainstaluj ROS Kinetic, TurtleBot3, Raspicam na Raspberry Pi 4b: 5 kroków

Wideo: Zainstaluj ROS Kinetic, TurtleBot3, Raspicam na Raspberry Pi 4b: 5 kroków

Wideo: Zainstaluj ROS Kinetic, TurtleBot3, Raspicam na Raspberry Pi 4b: 5 kroków
Wideo: Способ выращивания роз из бутонов не знает весь мир | Как размножать розы | Green Forest Skills 2024, Listopad
Anonim
Zainstaluj ROS Kinetic, TurtleBot3, Raspicam na Raspberry Pi 4b
Zainstaluj ROS Kinetic, TurtleBot3, Raspicam na Raspberry Pi 4b

TurtleBot3 Burger jest dostarczany z Raspberry Pi 3 B/B+ i nie obsługuje nowego (stan na 9/2019) Raspberry Pi 4b. Wykonaj poniższe czynności, aby TurtleBot3 działał na Raspberry Pi 4b, w tym

  • budowanie ROS Kinetic ze źródeł na Raspberry Pi 4b Raspbian Buster
  • dodanie pakietów specyficznych dla TurtleBot3
  • dodanie raspicam-node do

Krok 1: Zainstaluj Raspbian i skonfiguruj Raspberry Pi 4b

Zainstaluj Raspbian i skonfiguruj Raspberry Pi 4b
Zainstaluj Raspbian i skonfiguruj Raspberry Pi 4b

Pobierz obraz Raspbian. Użyłem Raspbian Buster z dnia 2019-07-10.

Nagraj pobrany obraz Raspbian na kartę SD (o rozmiarze co najmniej 8 GB). Podłącz wyświetlacz, klawiaturę i mysz do Raspberry Pi 4b, uruchom komputer i połącz się z Wi-Fi. Rozszerz system plików, aby zajmował całą kartę SD i opcjonalnie włącz SSH i VNC, uruchamiając

sudo raspi-config

Krok 2: Pobierz ROS Kinetic Sources

Pobierz źródła kinetyczne ROS
Pobierz źródła kinetyczne ROS

Poniższe instrukcje są zgodne z oficjalnym samouczkiem ROS, a także z instrukcją DmitryM8.

Zaloguj się do swojego Raspberry Pi 4b i wykonaj te polecenia, aby dodać repozytorium pakietów ROS, kompilować narzędzia i zainicjować narzędzie zależności 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 aktualizacja sudo apt-get install -y python-rosdep python-rosinstall-generator python-rosinstall build-essential cmake sudo rosdep init aktualizacja rosdep

Utwórz obszar roboczy, aby zbudować ROS Kinetic ze źródła.

mkdir ~/ros_catkin_ws

cd ~/ros_catkin_ws

Pobierz kod źródłowy pakietu "ros_comm", który zawiera niezbędne moduły przeznaczone do uruchomienia na komputerze pokładowym robota. Tutaj rosinstall_generator tworzy listę repozytoriów kodu źródłowego do pobrania. wstool następnie przystępuje do pobierania kodu źródłowego.

rosinstall_generator ros_comm --rosdistro kinetic --dps --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

Aby uruchomić TurtleBot3 i raspicam będziesz potrzebować tych pakietów ROS oprócz ros_comm: common_msgs, rosserial, image_common, image_transport_plugins i diagnostics. Aby dodać te pakiety, uruchom te polecenia.

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

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

Ponieważ wersje zależności zmieniają się w czasie, mogą wystąpić błędy, takie jak „python-rosdistro-modules_0.7.5-1_all.deb (--unpack): próba nadpisania '/usr/lib/python2.7/dist-packages/rosdistro/_init_.py', który znajduje się również w pakiecie python-rosdistro 0.7.2-1 . Rozwiąż te błędy „próby nadpisania”:

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

// lub sudo apt usuń sudo apt --fix-broken install

Krok 3: Ręcznie napraw błędy kompilacji ROS

Ręcznie napraw błędy kompilacji ROS
Ręcznie napraw błędy kompilacji ROS

Budowanie ROS w tym momencie zakończy się niepowodzeniem z różnymi błędami. Naprawmy te błędy, ręcznie edytując kod źródłowy ROS.

Edytować

/home/pi/ros_catkin_ws/src/opencv3/modules/python/src2/cv2.cpp linia 885

Zastępować

char* str = PyString_AsString(obj);

z

const char* str = PyString_AsString(obj);

Edytuj pliki poniżej.

/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.cpp

Usuń wszystkie wystąpienia

/tr1

i zastąp wszystkie wystąpienia

std::tr1

z

zwiększyć

Edytuj pliki poniżej.

/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/src/actionlib/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/pi/ros_catkin_ws_core/bond /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

Zastąp wszystkie wystąpienia

boost::posix_time::milisekundy(…)

z

boost::posix_time::milisekundy(int(…))

Edytuj plik poniżej.

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

Zamień wszystko

logWarn

z

CONSOLE_BRIDGE_logOstrzeżenie

oraz

logError

z

CONSOLE_BRIDGE_logError

Krok 4: Zbuduj ROS Kinetic

W tym momencie kompilacja powinna się udać.

cd ~/ros_catkin_ws

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

Dołącz do ~/.bashrc, a także wykonaj w swojej powłoce:

źródło /opt/ros/kinetic/setup.bash

Krok 5: Zbuduj pakiety TurtleBot3 i Raspicam

Zbuduj pakiety TurtleBot3 i Raspicam
Zbuduj pakiety TurtleBot3 i Raspicam

Te instrukcje są zgodne z samouczkiem ROBOTIS.

mkdir -p ~/catkin_ws/src

cd ~/catkin_ws/ catkin_make source devel/setup.bash

Edytuj ~/.bashrc i dołącz

źródło /home/pi/catkin_ws/devel/setup.bash

Teraz wykonaj

cd ~/catkin_ws/src

klon git https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git klon git https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git klon git 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/ turtlebot3_example/ cd &&cat catkin

Kompilacja powinna się udać.

Skonfiguruj Raspberry Pi 4b do rozpoznawania urządzeń peryferyjnych USB TurtleBot3.

rosrun turtlebot3_bringup create_udev_rules

Uruchom ifconfig i zapisz adres IP Raspbery Pi.

ifconfig

Edytuj ~/.bashrc. Dodaj poniższe linie, a także wykonaj je w swojej powłoce.

eksportuj ROS_MASTER_URI=https://TWÓJ. ROS. MASTER. IP:11311

export ROS_HOSTNAME=TWÓJ. MALINOWY. PI. IP

Synchronizuj czas Raspberry Pi i PC:

sudo apt-get zainstaluj ntpdate

sudo ntpdate ntp.ubuntu.com

W tym momencie konfiguracja powinna zostać zakończona. Teraz możesz używać Raspberry Pi 4b zamiast Raspberry Pi 3/3+ w swoim TurtleBot3.

Zalecana: