สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: คำอธิบาย
- ขั้นตอนที่ 2: การประกอบบล็อคมอเตอร์
- ขั้นตอนที่ 3: การเตรียมสวิตช์และสายเคเบิล
- ขั้นตอนที่ 4: การเดินสายไฟบอร์ดอิเล็กทรอนิกส์
- ขั้นตอนที่ 5: Motor Group และ Arduino ที่ชั้นล่าง
- ขั้นตอนที่ 6: คอมพิวเตอร์บอร์ดเดี่ยวและเซ็นเซอร์ที่ Upper Layer
- ขั้นตอนที่ 7: ทำให้มันเคลื่อนไหว
วีดีโอ: สร้างหุ่นยนต์ Turtlebot ของคุณเอง!: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
แก้ไข:
ข้อมูลเพิ่มเติมเกี่ยวกับซอฟต์แวร์และการควบคุมมีอยู่ที่ลิงค์นี้:
hackaday.io/project/167074-build-your-own-turtlebot-3-backbone
ลิงก์โดยตรงไปยังรหัสคือ:
github.com/MattMgn/foxbot_core
ทำไมโครงการนี้?
Turtlebot 3 เป็นแพลตฟอร์มที่สมบูรณ์แบบสำหรับเจาะลึกเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์ หุ่นยนต์ และแม้แต่ AI! ฉันเสนอให้คุณสร้าง Turtlebot ของคุณเองทีละขั้นตอนด้วยส่วนประกอบที่ราคาไม่แพงโดยไม่ต้องเสียสละคุณสมบัติและประสิทธิภาพ โดยคำนึงถึงสิ่งหนึ่ง: รักษาสิ่งที่ดีที่สุดจากหุ่นยนต์เริ่มต้น ความเป็นโมดูล ความเรียบง่าย และแพ็คเกจจำนวนมากสำหรับการนำทางอัตโนมัติและ AI จากชุมชนโอเพนซอร์ซ
โครงการนี้เป็นโอกาสสำหรับผู้เริ่มต้นที่จะได้รับแนวคิดเกี่ยวกับอิเล็กทรอนิกส์ กลศาสตร์ และวิทยาการคอมพิวเตอร์ และสำหรับผู้มีประสบการณ์มากขึ้นในการได้รับแพลตฟอร์มอันทรงพลังเพื่อทดสอบและพัฒนาอัลกอริธึมปัญญาประดิษฐ์
สิ่งที่คุณจะค้นพบในโครงการนี้?
คุณกำลังจะค้นพบว่าชิ้นส่วนกลไกและชิ้นส่วนอิเล็กทรอนิกส์ที่สำคัญต้องเก็บไว้จากบอทดั้งเดิมเพื่อรับประกันความเข้ากันได้อย่างสมบูรณ์
กระบวนการสร้างทั้งหมดจะมีรายละเอียด: ตั้งแต่การพิมพ์ชิ้นส่วน 3 มิติ การประกอบและส่วนประกอบต่างๆ การบัดกรีและการรวมอุปกรณ์อิเล็กทรอนิกส์ ไปจนถึงการรวบรวมโค้ดบน Arduino คำแนะนำนี้จะสรุปในตัวอย่าง 'สวัสดีชาวโลก' เพื่อให้คุณคุ้นเคยกับ ROS หากมีอะไรไม่ชัดเจน ถามคำถามได้เลย!
เสบียง
อิเล็กทรอนิกส์:
1 x คอมพิวเตอร์บอร์ดเดี่ยวเพื่อเรียกใช้ ROS อาจเป็น Raspberry Pi หรือ Jetson Nano เป็นต้น
1 x Arduino DUE คุณสามารถใช้ UNO หรือ MEGA
1 x Proto-board ที่เหมาะกับ Arduino DUE pin-out มีให้ที่นี่
มอเตอร์ DC 2 x 12V พร้อมตัวเข้ารหัส (ตัวเลือก 100 RPM)
ไดรเวอร์มอเตอร์ 1 x L298N
ตัวควบคุม 2 x 5V
1 x แบตเตอรี่ (เช่นแบตเตอรี่ LiPo 3S / 4S)
2 x สวิตช์เปิด/ปิด
2 x LED
ตัวต้านทาน 2 x 470kOhm
ขั้วต่อ JST 3 x 4 พิน
1 x สาย USB (อย่างน้อยหนึ่งสายระหว่าง SBC และ Arduino)
เซนเซอร์:
1 x เซ็นเซอร์ปัจจุบัน (อุปกรณ์เสริม)
1 x 9 Degrees of Freedom IMU (ไม่บังคับ)
1 x LIDAR (อุปกรณ์เสริม)
แชสซี:
แผ่นโมดูลาร์ Turtlebot ขนาด 16 x (ซึ่งสามารถพิมพ์ 3D ได้)
2 x ล้อเส้นผ่านศูนย์กลาง 65 มม. (ตัวเลือกความกว้าง 6 มม.)
4 x Nylon สเปเซอร์ 30 มม. (อุปกรณ์เสริม)
เม็ดมีด 20 x M3 (อุปกรณ์เสริม)
คนอื่น:
สายไฟ
สกรูและเม็ดมีด M2.5 และ M3
เครื่องพิมพ์ 3D หรือคนที่สามารถพิมพ์ชิ้นส่วนให้คุณได้
สว่านมือพร้อมชุดดอกสว่านแบบนี้
ขั้นตอนที่ 1: คำอธิบาย
หุ่นยนต์ตัวนี้เป็นตัวขับเคลื่อนเฟืองท้ายแบบธรรมดาที่ใช้ล้อ 2 ล้อติดตั้งโดยตรงบนมอเตอร์และล้อเลื่อนซึ่งอยู่ด้านหลังเพื่อป้องกันไม่ให้หุ่นยนต์ล้ม หุ่นยนต์แบ่งออกเป็นสองชั้น:
ชั้นล่าง: พร้อมกลุ่มขับเคลื่อน (แบตเตอรี่ ตัวควบคุมมอเตอร์ และมอเตอร์) และอุปกรณ์อิเล็กทรอนิกส์ 'ระดับต่ำ': ไมโครคอนโทรลเลอร์ Arduino ตัวควบคุมแรงดันไฟฟ้า สวิตช์…
Upper Layer: ด้วยระบบอิเล็กทรอนิกส์ 'ระดับสูง' คือ Single Board Computer และ LIDAR
เลเยอร์เหล่านี้เชื่อมโยงกับชิ้นส่วนที่พิมพ์และสกรูเพื่อให้มั่นใจถึงความทนทานของโครงสร้าง
แผนผังอิเล็กทรอนิกส์
แผนผังอาจดูยุ่งเหยิงเล็กน้อย เป็นแผนผังและไม่ได้แสดงถึงสายไฟ ขั้วต่อ และโปรโตบอร์ดทั้งหมด แต่สามารถอ่านได้ดังนี้
แบตเตอรี่ Litihum Ion Polymer 3S ที่มีความจุ 3000mAh จ่ายไฟให้กับวงจรแรก โดยให้พลังงานแก่ทั้งบอร์ดควบคุมมอเตอร์ (L298N) และตัวควบคุม 5V ตัวแรกสำหรับตัวเข้ารหัสมอเตอร์และ Arduino วงจรนี้เปิดใช้งานผ่านสวิตช์พร้อมไฟ LED ที่ระบุสถานะเปิด/ปิด
แบตเตอรี่เดียวกันจ่ายไฟให้กับวงจรที่สอง แรงดันไฟฟ้าขาเข้าจะถูกแปลงเป็น 5V เพื่อจ่ายไฟให้กับคอมพิวเตอร์บอร์ดเดี่ยว นอกจากนี้ยังเปิดใช้งานวงจรผ่านสวิตช์และไฟ LED
สามารถเพิ่มเซ็นเซอร์เพิ่มเติม เช่น LIDAR หรือกล้องได้โดยตรงบน Raspberry Pi ผ่าน USB หรือพอร์ต CSI
การออกแบบเครื่องกล
โครงหุ่นยนต์ประกอบด้วยชิ้นส่วนที่เหมือนกัน 16 ชิ้นซึ่งสร้างเป็นชั้นสี่เหลี่ยมจัตุรัส 2 ชั้น (ความกว้าง 28 ซม.) รูจำนวนมากช่วยให้ติดตั้งชิ้นส่วนเพิ่มเติมได้ทุกที่ที่คุณต้องการ และนำเสนอการออกแบบโมดูลาร์ที่สมบูรณ์ สำหรับโปรเจ็กต์นี้ ฉันตัดสินใจซื้อเพลต TurtleBot3 ดั้งเดิม แต่คุณยังสามารถพิมพ์แบบ 3 มิติ เนื่องจากการออกแบบเป็นโอเพ่นซอร์ส
ขั้นตอนที่ 2: การประกอบบล็อคมอเตอร์
การเตรียมมอเตอร์
ขั้นตอนแรกคือการเพิ่มเทปโฟมหนา 1 มม. รอบมอเตอร์แต่ละตัวเพื่อป้องกันการสั่นสะเทือนและเสียงรบกวนเมื่อมอเตอร์หมุน
ชิ้นส่วนที่พิมพ์
ตัวยึดมอเตอร์ส่งผลให้ชิ้นส่วนสองส่วนที่ยึดมอเตอร์เหมือนรอง ใช้สกรู 4 ตัวเพื่อขันมอเตอร์ให้แน่นในตัวยึด
ตัวยึดแต่ละอันประกอบด้วยรูหลายรูที่โฮสต์เม็ดมีด M3 ที่จะติดตั้งบนโครงสร้าง มีรูมากกว่าที่จำเป็นจริง ๆ ในที่สุดอาจใช้รูพิเศษเพื่อยึดส่วนเสริม
การตั้งค่าเครื่องพิมพ์ 3 มิติ: ทุกส่วนพิมพ์ด้วยพารามิเตอร์ต่อไปนี้
- หัวฉีดขนาดเส้นผ่านศูนย์กลาง 0.4 มม.
- เติมวัสดุ 15%
- ชั้นสูง 0.2 มม.
ล้อ
ล้อที่เลือกนั้นหุ้มด้วยยางเพื่อเพิ่มการยึดเกาะสูงสุดและรับประกันสภาพการหมุนฟรี สกรูยึดจะยึดล้อไว้กับเพลามอเตอร์ เส้นผ่านศูนย์กลางของล้อควรมีขนาดใหญ่พอที่จะข้ามขั้นเล็กน้อยและพื้นไม่ปกติ (ล้อเหล่านี้มีเส้นผ่านศูนย์กลาง 65 มม.)
การตรึง
เมื่อคุณทำ motor block เสร็จแล้ว ให้ทำซ้ำขั้นตอนก่อนหน้า จากนั้นจึงยึดเข้ากับเลเยอร์ด้วยสกรู M3
ขั้นตอนที่ 3: การเตรียมสวิตช์และสายเคเบิล
การเตรียมสายมอเตอร์
โดยทั่วไปแล้ว ตัวเข้ารหัสของมอเตอร์จะมาพร้อมกับสายเคเบิลซึ่งรวมถึงขั้วต่อ 6 พินที่ด้านหนึ่งที่เชื่อมต่อด้านหลังของ PCB ตัวเข้ารหัส และสายเปลือยที่อีกด้านหนึ่ง
คุณมีความเป็นไปได้ที่จะบัดกรีโดยตรงบนโปรโตบอร์ดหรือแม้แต่ Arduino ของคุณ แต่ฉันแนะนำให้คุณใช้ส่วนหัวของพินตัวเมียและตัวเชื่อมต่อ JST-XH แทน ดังนั้นคุณจึงสามารถเสียบ/ถอดปลั๊กบนโปรโตบอร์ดและทำให้การประกอบของคุณง่ายขึ้น
เคล็ดลับ: คุณสามารถเพิ่มปลอกหุ้มปลอกหุ้มที่ขยายได้รอบๆ สายไฟและชิ้นส่วนของท่อหดใกล้กับขั้วต่อ การทำเช่นนี้คุณจะได้สายเคเบิลที่ 'สะอาด'
สวิตช์และ LED
ในการเปิดใช้งานวงจรไฟฟ้าทั้งสอง ให้เตรียม LED 2 ดวงและสายเคเบิลสำหรับสวิตช์: ขั้นแรกให้บัดกรีตัวต้านทาน 470kOhm บนพิน LED อันใดอันหนึ่ง จากนั้นบัดกรี LED บนพินสวิตช์หนึ่งอัน คุณสามารถใช้ท่อหดชิ้นหนึ่งเพื่อซ่อนตัวต้านทานภายในได้ ระวังบัดกรี LED ในทิศทางที่ถูกต้อง! ทำซ้ำการดำเนินการนี้เพื่อรับสายสวิตช์/นำสองสาย
การประกอบ
ประกอบสายเคเบิลที่ทำไว้ก่อนหน้านี้บนชิ้นส่วนที่พิมพ์ 3 มิติที่เกี่ยวข้อง ใช้น๊อตเพื่อรักษาสวิตช์ ไฟ LED ไม่ต้องใช้กาว แค่ดันให้พอดีกับรู
ขั้นตอนที่ 4: การเดินสายไฟบอร์ดอิเล็กทรอนิกส์
เค้าโครงบอร์ด
ใช้โปรโตบอร์ดที่เหมาะสมกับเลย์เอาต์ของบอร์ด Arduino เพื่อลดจำนวนสายไฟ ที่ด้านบนของโปรโตบอร์ด L298N วางซ้อนกันด้วยส่วนหัวของ Dupont ตัวเมีย (Dupont เป็นส่วนหัว 'Arduino like')
การเตรียม L298N
เดิมทีบอร์ด L298N ไม่ได้มาพร้อมกับส่วนหัว Dupont ตัวผู้ที่เกี่ยวข้อง คุณต้องเพิ่มแถวพิน 9 แถวใต้บอร์ด คุณต้องรู้ 9 รูด้วยดอกสว่านขนาดเส้นผ่านศูนย์กลาง 1 มม. ขนานกับรูที่มีอยู่ดังที่คุณเห็นในภาพ จากนั้นเชื่อมโยงหมุดที่สอดคล้องกันของ 2 แถวกับวัสดุบัดกรีและสายสั้น
L298N พินเอาต์
L298N ประกอบด้วย 2 ช่องสัญญาณที่ช่วยให้สามารถควบคุมความเร็วและทิศทางได้:
ทิศทางผ่าน 2 เอาต์พุตดิจิตอลเรียกว่า IN1, IN2 สำหรับช่องแรกและ IN3 และ IN4 สำหรับวินาที
ความเร็วผ่าน 1 เอาต์พุตดิจิตอลเรียกว่า ENA สำหรับช่องแรกและ ENB สำหรับวินาที
ฉันเลือกพินเอาต์ต่อไปนี้กับ Arduino:
มอเตอร์ซ้าย: IN1 บนพิน 3, IN2 บนพิน 4, ENA บนพิน 2
มอเตอร์ขวา: IN3 บนพิน 5, IN4 บนพิน 6, ENB บนพิน 7
ตัวควบคุม 5V
แม้ว่า l298N ปกติสามารถจ่ายไฟ 5V ได้ แต่ฉันก็ยังเพิ่มตัวควบคุมขนาดเล็ก มันจ่ายไฟให้กับ Arduino ผ่านพอร์ต VIN และตัวเข้ารหัส 2 ตัวบนมอเตอร์ คุณสามารถข้ามขั้นตอนนี้ได้โดยตรงโดยใช้ตัวควบคุม L298N 5V ในตัว
ขั้วต่อ JST และพินเอาต์ตัวเข้ารหัส
ใช้อะแดปเตอร์ตัวเชื่อมต่อ JST-XH ตัวเมีย 4 พิน จากนั้นตัวเชื่อมต่อแต่ละตัวจะเชื่อมโยงกับ:
- 5V จากตัวควบคุม
- กราวด์
- พอร์ตอินพุตดิจิตอลสองพอร์ต (สำหรับตัวอย่าง: 34 และ 38 สำหรับตัวเข้ารหัสด้านขวา และ 26 และ 30 สำหรับพอร์ตด้านซ้าย)
เสริม I2C
ตามที่คุณอาจสังเกตเห็น มีขั้วต่อ JST 4 พินเพิ่มเติมบนบอร์ดโปรโต ใช้สำหรับเชื่อมต่ออุปกรณ์ I2C เช่น IMU คุณสามารถทำเช่นเดียวกันและเพิ่มพอร์ตของคุณเองได้
ขั้นตอนที่ 5: Motor Group และ Arduino ที่ชั้นล่าง
การตรึงบล็อคมอเตอร์
เมื่อชั้นล่างประกอบเข้ากับเพลทของ Turtlebot 8 ตัวแล้ว เพียงแค่ใช้สกรู M3 4 ตัวในเม็ดมีดโดยตรงเพื่อบำรุงรักษาบล็อกมอเตอร์ จากนั้นคุณสามารถเสียบสายไฟของมอเตอร์เข้ากับเอาต์พุต L298N และสายเคเบิลที่ทำไว้ก่อนหน้านี้กับขั้วต่อ JST ของโปรโตบอร์ด
การกระจายอำนาจ
การกระจายพลังงานทำได้โดยง่ายด้วยแผงขั้วต่อแบบกั้น ที่ด้านหนึ่งของสิ่งกีดขวาง สายเคเบิลที่มีปลั๊กตัวเมีย XT60 ถูกขันให้เข้ากับแบตเตอรี่ LiPo อีกด้านหนึ่ง สายไฟ LED/สวิตช์ 2 เส้นที่เราบัดกรีไว้ก่อนหน้านี้ถูกขันให้แน่น ดังนั้นแต่ละวงจร (มอเตอร์และ Arduino) สามารถเปิดใช้งานได้ด้วยสวิตช์ของตัวเองและไฟ LED สีเขียวที่สอดคล้องกัน
การจัดการสายเคเบิล
คุณจะต้องจัดการกับสายเคเบิลจำนวนมากอย่างรวดเร็ว! เพื่อลดความยุ่งเหยิง คุณสามารถใช้ 'ตาราง' ที่พิมพ์ 3 มิติก่อนหน้านี้ บนโต๊ะ รักษาบอร์ดอิเล็กทรอนิกส์ของคุณด้วยเทปกาวสองหน้า และใต้โต๊ะปล่อยให้สายไฟไหลได้อย่างอิสระ
การบำรุงรักษาแบตเตอรี่
คุณสามารถใช้ยางรัดผมเพื่อป้องกันไม่ให้แบตเตอรี่หลุดออกขณะขับรถ
ล้อลูกกลิ้ง
ไม่ใช่ลูกล้อ แต่เป็นลูกครึ่งธรรมดาที่ยึดด้วยสกรู 4 ตัวที่ชั้นล่าง ก็เพียงพอแล้วที่จะรับรองความเสถียรของหุ่นยนต์
ขั้นตอนที่ 6: คอมพิวเตอร์บอร์ดเดี่ยวและเซ็นเซอร์ที่ Upper Layer
คอมพิวเตอร์บอร์ดเดี่ยวตัวไหนให้เลือก?
ฉันไม่จำเป็นต้องนำเสนอ Raspberry Pi ที่มีชื่อเสียงให้กับคุณ เนื่องจากจำนวนกรณีการใช้งานนั้นมากกว่าสาขาวิทยาการหุ่นยนต์ แต่มีคู่แข่งที่ทรงพลังกว่ามากสำหรับ Raspberry Pi ที่คุณอาจมองข้าม อันที่จริง Jetson Nano จาก Nvidia ฝังการ์ดกราฟิก 128-core อันทรงพลังนอกเหนือจากโปรเซสเซอร์ การ์ดกราฟิกรุ่นนี้ได้รับการพัฒนาขึ้นเพื่อเร่งงานการประมวลผลที่มีราคาแพง เช่น การประมวลผลภาพหรือการอนุมานเครือข่ายประสาทเทียม
สำหรับโครงการนี้ ฉันเลือก Jetson Nano และคุณสามารถหาส่วน 3D ที่เกี่ยวข้องได้จากไฟล์ที่แนบมา แต่ถ้าคุณต้องการใช้ Raspberry Pi มีหลายกรณีที่พิมพ์ได้
ตัวควบคุม 5V
ไม่ว่าบอร์ดใดที่คุณตัดสินใจนำหุ่นยนต์มา คุณต้องมีตัวควบคุม 5V Raspberry Pi 4 รุ่นล่าสุดต้องการ 1.25A สูงสุด แต่ Jetson Nano ต้องการความเครียดสูงสุด 3A ดังนั้นฉันจึงเลือกใช้ Pololu 5V 6A เพื่อสำรองพลังงานสำหรับส่วนประกอบในอนาคต (เซ็นเซอร์ ไฟ steppers…) แต่ 5V 2A ราคาถูกควรทำ งาน. Jetson ใช้บาร์เรล DC 5.5 มม. และ Pi a micro USB คว้าสายเคเบิลที่เกี่ยวข้องแล้วบัดกรีเข้ากับเอาต์พุตตัวควบคุม
เลย์เอาต์ LIDAR
LIDAR ที่ใช้ในที่นี้คือ LDS-01 มี 2D LIDAR อื่นๆ อีกหลายตัวที่สามารถใช้ได้ เช่น RPLidar A1/A2/A3, YDLidar X4/G4 หรือแม้แต่ Hokuyo LIDAR ข้อกำหนดเพียงอย่างเดียวคือต้องเสียบผ่าน USB และวางไว้ตรงกลางเหนือโครงสร้าง แท้จริงแล้วหาก LIDAR ไม่อยู่ตรงกลาง แผนที่ที่สร้างโดยอัลกอริทึม SLAM อาจเปลี่ยนตำแหน่งโดยประมาณของกำแพงและสิ่งกีดขวางจากตำแหน่งจริง นอกจากนี้ หากมีสิ่งกีดขวางจากหุ่นยนต์ข้ามลำแสงเลเซอร์ มันจะลดระยะและระยะการมองเห็น
การติดตั้ง LIDAR
LIDAR ติดตั้งอยู่บนชิ้นส่วนที่พิมพ์ 3 มิติซึ่งมีรูปร่างตามรูปร่าง ชิ้นส่วนนั้นถูกยึดไว้บนแผ่นสี่เหลี่ยม (อันที่จริงเป็นไม้อัดในภาพ แต่สามารถพิมพ์ 3 มิติได้เช่นกัน) จากนั้นส่วนอะแดปเตอร์ช่วยให้สามารถยึดชุดบนแผ่นเต่าด้านบนด้วยสเปเซอร์ไนลอน
กล้องเป็นเซ็นเซอร์เพิ่มเติมหรือเปลี่ยน LIDAR
หากคุณไม่ต้องการใช้เงินมากเกินไปใน LIDAR (ซึ่งมีราคาประมาณ 100 เหรียญสหรัฐฯ) ให้ไปที่กล้องถ่ายรูป: มีอัลกอริธึม SLAM ที่ทำงานเฉพาะกับกล้อง RGB แบบตาเดียว ทั้ง SBC ยอมรับกล้อง USB หรือ CSI
นอกจากนี้ กล้องยังช่วยให้คุณเรียกใช้คอมพิวเตอร์วิทัศน์และสคริปต์ตรวจจับวัตถุ!
การประกอบ
ก่อนปิดหุ่นยนต์ ให้สอดสายเคเบิลผ่านรูที่ใหญ่กว่าในเพลทด้านบน:
- สายเคเบิลที่เกี่ยวข้องจากตัวควบคุม 5V ไปยัง SBC. ของคุณ
- สาย USB จากพอร์ตการเขียนโปรแกรมของ Arduino DUE (ใกล้กับบาร์เรล DC มากที่สุด) ไปยังพอร์ต USB ของ SBC ของคุณ
จากนั้นจับแผ่นด้านบนให้เข้าที่ด้วยสกรูหลายสิบตัว หุ่นยนต์ของคุณพร้อมที่จะตั้งโปรแกรมแล้ว ทำได้ดีมาก!
ขั้นตอนที่ 7: ทำให้มันเคลื่อนไหว
รวบรวม Arduino
เปิด Arduino IDE ที่คุณชื่นชอบ แล้วนำเข้าโฟลเดอร์โครงการชื่อ own_turtlebot_core จากนั้นเลือกบอร์ดของคุณและพอร์ตที่เกี่ยวข้อง คุณสามารถดูบทช่วยสอนที่ยอดเยี่ยมนี้ได้
ปรับการตั้งค่าคอร์
โปรเจ็กต์นี้ประกอบด้วยไฟล์สองไฟล์ และไฟล์หนึ่งจำเป็นต้องปรับให้เข้ากับหุ่นยนต์ของคุณ ลองเปิด own_turtlebot_config.h และค้นหาบรรทัดที่ต้องการความสนใจของเรา:
#define ARDUINO_DUE // ** แสดงความคิดเห็นบรรทัดนี้หากคุณไม่ได้ใช้เนื่องจาก **
ควรใช้กับ Arduino DUE เท่านั้น ถ้าไม่แสดงความคิดเห็นในบรรทัด
#define RATE_CONTROLLER_KP 130.0 // ** ปรับค่านี้ **
#define RATE_CONTROLLER_KD 5000000000000.0 // ** ปรับค่านี้ ** #define RATE_CONTROLLER_KI 0.00005 // ** ปรับค่านี้ **
พารามิเตอร์ 3 ตัวนั้นสอดคล้องกับอัตราที่เพิ่มขึ้นของตัวควบคุมอัตราที่ใช้โดย PID เพื่อรักษาความเร็วที่ต้องการ ขึ้นอยู่กับแรงดันแบตเตอรี่ มวลของหุ่นยนต์ เส้นผ่านศูนย์กลางล้อ และเกียร์เชิงกลของมอเตอร์ คุณจะต้องปรับค่าของพวกมัน PID เป็นตัวควบคุมแบบคลาสสิกและคุณจะไม่มีรายละเอียดที่นี่ แต่ลิงก์นี้ควรให้ข้อมูลที่เพียงพอแก่คุณในการปรับแต่งของคุณเอง
/* กำหนดพิน */
// มอเตอร์ A (ขวา) const ไบต์ motorRightEncoderPinA = 38; // ** แก้ไขด้วย PIN ของคุณ NB ** const byte motorRightEncoderPinB = 34; // ** แก้ไขด้วย PIN ของคุณ NB ** const byte enMotorRight = 2; // ** แก้ไขด้วย PIN ของคุณ NB ** const byte in1MotorRight = 4; // ** แก้ไขด้วย PIN ของคุณ NB ** const byte in2MotorRight = 3; // ** แก้ไขด้วย PIN ของคุณ NB ** // มอเตอร์ B (ซ้าย) const ไบต์ motorLeftEncoderPinA = 26; // ** แก้ไขด้วย PIN ของคุณ NB ** const byte motorLeftEncoderPinB = 30; // ** แก้ไขด้วย PIN ของคุณ NB ** const byte enMotorLeft = 7; // ** แก้ไขด้วย PIN ของคุณ NB ** const byte in1MotorLeft = 6; // ** แก้ไขด้วย PIN ของคุณ NB ** const byte in2MotorLeft = 5; // ** แก้ไขด้วย PIN ของคุณ NB **
บล็อกนี้กำหนดพินเอาต์ระหว่าง L298N และ Arduino เพียงแก้ไขหมายเลขพินให้ตรงกับของคุณ เมื่อคุณทำไฟล์กำหนดค่าเสร็จแล้ว ให้คอมไพล์และอัปโหลดโค้ด!
ติดตั้งและกำหนดค่า ROS
เมื่อคุณไปถึงขั้นตอนนี้แล้ว คำแนะนำจะเหมือนกับคำแนะนำในคู่มือ TurtleBot3 ที่ยอดเยี่ยมทุกประการ คุณต้องปฏิบัติตามอย่างเคร่งครัด
ทำได้ดีมาก TurtleBot 3 เป็นของคุณแล้ว และคุณสามารถเรียกใช้แพ็คเกจและแบบฝึกหัดที่มีอยู่ทั้งหมดด้วย ROS
ตกลง แต่ ROS คืออะไร?
ROS ย่อมาจาก Robots Operating System มันอาจจะดูค่อนข้างซับซ้อนในตอนแรก แต่มันไม่ใช่ ลองจินตนาการถึงวิธีการสื่อสารระหว่างฮาร์ดแวร์ (เซ็นเซอร์และแอคทูเอเตอร์) และซอฟต์แวร์ (อัลกอริทึมสำหรับการนำทาง การควบคุม การมองเห็นด้วยคอมพิวเตอร์…) ตัวอย่างเช่น คุณสามารถสลับ LIDAR ปัจจุบันของคุณกับโมเดลอื่นได้อย่างง่ายดายโดยไม่ทำให้การตั้งค่าของคุณเสียหาย เนื่องจาก LIDAR แต่ละรายการจะเผยแพร่ข้อความ LaserScan เดียวกัน ROS ใช้กันอย่างแพร่หลายคือหุ่นยนต์
เรียกใช้ตัวอย่างแรกของคุณ
คำว่า 'สวัสดีชาวโลก' ที่เทียบเท่ากับ ROS นั้นประกอบด้วยการทำงานทางไกลของหุ่นยนต์ผ่านคอมพิวเตอร์ระยะไกล สิ่งที่คุณต้องการทำคือส่งคำสั่งความเร็วเพื่อให้มอเตอร์หมุน คำสั่งจะเป็นไปตามไพพ์นี้:
- โหนด Turtlebot_teleop ทำงานบนคอมพิวเตอร์ระยะไกล เผยแพร่หัวข้อ "/ cmd_vel" รวมถึงข้อความ Twist
- ข้อความนี้จะถูกส่งต่อผ่านเครือข่ายข้อความ ROS ไปยัง SBC
- โหนดอนุกรมอนุญาตให้รับ "/ cmd_vel" บน Arduino
- Arduino อ่านข้อความและตั้งค่าอัตราเชิงมุมของมอเตอร์แต่ละตัวให้ตรงกับความเร็วเชิงเส้นและความเร็วเชิงมุมที่ต้องการของหุ่นยนต์
การดำเนินการนี้ง่ายและสามารถทำได้โดยเรียกใช้บรรทัดคำสั่งที่แสดงด้านบน! หากคุณต้องการข้อมูลรายละเอียดเพิ่มเติมเพียงแค่ดูวิดีโอ
[เอสบีซี]
roscore
[เอสบีซี]
rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=115200
[คอมพิวเตอร์ระยะไกล]
ส่งออก TURTLEBOT3_MODEL=${TB3_MODEL}
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
ก้าวต่อไป
คุณจำเป็นต้องรู้สิ่งสุดท้ายก่อนที่จะลองใช้ตัวอย่างอย่างเป็นทางการทั้งหมดในคู่มือทุกครั้งที่คุณเผชิญกับคำสั่งนี้:
roslaunch turtlebot3_bringup เต่าbot3_robot.launch
คุณต้องเรียกใช้คำสั่งนี้บน SBC ของคุณแทน:
rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=115200
และถ้าคุณมี LIDAR ให้รันคำสั่งที่เกี่ยวข้องบน SBC ของคุณ ในกรณีของฉัน ฉันจะรัน LDS01 ด้วยบรรทัดด้านล่าง:
roslaunch hls_lfcd_lds_driver hlds_laser.launch
และนั่นคือทั้งหมด คุณได้สร้าง Turtlebot ของคุณเองแล้ว:) คุณพร้อมที่จะค้นพบความสามารถอันยอดเยี่ยมของ ROS และกำหนดรหัสวิชันซิสเต็มและอัลกอริธึมการเรียนรู้ของเครื่องแล้ว
แนะนำ:
ทำพัดลม USB ของคุณเอง - ภาษาอังกฤษ / ภาษาฝรั่งเศส: 3 ขั้นตอน
ทำพัดลม USB ของคุณเอง | ภาษาอังกฤษ / ภาษาฝรั่งเศส: ENGLISH วันนี้ฉันเห็นในเว็บไซต์ที่เราสามารถซื้อพัดลม USB ได้ แต่ฉันบอกว่าทำไมไม่ทำของฉัน? สิ่งที่คุณต้องการ: - ช่างไฟฟ้าเทปกาวหรือเทปเป็ด - พัดลม PC - สาย USB ที่ไม่ให้บริการคุณ - เครื่องตัดลวด - ไขควง - หอยร้อยสาย
สร้างหุ่นยนต์ Telepresence ที่ควบคุมผ่าน Wifi: 11 ขั้นตอน (พร้อมรูปภาพ)
สร้างหุ่นยนต์ Telepresence ที่ควบคุมผ่าน Wifi: โครงการนี้เกี่ยวกับการสร้างหุ่นยนต์ที่สามารถโต้ตอบกับสภาพแวดล้อมระยะไกลและควบคุมจากส่วนใดของโลกโดยใช้ Wifi นี่เป็นโครงการวิศวกรรมปีสุดท้ายของฉัน และฉันได้เรียนรู้มากมายเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์ IoT และการเขียนโปรแกรม แม้ว่าฉันจะ
สร้างหุ่นยนต์ Maze Runner: 3 ขั้นตอน (พร้อมรูปภาพ)
สร้างหุ่นยนต์วิ่งเขาวงกต: หุ่นยนต์แก้เขาวงกตมีต้นกำเนิดมาจากทศวรรษ 1970 ตั้งแต่นั้นมา IEEE ได้จัดการแข่งขันการแก้เขาวงกตที่เรียกว่า Micro Mouse Contest เป้าหมายของการแข่งขันคือการออกแบบหุ่นยนต์ที่จะหาจุดกึ่งกลางของเขาวงกตให้เร็วที่สุด อา
สร้างหุ่นยนต์ 'Fantastic Plastics Works' นวัตกรรมฟรีของคุณเพื่อเรืองแสง: 5 ขั้นตอน
สร้างสรรค์นวัตกรรมใหม่ฟรีของคุณ หุ่นยนต์ 'Fantastic Plastics Works' ให้เรืองแสง: ใช้ไฟ LED ที่วางจำหน่ายนอกชั้นวางเพื่อทำให้ 'หุ่นยนต์' พลาสติกเรืองแสงและสีจางลง! ให้ความรู้เบื้องต้นเกี่ยวกับการบัดกรี วงจร ไฟ LED และพลาสติก
สร้างหุ่นยนต์!: 16 ขั้นตอน (พร้อมรูปภาพ)
Make a Robotty!: คำแนะนำนี้จะแสดงวิธีสร้าง Robot Sculpture ที่สว่างขึ้นด้วยไฟ LED โครงการทั้งหมดมีราคาไม่แพงนัก ชิ้นส่วนทั้งหมดสามารถพบได้ทั่วบ้านและที่ร้านฮาร์ดแวร์ในท้องถิ่นและร้านขายงานฝีมือ ฉันจะแสดงให้คุณเห็นทีละขั้นตอน