Inhoudsopgave:

Installeer ROS Kinetic, TurtleBot3, Raspicam op Raspberry Pi 4b - Ajarnpa
Installeer ROS Kinetic, TurtleBot3, Raspicam op Raspberry Pi 4b - Ajarnpa

Video: Installeer ROS Kinetic, TurtleBot3, Raspicam op Raspberry Pi 4b - Ajarnpa

Video: Installeer ROS Kinetic, TurtleBot3, Raspicam op Raspberry Pi 4b - Ajarnpa
Video: ROS and Raspberry Pi for Beginners | Tutorial #0 - Topics Packages RosMaster 2024, Juli-
Anonim
Installeer ROS Kinetic, TurtleBot3, Raspicam op Raspberry Pi 4b
Installeer ROS Kinetic, TurtleBot3, Raspicam op Raspberry Pi 4b

TurtleBot3 Burger wordt geleverd met Raspberry Pi 3 B/B+ en ondersteunt de nieuwe (vanaf 9/2019) Raspberry Pi 4b niet. Volg de onderstaande stappen om TurtleBot3 te laten werken op Raspberry Pi 4b, inclusief:

  • ROS Kinetic bouwen uit bronnen op Raspberry Pi 4b Raspbian Buster
  • TurtleBot3-specifieke pakketten toevoegen
  • raspicam-node toevoegen aan

Stap 1: Installeer Raspbian en configureer Raspberry Pi 4b

Installeer Raspbian en configureer Raspberry Pi 4b
Installeer Raspbian en configureer Raspberry Pi 4b

Download een Raspbian-afbeelding. Ik gebruikte Raspbian Buster van 2019-07-10.

Brand de gedownloade Raspbian-afbeelding op een SD-kaart (minimaal 8 GB groot). Sluit een beeldscherm, toetsenbord en muis aan op je Raspberry Pi 4b, start op en maak verbinding met wifi. Breid het bestandssysteem uit om uw volledige SD-kaart te bezetten en schakel optioneel SSH en VNC in door het uit te voeren

sudo raspi-config

Stap 2: Download ROS Kinetic Sources

ROS kinetische bronnen downloaden
ROS kinetische bronnen downloaden

De onderstaande instructies volgen de officiële ROS-zelfstudie en DmitryM8 instructable.

Log in op uw Raspberry Pi 4b en voer deze opdrachten uit om ROS-pakketrepository toe te voegen, tools te bouwen en ROS-afhankelijkheidstool te initialiseren.

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-wsgenerator tool python-rosinstall-ws generator python-rosinstall build-essentiële cmake sudo rosdep init rosdep update

Maak een werkruimte om ROS Kinetic vanaf de bron te bouwen.

mkdir ~/ros_catkin_ws

cd ~/ros_catkin_ws

Download de broncode voor het pakket "ros_comm", dat essentiële modules bevat die bedoeld zijn om op de boordcomputer van de robot te draaien. Hier maakt rosinstall_generator een lijst met broncodebronnen om te downloaden. wstool gaat vervolgens verder met het downloaden van de broncode.

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

Om TurtleBot3 en raspicam uit te voeren, hebt u naast ros_comm deze ROS-pakketten nodig: common_msgs, rosserial, image_common, image_transport_plugins en diagnostics. Voer deze opdrachten uit om deze pakketten toe te voegen.

rosinstall_generator common_msgs common_msgs rosserial image_common image_transport_plugins diagnose 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

Omdat versies van afhankelijkheden in de loop van de tijd veranderen, kunnen er fouten zijn zoals "python-rosdistro-modules_0.7.5-1_all.deb (--unpack): proberen te overschrijven '/usr/lib/python2.7/dist-packages/rosdistro/_init_.py', die ook in het pakket python-rosdistro 0.7.2-1" zit. Los deze "proberen te overschrijven" fouten op:

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

// of sudo apt verwijder sudo apt --fix-broken install

Stap 3: ROS-compilatiefouten handmatig herstellen

Handmatig ROS-compilatiefouten herstellen
Handmatig ROS-compilatiefouten herstellen

Het bouwen van ROS op dit punt zal mislukken met verschillende fouten. Laten we die fouten oplossen door de ROS-broncode handmatig te bewerken.

Bewerking

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

Vervangen

char* str = PyString_AsString(obj);

met

const char* str = PyString_AsString(obj);

Bewerk onderstaande bestanden.

/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

Verwijder alle exemplaren van

/tr1

en vervang alle exemplaren van

standaard::tr1

met

boost

Bewerk onderstaande bestanden.

/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/src/bond_core /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

Vervang alle exemplaren van

boost::posix_time::milliseconden(…)

met

boost::posix_time::milliseconden(int(…))

Bewerk het onderstaande bestand.

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

Vervang alles

logWaarschuwing

met

CONSOLE_BRIDGE_logWaarschuwing

en

logFout

met

CONSOLE_BRIDGE_logError

Stap 4: Bouw ROS Kinetic

Op dit punt zou de build moeten slagen.

cd ~/ros_catkin_ws

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

Voeg toe aan ~/.bashrc en voer het ook uit in je shell:

bron /opt/ros/kinetic/setup.bash

Stap 5: Bouw TurtleBot3- en Raspicam-pakketten

Bouw TurtleBot3- en Raspicam-pakketten
Bouw TurtleBot3- en Raspicam-pakketten

Deze instructies volgen de ROBOTIS-zelfstudie.

mkdir -p ~/catkin_ws/src

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

Bewerk ~/.bashrc en voeg toe

bron /home/pi/catkin_ws/devel/setup.bash

Nu uitvoeren

cd ~/catkin_ws/src

git kloon https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git git kloon https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git kloon 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 ~/catkin_ws &&

De opbouw moet lukken.

Configureer Raspberry Pi 4b om TurtleBot3 USB-randapparatuur te herkennen.

rosrun turtlebot3_bringup create_udev_rules

Voer ifconfig uit en noteer het IP-adres van Raspbery Pi.

ifconfig

Bewerk ~/.bashrc. Voeg onderstaande regels toe en voer ze ook uit in je shell.

export ROS_MASTER_URI=https://YOUR. ROS. MASTER. IP:11311

export ROS_HOSTNAME=JOUW. RASPBERRY. PI. IP

Synchroniseer Raspberry Pi en pc-tijd:

sudo apt-get install ntpdate

sudo ntpdate ntp.ubuntu.com

Op dit punt zou uw installatie voltooid moeten zijn. Nu kun je je Raspberry Pi 4b gebruiken in plaats van Raspberry Pi 3/3+ in je TurtleBot3.

Aanbevolen: