ติดตั้ง ROS Kinetic, TurtleBot3, Raspicam บน Raspberry Pi 4b: 5 ขั้นตอน
ติดตั้ง ROS Kinetic, TurtleBot3, Raspicam บน Raspberry Pi 4b: 5 ขั้นตอน
Anonim
ติดตั้ง ROS Kinetic, TurtleBot3, Raspicam บน Raspberry Pi 4b
ติดตั้ง ROS Kinetic, TurtleBot3, Raspicam บน Raspberry Pi 4b

TurtleBot3 Burger มาพร้อมกับ Raspberry Pi 3 B/B+ และไม่รองรับ Raspberry Pi 4b ใหม่ (ณ วันที่ 9/2019) ทำตามขั้นตอนด้านล่างเพื่อให้ 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 Kinetic Sources

ดาวน์โหลด ROS Kinetic Sources
ดาวน์โหลด ROS Kinetic Sources

คำแนะนำด้านล่างทำตามบทช่วยสอน 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 update sudo apt-get install -y python-rosdep python-python-rosinstallon- python-rosinstall build-essential 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 --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 --deps --wet-only --tar > kinetic-extra-wet.rosinstall

wstool ผสาน -t src kinetic-extra-wet.rosinstall wstool update -j8 -t src ติดตั้ง rosdep - จากเส้นทาง 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 --remove --force-all python-catkin-pkg python-catkin-pkg-modules python-rosdistro python-rosdistro-modules python-rospkg python-rospkg- โมดูล

// หรือ sudo apt ลบ sudo apt --fix-broken install

ขั้นตอนที่ 3: แก้ไขข้อผิดพลาดในการรวบรวม ROS ด้วยตนเอง

แก้ไขข้อผิดพลาดในการรวบรวม ROS ด้วยตนเอง
แก้ไขข้อผิดพลาดในการรวบรวม ROS ด้วยตนเอง

การสร้าง ROS ณ จุดนี้จะล้มเหลวโดยมีข้อผิดพลาดต่างๆ มาแก้ไขข้อผิดพลาดเหล่านั้นด้วยการแก้ไขซอร์สโค้ด ROS ด้วยตนเอง

แก้ไข

/home/pi/ros_catkin_ws/src/opencv3/modules/python/src2/cv2.cpp บรรทัด 885

แทนที่

ถ่าน* str = PyString_AsString(obj);

กับ

const ถ่าน* 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.cpp

ลบการเกิดทั้งหมดของ

/tr1

และแทนที่การเกิดขึ้นทั้งหมดของ

มาตรฐาน::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/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_/coresrc/bon /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_logWarn

และ

บันทึกข้อผิดพลาด

กับ

CONSOLE_BRIDGE_logError

ขั้นตอนที่ 4: สร้าง ROS Kinetic

ณ จุดนี้การสร้างควรจะประสบความสำเร็จ

cd ~/ros_catkin_ws

sudo./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/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 https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git โคลน git https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git โคลน git 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

การสร้างควรประสบความสำเร็จ

กำหนดค่า 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

export ROS_HOSTNAME=YOUR. RASPBERRY. PI. IP

ซิงโครไนซ์เวลา Raspberry Pi และ PC:

sudo apt-get ติดตั้ง ntpdate

sudo ntpdate ntp.ubuntu.com

ณ จุดนี้ การตั้งค่าของคุณควรเสร็จสิ้น ตอนนี้คุณสามารถใช้ Raspberry Pi 4b แทน Raspberry Pi 3/3+ ใน TurtleBot3 ได้แล้ว

แนะนำ: