Namestite ROS Kinetic, TurtleBot3, Raspicam na Raspberry Pi  4b: 5 korakov
Namestite ROS Kinetic, TurtleBot3, Raspicam na Raspberry Pi 4b: 5 korakov
Anonim
Namestite ROS Kinetic, TurtleBot3, Raspicam na Raspberry Pi 4b
Namestite ROS Kinetic, TurtleBot3, Raspicam na Raspberry Pi 4b

TurtleBot3 Burger prihaja z Raspberry Pi 3 B/B+ in ne podpira nove (od 9./2019) Raspberry Pi 4b. Sledite spodnjim korakom, da bo TurtleBot3 deloval na Raspberry Pi 4b, vključno z

  • gradnja ROS Kinetic iz virov na Raspberry Pi 4b Raspbian Buster
  • dodajanje paketov, specifičnih za TurtleBot3
  • dodajanje raspicam-vozlišča

1. korak: Namestite Raspbian in konfigurirajte Raspberry Pi 4b

Namestite Raspbian in konfigurirajte Raspberry Pi 4b
Namestite Raspbian in konfigurirajte Raspberry Pi 4b

Prenesite sliko Raspbian. Uporabil sem Raspbian Buster z datumom 2019–07–10.

Prenesite preneseno sliko Raspbian na kartico SD (velikost vsaj 8 Gb). Zaslon, tipkovnico in miško povežite z Raspberry Pi 4b, zaženite in se povežite z WiFi. Razširite datotečni sistem, da zavzame celotno kartico SD, in po izbiri z zagonom omogočite SSH in VNC

sudo raspi-config

2. korak: Prenesite kinetične vire ROS

Prenesite kinetične vire ROS
Prenesite kinetične vire ROS

Spodnja navodila sledijo uradni vadnici ROS in navodilom DmitryM8.

Prijavite se v svoj Raspberry Pi 4b in izvedite te ukaze, da dodate skladišče paketov ROS, sestavite orodja in inicializirate orodje za odvisnost 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-rosinstall gradnja-bistvena cmake sudo rosdep init rosdep posodobitev

Ustvarite delovni prostor za izdelavo ROS Kinetic iz vira.

mkdir ~/ros_catkin_ws

cd ~/ros_catkin_ws

Prenesite izvorno kodo za paket "ros_comm", ki vsebuje bistvene module, namenjene izvajanju na robotovem računalniku. Tukaj rosinstall_generator ustvari seznam skladišč izvorne kode za prenos. wstool nato nadaljuje s prenosom izvorne kode.

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

Če želite zagnati TurtleBot3 in raspicam, boste poleg ros_comm potrebovali še te pakete ROS: common_msgs, rosserial, image_common, image_transport_plugins in diagnostiko. Če želite dodati te pakete, zaženite te ukaze.

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

Ker se različice odvisnosti sčasoma spreminjajo, lahko pride do napak, kot je "python-rosdistro-modules_0.7.5-1_all.deb (--unpack): poskušate prepisati '/usr/lib/python2.7/dist-packages/rosdistro/_init_.py ', ki je tudi v paketu python-rosdistro 0.7.2-1 ". Odpravite te napake "poskušate prepisati":

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

// ali sudo apt odstranite sudo apt --fix-broken install

Korak: Ročno popravite napake pri sestavljanju ROS

Ročno popravite napake pri sestavljanju ROS
Ročno popravite napake pri sestavljanju ROS

Gradnja ROS na tej točki ne bo uspela z različnimi napakami. Odpravimo te napake z ročnim urejanjem izvorne kode ROS.

Uredi

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

Zamenjati

char* str = PyString_AsString (obj);

z

const char* str = PyString_AsString (obj);

Uredite spodaj datoteke.

/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

Odstrani vse pojavitve

/tr1

in nadomesti vse pojavitve

std:: tr1

z

pospešek

Uredite spodaj datoteke.

/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_ckin /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/src/home/pik/home /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

Zamenjaj vse dogodke

boost:: posix_time:: milisekunde (…)

z

boost:: posix_time:: milisekunde (int (…))

Uredite spodnjo datoteko.

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

Zamenjaj vse

logWarn

z

CONSOLE_BRIDGE_logOpozorilo

in

logError

z

CONSOLE_BRIDGE_logError

4. korak: Zgradite ROS Kinetic

Na tej točki bi morala gradnja uspeti.

cd ~/ros_catkin_ws

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

Dodajte v ~/.bashrc in izvedite tudi v svoji lupini:

vir /opt/ros/kinetic/setup.bash

5. korak: Zgradite pakete TurtleBot3 in Raspicam

Ustvarite pakete TurtleBot3 in Raspicam
Ustvarite pakete TurtleBot3 in Raspicam

Ta navodila sledijo vadnici ROBOTIS.

mkdir -p ~/catkin_ws/src

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

Uredite ~/.bashrc in dodajte

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

Zdaj pa izvedite

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. klon git git https://github.com/UbiquityRobotics/raspicam_node.git cd ~/catkin_ws/src/turtlebot3 rm -r turtlebot3_description/turtlebot3_teleop/turtlebot3_navigation/turtlebot3_slam/turtlebot3_example_c&kin>

Gradnja bi morala uspeti.

Konfigurirajte Raspberry Pi 4b za prepoznavanje zunanjih naprav USB TurtleBot3.

rosrun turtlebot3_bringup create_udev_rules

Zaženite ifconfig in zapišite IP Raspbery Pi.

ifconfig

Urejanje ~/.bashrc. Dodajte spodnje vrstice in jih izvedite tudi v lupini.

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

izvozi ROS_HOSTNAME = VAŠ. RASPBERRY. PI. IP

Sinhronizirajte čas Raspberry Pi in računalnika:

sudo apt-get install ntpdate

sudo ntpdate ntp.ubuntu.com

Na tej točki bi morala biti vaša nastavitev dokončana. Zdaj lahko v svojem TurtleBot3 namesto Raspberry Pi 3/3+ uporabite svoj Raspberry Pi 4b.

Priporočena: