Πίνακας περιεχομένων:

Εγκαταστήστε το 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 βήματα
Βίντεο: Ros Tutorial Part 4 (MyHouse Gazebo Project) 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
  • προσθήκη raspicam-node σε

Βήμα 1: Εγκαταστήστε το Raspbian και διαμορφώστε το Raspberry Pi 4b

Εγκαταστήστε το Raspbian και διαμορφώστε το Raspberry Pi 4b
Εγκαταστήστε το Raspbian και διαμορφώστε το Raspberry Pi 4b

Κατεβάστε μια εικόνα Raspbian. Χρησιμοποίησα το Raspbian Buster με ημερομηνία 2019–07–10.

Εγκαταστήστε τη λήψη της εικόνας Raspbian σε κάρτα SD (σε μέγεθος τουλάχιστον 8Gb). Συνδέστε μια οθόνη, πληκτρολόγιο και ποντίκι στο Raspberry Pi 4b, εκκινήστε και συνδεθείτε στο WiFi. Επεκτείνετε το σύστημα αρχείων ώστε να καταλαμβάνει ολόκληρη την κάρτα 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 ενημέρωση sudo apt-get install -y python-rosdep python-rosthool python-rosinstall build-απαραίτητο 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 διαγνωστικά nodelet_core --rosdistro kinetic-βυθίσματα-μόνο για υγρό --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 --αφαίρεση --force-all python-catkin-pkg python-catkin-pkg-modules python-rosdistro python-rosdistro-modules python-rospkg python-rospkg-modules

// ή sudo apt αφαίρεση sudo apt-εγκατάσταση που έχει σπάσει

Βήμα 3: Μη αυτόματη διόρθωση σφαλμάτων σύνταξης ROS

Μη αυτόματη διόρθωση σφαλμάτων σύνταξης ROS
Μη αυτόματη διόρθωση σφαλμάτων σύνταξης ROS

Η δημιουργία ROS σε αυτό το σημείο θα αποτύχει με διάφορα σφάλματα. Ας διορθώσουμε αυτά τα σφάλματα με μη αυτόματη επεξεργασία του πηγαίου κώδικα ROS.

Επεξεργασία

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

Αντικαθιστώ

char* str = PyString_AsString (obj);

με

const char* str = PyString_AsString (obj);

Επεξεργαστείτε τα αρχεία παρακάτω.

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

Καταργήστε όλες τις εμφανίσεις του

/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 /r/sr/ /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 / π / 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

Αντικαταστήστε όλες τις εμφανίσεις του

ενίσχυση:: posix_time:: χιλιοστά του δευτερολέπτου (…)

με

ενίσχυση:: posix_time:: χιλιοστά του δευτερολέπτου (int (…))

Επεξεργαστείτε το παρακάτω αρχείο.

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

Αντικατάσταση όλων

logWarn

με

CONSOLE_BRIDGE_logΠροειδοποίηση

και

logError

με

CONSOLE_BRIDGE_logError

Βήμα 4: Κατασκευάστε το ROS Kinetic

Σε αυτό το σημείο η κατασκευή πρέπει να πετύχει.

cd ~/ros_catkin_ws

sudo./src/catkin/bin/catkin_make_isolated -εγκατάσταση -DCMAKE_BUILD_TYPE = Έκδοση -εγκατάσταση -χώρος/εγκατάσταση/επιλογή/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 source 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 κλωνοποίηση

Η κατασκευή πρέπει να πετύχει.

Διαμορφώστε το 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.

Συνιστάται: