I-install ang ROS Kinetic, TurtleBot3, Raspicam sa Raspberry Pi  4b: 5 Hakbang
I-install ang ROS Kinetic, TurtleBot3, Raspicam sa Raspberry Pi 4b: 5 Hakbang
Anonim
I-install ang ROS Kinetic, TurtleBot3, Raspicam sa Raspberry Pi 4b
I-install ang ROS Kinetic, TurtleBot3, Raspicam sa Raspberry Pi 4b

Ang TurtleBot3 Burger ay mayroong Raspberry Pi 3 B / B + at hindi sinusuportahan ang bagong (as of 9/2019) Raspberry Pi 4b. Sundin ang mga hakbang sa ibaba upang magawa ang TurtleBot3 sa Raspberry Pi 4b, kasama na

  • pagbuo ng ROS Kinetic mula sa mga mapagkukunan sa Raspberry Pi 4b Raspbian Buster
  • pagdaragdag ng mga pakete na tukoy sa TurtleBot3
  • pagdaragdag ng raspicam-node sa

Hakbang 1: I-install ang Raspbian at I-configure ang Raspberry Pi 4b

I-install ang Raspbian at I-configure ang Raspberry Pi 4b
I-install ang Raspbian at I-configure ang Raspberry Pi 4b

Mag-download ng isang imahe ng Raspbian. Gumamit ako ng Raspbian Buster na may petsang 2019-07-10.

Sunugin ang na-download na imaheng Raspbian sa isang SD card (hindi bababa sa 8Gb ang laki). Ikonekta ang isang display, keyboard at mouse sa iyong Raspberry Pi 4b, mag-boot at kumonekta sa WiFi. Palawakin ang file system upang sakupin ang iyong buong SD card at, opsyonal, paganahin ang SSH at VNC sa pamamagitan ng pagpapatakbo

sudo raspi-config

Hakbang 2: I-download ang Mga Pinagmulan ng ROS Kinetic

Mag-download ng Mga Pinagmulan ng ROS Kinetic
Mag-download ng Mga Pinagmulan ng ROS Kinetic

Ang mga tagubilin sa ibaba ay sumusunod sa opisyal na ROS tutorial pati na rin ang itinuturo ng DmitryM8.

Mag-log in sa iyong Raspberry Pi 4b at isagawa ang mga utos na ito upang magdagdag ng ROS package repository, bumuo ng mga tool at gawing simula ang tool sa pagpapakandili ng ROS.

sudo sh -c 'echo "deb https://packages.ros.org/ros/ubuntu $ (lsb_release -sc) pangunahing"> /etc/apt/source.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-rosinstallsto generator python-rosinstall build-essential cmake sudo rosdep init rosdep update

Lumikha ng isang workspace upang mabuo ang ROS Kinetic mula sa mapagkukunan.

mkdir ~ / ros_catkin_ws

cd ~ / ros_catkin_ws

Mag-download ng source code para sa pakete na "ros_comm", na naglalaman ng mahahalagang mga module na inilaan upang tumakbo sa on-board computer ng robot. Dito lumilikha ang rosinstall_generator ng isang listahan ng mga repository ng source code upang mai-download. pagkatapos ay nagpapatuloy ang wstool upang mai-download ang source code.

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-path src --ignore-src --rosdistro kinetic -y

Upang patakbuhin ang TurtleBot3 at raspicam kakailanganin mo ang mga ROS package na ito bilang karagdagan sa ros_comm: common_msgs, rosserial, image_common, image_transport_plugins at mga diagnostic. Upang idagdag ang mga pakete na ito patakbuhin ang mga utos na ito.

diagnostic 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 --mula sa mga path src --ignore-src --rosdistro kinetic -y

Habang nagbabago ang mga bersyon ng dependency sa paglipas ng panahon, maaaring may mga error tulad ng "python-rosdistro-modules_0.7.5-1_all.deb (--unpack): sinusubukan na patungan '/usr/lib/python2.7/dist-packages/rosdistro/_init_.py ', na mayroon ding package python-rosdistro 0.7.2-1 ". Lutasin ang mga error na "sinusubukan na patungan":

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

// o sudo apt alisin sudo apt --fix-broken install

Hakbang 3: Manu-manong Ayusin ang Mga Error sa Pag-compose ng ROS

Mano-manong ayusin ang Mga Error sa Pag-compose ng ROS
Mano-manong ayusin ang Mga Error sa Pag-compose ng ROS

Ang pagbuo ng ROS sa puntong ito ay mabibigo sa iba't ibang mga error. Ayusin natin ang mga error na iyon sa pamamagitan ng manu-manong pag-edit ng ROS source code.

I-edit

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

Palitan

char * str = PyString_AsString (obj);

kasama si

const char * str = PyString_AsString (obj);

I-edit ang mga file sa ibaba.

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

Alisin ang lahat ng mga paglitaw ng

/ tr1

at palitan ang lahat ng mga pangyayari ng

std:: tr1

kasama si

magpapalakas

I-edit ang mga file sa ibaba.

/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 /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_c / sr_ /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

Palitan ang lahat ng mga ocurrence ng

boost:: posix_time:: milliseconds (…)

kasama si

boost:: posix_time:: milliseconds (int (…))

I-edit ang file sa ibaba.

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

Palitan lahat

mag-logWarn

kasama si

CONSOLE_BRIDGE_logWarn

at

logError

kasama si

CONSOLE_BRIDGE_logError

Hakbang 4: Bumuo ng ROS Kinetic

Sa puntong ito ang build ay dapat magtagumpay.

cd ~ / ros_catkin_ws

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

Idagdag sa ~ /.bashrc at isagawa din sa iyong shell:

pinagmulan /opt/ros/kinetic/setup.bash

Hakbang 5: Bumuo ng TurtleBot3 at Raspicam Packages

Bumuo ng TurtleBot3 at Raspicam Packages
Bumuo ng TurtleBot3 at Raspicam Packages

Ang mga tagubiling ito ay sumusunod sa tutorial na ROBOTIS.

mkdir -p ~ / catkin_ws / src

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

I-edit ang ~ /.bashrc at idagdag

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

Ngayon, magpatupad

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 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 &

Dapat magtagumpay ang pagbuo.

I-configure ang Raspberry Pi 4b upang makilala ang TurtleBot3 USB peripherals.

rosrun turtlebot3_bringup create_udev_rules

Patakbuhin ang ifconfig at isulat ang Raspbery Pi's IP.

ifconfig

I-edit ang ~ /.bashrc. Idagdag ang mga linya sa ibaba at isagawa din ang mga ito sa iyong shell.

i-export ang ROS_MASTER_URI = https://Your. ROS. MASTER. IP: 11311

i-export ang ROS_HOSTNAME = IYONG. RASPBERRY. PI. IP

Isabay ang oras ng Raspberry Pi at PC:

sudo apt-get install ntpdate

sudo ntpdate ntp.ubuntu.com

Sa puntong ito, dapat nakumpleto ang iyong pag-set up. Maaari mo na ngayong gamitin ang iyong Raspberry Pi 4b sa halip na Raspberry Pi 3/3 + sa iyong TurtleBot3.

Inirerekumendang: