สารบัญ:

ROS Melodic บน Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 ขั้นตอน
ROS Melodic บน Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 ขั้นตอน

วีดีโอ: ROS Melodic บน Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 ขั้นตอน

วีดีโอ: ROS Melodic บน Raspberry Pi 4 [Debian Buster] + RPLIDAR A1M8: 6 ขั้นตอน
วีดีโอ: How to Install ROS Melodic on the Raspberry Pi OS - Buster! 2024, กรกฎาคม
Anonim
Image
Image
ROS Melodic บน Raspberry Pi 4[Debian Buster] + RPLIDAR A1M8
ROS Melodic บน Raspberry Pi 4[Debian Buster] + RPLIDAR A1M8

บทความนี้จะกล่าวถึงขั้นตอนการติดตั้ง ROS Melodic Morenia บน Raspberry Pi 4 ที่ใช้งาน Debian Buster ล่าสุด และวิธีใช้ RPLIDAR A1M8 กับการติดตั้งของเรา

เนื่องจาก Debian Buster เปิดตัวอย่างเป็นทางการเมื่อไม่กี่สัปดาห์ก่อน (ในขณะที่เขียนบทความนี้) จึงไม่มีแพ็คเกจ ROS ที่สร้างไว้ล่วงหน้าให้ติดตั้งด้วย apt-get ซึ่งเป็นวิธีการติดตั้งที่ต้องการ ดังนั้นเราจะต้องสร้างมันจากแหล่งที่มา เชื่อฉันเถอะ มันไม่ได้น่ากลัวอย่างที่คิด กระบวนการนี้อธิบายไว้ในบทช่วยสอนอย่างเป็นทางการนี้ แต่ในการสร้าง ROS Melodic บน Raspberry Pi เราจำเป็นต้องทำการปรับเปลี่ยนเล็กน้อย

ในกรณีที่คุณยังกลัวอยู่ นี่คือภาพตลก ๆ ที่ *อาจ* ช่วยให้คุณผ่อนคลายได้ โปรดให้ข้อเสนอแนะหากระดับของการพักผ่อนเพียงพอ ถ้าไม่เช่นนั้นจะถูกแทนที่ด้วยภาพแมวตลก

แก้ไขมกราคม 2020: เนื่องจากฉันโพสต์บทความนี้เป็นเวลาครึ่งปีแล้ว จึงอาจมีการเปลี่ยนแปลงบางอย่างใน ROS หรือ Buster ฉันได้สร้างภาพสำหรับ Raspberry Pi 4 เมื่อไม่นานมานี้ หลังจากเขียนบทช่วยสอนนี้ ช่างภาพได้อัปโหลดไปยัง Google Drive

แก้ไขในเดือนเมษายน 2020: ฉันเพิ่งพบเวลาที่จะทำซ้ำการติดตั้ง ROS Melodic บนอิมเมจ Raspbian ใหม่ล่าสุดจากเว็บไซต์ Raspberry Pi อย่างเป็นทางการ ฉันได้แก้ไขคำสั่งนี้ตามนั้นแล้ว ฉันยังสร้างและแบ่งปันรูปภาพที่สะอาดและบีบอัด:

Raspbian Buster Lite 2020-02-13 วางจำหน่ายพร้อม ROS Melodic Bare-bones ต้องการการ์ด SD ขนาด 8 GB

Raspbian Buster พร้อมเดสก์ท็อป 2020-02-13 วางจำหน่ายพร้อม ROS Melodic Desktop ต้องการการ์ด SD ขนาด 16 GB

อาจเป็นวิธีที่เร็วที่สุดในการทำให้ระบบของคุณทำงานได้ หากคุณต้องการรวบรวม ROS ด้วยตัวเอง โปรดอ่านบทความต่อไป

ขั้นตอนที่ 1: การติดตั้ง Bootstrap Dependencies และดาวน์โหลด Packages

เริ่มต้นด้วยการตั้งค่าที่เก็บและติดตั้งการพึ่งพาที่จำเป็น

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-wstool python-rosinstall build-essential cmake

จากนั้นเริ่มต้น rosdep และอัปเดต

sudo rosdep init

rosdep อัพเดท

เมื่อเสร็จแล้ว ให้สร้างพื้นที่ทำงาน catkin เฉพาะสำหรับสร้าง ROS และย้ายไปยังไดเร็กทอรีนั้น

mkdir ~/ros_catkin_ws

cd ~/ros_catkin_ws

ตอนนี้คุณมีทางเลือกสองทาง:

ROS-Comm: การติดตั้ง (Bare Bones) - ติดตั้งอันนี้หากคุณคุ้นเคยกับ ROS และรู้ว่าคุณกำลังทำอะไรและต้องใช้แพ็คเกจใด หากคุณต้องการแพ็คเกจที่ไม่รวมอยู่ใน ROS-Comm คุณจะต้องคอมไพล์จากซอร์สด้วย

การติดตั้งเดสก์ท็อป: รวมเครื่องมือ GUI เช่น rqt, rviz และไลบรารีทั่วไปของหุ่นยนต์ อาจเป็นทางเลือกที่ดีกว่าสำหรับผู้เริ่มต้นสู่ ROS

ฉันจะไปกับการติดตั้ง Desktop Install ที่นี่

rosinstall_generator desktop --rosdistro melodic --deps --wet-only --tar> melodic-desktop-wet.rosinstall

wstool init -j8 src melodic-desktop-wet.rosinstall

คำสั่งจะใช้เวลาสองสามนาทีในการดาวน์โหลดแพ็คเกจ ROS หลักทั้งหมดลงในโฟลเดอร์ src

หาก wstool init ล้มเหลวหรือถูกขัดจังหวะ คุณสามารถทำการดาวน์โหลดต่อโดยเรียกใช้:

wstool อัปเดต -j4 -t src

ขั้นตอนที่ 2: แก้ไขปัญหา

แก้ไขปัญหา
แก้ไขปัญหา

เมษายน 2020 แก้ไข: ข้ามขั้นตอนนี้ ดูเหมือนว่าปัญหาทั้งหมดได้รับการแก้ไขแล้ว

มาติดตั้งเวอร์ชันที่เข้ากันได้ของ Assimp (Open Asset Import Library) เพื่อแก้ไขปัญหาการพึ่งพา collada_urdf

mkdir -p ~/ros_catkin_ws/external_src

cd ~/ros_catkin_ws/external_src

wget https://sourceforge.net/projects/assimp/files/assi… -O assimp-3.1.1_no_test_models.zip

เปิดเครื่องรูด assimp-3.1.1_no_test_models.zip

cd assimp-3.1.1

ซีเมค

ทำ

sudo ทำการติดตั้ง

มาติดตั้ง OGRE สำหรับ rviz. ด้วย

sudo apt-get ติดตั้ง libogre-1.9-dev

อัปเดตเดือนมกราคม 2020: ปัญหาของ libbost ได้รับการแก้ไขแล้วโดยนักพัฒนา ROS คุณสามารถข้ามส่วนนี้ไปได้

/// ข้าม /// สุดท้ายเราจะต้องแก้ไขปัญหาเกี่ยวกับ libboost ฉันกำลังใช้วิธีแก้ปัญหาจากโพสต์นี้ใน stackoverflow:

ข้อผิดพลาดระหว่างการคอมไพล์เกิดจากฟังก์ชัน 'boost::posix_time::milliseconds' ซึ่งในเวอร์ชันบูสต์ที่ใหม่กว่ายอมรับเฉพาะอาร์กิวเมนต์จำนวนเต็มเท่านั้น แต่แพ็กเกจ actionlib ใน ROS ทำให้มันลอยได้หลายที่ คุณสามารถแสดงรายการไฟล์ทั้งหมดได้ ใช้ฟังก์ชันนั้น (!ในโฟลเดอร์ ros_catkin_ws!):

find -type f -print0 | xargs -0 grep 'boost::posix_time::มิลลิวินาที' | ตัด -d: -f1 | เรียงลำดับ -u

เปิดในโปรแกรมแก้ไขข้อความของคุณและค้นหาการเรียกฟังก์ชัน 'boost::posix_time::milliseconds'

และแทนที่การโทรเช่นนี้:

เพิ่ม::posix_time::มิลลิวินาที(loop_duration.toSec() * 1000.0f));

กับ:

เพิ่ม::posix_time::มิลลิวินาที(int(loop_duration.toSec() * 1000.0f)));

และสิ่งเหล่านี้:

เพิ่ม::posix_time::มิลลิวินาที(1000.0f)

กับ:

เพิ่ม::posix_time::มิลลิวินาที(1000)

ฉันแนะนำให้คุณใช้โปรแกรมแก้ไขข้อความนาโน ซึ่งง่ายกว่า VIM;) กำลังบันทึก Ctrl+O, Ctrl+X กำลังออก และ Ctrl+W กำลังค้นหา

///ต่อจาก_ที่นี่///

ขั้นตอนที่ 3: สร้างและจัดหาการติดตั้ง

ต่อไปเราจะใช้เครื่องมือ rosdep เพื่อติดตั้งการพึ่งพาที่เหลือทั้งหมด:

ติดตั้ง rosdep --from-paths src --ignore-src --rosdistro ไพเราะ -y

เมื่อดาวน์โหลดแพ็คเกจและแก้ไขการขึ้นต่อกันเสร็จแล้ว คุณก็พร้อมที่จะสร้างแพ็คเกจ catkin แล้ว (เรียกใช้คำสั่งนี้จากโฟลเดอร์ ros_catkin_ws)

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

หากกระบวนการคอมไพล์ค้าง (เป็นไปได้มาก หากคุณติดตั้งเวอร์ชันเดสก์ท็อป) คุณต้องเพิ่มพื้นที่สว็อปที่พร้อมใช้งาน โดยค่าเริ่มต้นคือ 100 MB ลองเพิ่มเป็น 2048 MB

ขอให้โชคดี! กระบวนการรวบรวมทั้งหมดใช้เวลาประมาณ 1 ชั่วโมง (น้อยกว่าสำหรับเวอร์ชั่น Bare-bones) ไปชงชากันเถอะ

ตอนนี้ควรติดตั้ง ROS Melodic บน Raspberry Pi 4 ของคุณ เราจะจัดหาการติดตั้งใหม่ด้วยคำสั่งต่อไปนี้:

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc

เปิดเปลือกใหม่เพื่อให้การเปลี่ยนแปลงมีผล ลองเปิดตัวรอสกอร์เพื่อตรวจสอบว่าทุกอย่างสำเร็จหรือไม่

ขั้นตอนที่ 4: ติดตั้ง RPLIDAR ROS Package

ติดตั้ง RPLIDAR ROS Package
ติดตั้ง RPLIDAR ROS Package

มาสร้างพื้นที่ทำงานแยกกันสำหรับแพ็คเกจอื่นๆ ที่ไม่ใช่ส่วนหนึ่งของ ROS หลัก

จากโฟลเดอร์บ้านของคุณทำ:

mkdir -p ~/catkin_ws/src

cd ~/catkin_ws/

catkin_make

และแหล่งที่มาของ bashrc:

echo "แหล่ง $HOME/catkin_ws/devel/setup.bash" >> ~/.bashrc

เอาล่ะ เราพร้อมที่จะเริ่มติดตั้งแพ็คเกจ RPLIDAR ROS แล้ว

cd src

โคลน sudo git

ซีดี..

catkin_make

รอให้การรวบรวมแพ็คเกจเสร็จสิ้น ลองเปิดตัวแพ็คเกจเพื่อดูว่าการคอมไพล์สำเร็จหรือไม่:

roslaunch rplidar_ros rplidar.launch

หากไม่แสดงข้อผิดพลาดใดๆ ให้ทำการเต้นรำฉลองอย่างรวดเร็ว (*ตัวเลือก)

ตอนนี้เหลือเพียงชิ้นสุดท้ายที่ขาดหายไป เนื่องจากคุณอาจใช้งาน Raspberry Pi 4 ในโหมดหัวขาด เราจึงไม่เห็นภาพข้อความที่เป็นภาพ เพื่อที่เราจะต้องตั้งค่า ROS ให้ทำงานบนหลายเครื่อง

ขั้นตอนที่ 5: ตั้งค่า ROS ให้ทำงานบนหลายเครื่อง

ตั้งค่า ROS ให้ทำงานบนหลายเครื่อง
ตั้งค่า ROS ให้ทำงานบนหลายเครื่อง

สำหรับส่วนนี้ คุณจะต้องใช้คอมพิวเตอร์ Ubuntu 18.04 ที่ติดตั้ง ROS Melodic เนื่องจากเป็น Ubuntu ROS สามารถติดตั้งได้ง่ายๆ โดยใช้ apt-get ตามที่อธิบายไว้ในบทช่วยสอนนี้

หลังจากที่คุณได้ติดตั้ง ROS ทั้งบน Raspberry Pi และเครื่องเดสก์ท็อปแล้ว ให้ตรวจสอบที่อยู่ IP ของทั้งสองเครื่อง ต้องอยู่ในเครือข่ายเดียวกัน!

เรียกใช้ roscore บนคอมพิวเตอร์เดสก์ท็อปของคุณและส่งออก ROS_MASTER_URI

roscore

ส่งออก ROS_MASTER_URI=https://[your-desktop-machine-ip]:11311

ถัดไปใน Raspberry PI ดำเนินการ

ส่งออก ROS_MASTER_URI=https://[your-desktop-machine-ip]:11311

ส่งออก ROS_IP=[your-raspberry-pi-ip]

และเปิดไฟล์เรียกใช้ RPILIDAR

roslaunch rplidar_ros rplidar.launch

หากเปิดได้สำเร็จ ให้ตรวจสอบหัวข้อที่มีอยู่ในเครื่องเดสก์ท็อปของคุณด้วยรายการ rostopic

หากคุณสามารถเห็น / สแกนข้อความ ทุกอย่างทำงานได้ตามที่ควรจะเป็น จากนั้นเปิด RVIZ บนเครื่องเดสก์ท็อปของคุณ เพิ่มข้อความ Laser Scan แล้วเลือก /scan topic คุณจะต้องเปลี่ยนเฟรมคงที่เป็น /laser

โว้ว!

ขั้นตอนที่ 6: เสร็จแล้ว

เสร็จแล้ว!
เสร็จแล้ว!
เสร็จแล้ว!
เสร็จแล้ว!

คู่มือนี้สามารถเป็นก้าวแรกสู่การสร้างหุ่นยนต์ ROS ของคุณบน Raspberry Pi 4 ใหม่ เราได้ติดตั้ง ROS Melodic และเตรียมการติดตั้งสำหรับการรันแบบไม่มีหัวและเชื่อมต่อกับเครื่องเดสก์ท็อปของเราผ่านเครือข่ายไร้สายสำหรับการควบคุมระยะไกล

ขั้นตอนต่อไปขึ้นอยู่กับประเภทของหุ่นยนต์ที่คุณต้องการสร้าง คุณสามารถเพิ่มมอเตอร์และตัวเข้ารหัสสำหรับวัดระยะทาง กล้องสเตอริโอสำหรับ Visual SLAM และสิ่งที่น่าตื่นเต้นและมีประโยชน์อื่นๆ ได้ทุกประเภท

Seeed studio เป็นผู้จัดหาฮาร์ดแวร์สำหรับบทความนี้ ลองดู Raspberry Pi 4, RPLIDAR A1M8 และฮาร์ดแวร์อื่นๆ สำหรับผู้ผลิตที่ Seeed studio store!

เพิ่มฉันใน LinkedIn หากคุณมีคำถามใดๆ และสมัครรับข้อมูลจากช่อง YouTube ของฉัน เพื่อรับการแจ้งเตือนเกี่ยวกับโครงการที่น่าสนใจอื่นๆ ที่เกี่ยวข้องกับแมชชีนเลิร์นนิงและวิทยาการหุ่นยนต์

แนะนำ: