Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
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
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
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
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
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:
Installeer volledige Windows 10 op een Raspberry Pi!: 5 stappen
Installeer volledige Windows 10 op een Raspberry Pi!: De Raspberry Pi is een geweldig bord om veel dingen te doen. Er zijn veel instructables over zaken als IOT, domotica, enz. In deze instructable laat ik je zien hoe je een volledig Windows-bureaublad op je Raspberry PI 3B kunt draaien
Installeer Ubuntu 18.04.4 LTS op uw Raspberry Pi-bord: 8 stappen
Installeer Ubuntu 18.04.4 LTS op uw Raspberry Pi-bord: Het Ubuntu-team heeft het Ubuntu 18.04.4 Long Term Support-besturingssysteem uitgebracht voor Raspberry Pi 2/3/4 ARM-computers met één bord. Kort overzicht Zoals we weten, is Raspbian gebaseerd op Debian distro, het officiële besturingssysteem voor de Raspber
Installeer Raspbian OS op Raspberry Pi 4: 24 stappen
Installeer Raspbian OS in Raspberry Pi 4: Dit is de eerste tutorial in de Raspberry Pi-serie Inhoudsvoorbereiding: Dr. Ninad Mehendale, Mr. Amit Dhiman Het installeren van Raspbian OS in Raspberry Pi is een van de meest elementaire stappen die men moet kennen. We presenteren een eenvoudige stap-voor-stap procedure voor de
Installeer Raspbian op uw Raspberry Pi: 4 stappen
Installeer Raspbian op uw Raspberry Pi: Raspbian is een besturingssysteem van de Raspberry Pi Foundation, de makers van de Raspberry Pi. Het is het meest gebruikte besturingssysteem op de Pi. Deze tutorial laat zien hoe je Raspbian op je Raspberry Pi installeert
Installeer Node RED op uw Raspberry Pi: 4 stappen
Installeer Node RED op uw Raspberry Pi: Node-RED is een op flow gebaseerde programmeertool om hardwareapparaten, API's en online services op nieuwe en interessante manieren met elkaar te verbinden. het brede scala aan knooppunten.In deze t