2. ติดตั้ง Ubuntu กับ ROS 2
เลือกรุ่นให้ตรงกันก่อน
Danger
ROS 2 แต่ละรุ่นใช้ได้กับ Ubuntu รุ่นเดียวเท่านั้น ลง Ubuntu ผิดรุ่นแล้วติดตั้ง ROS 2 ที่ต้องการไม่ได้ ต้องลง Ubuntu ใหม่ทั้งเครื่อง ตรวจข้อนี้ให้แน่ก่อนเริ่ม
ROS 2 |
Ubuntu |
หมดอายุ |
|---|---|---|
Humble ← คู่มือนี้ใช้ตัวนี้ |
22.04 |
พ.ค. 2027 |
Jazzy |
24.04 |
พ.ค. 2029 |
เลือก Humble เพราะแพ็กเกจสำหรับหุ่นเคลื่อนที่ (Nav2 · slam_toolbox · ไดรเวอร์ LiDAR)
นิ่งและมีตัวอย่างให้ดูมากที่สุด
ติดตั้ง Ubuntu 22.04
ใช้ Ubuntu Desktop 22.04 LTS ไม่ใช่รุ่น Server เพราะต้องใช้ RViz ซึ่งต้องมีหน้าจอ
ดาวน์โหลดจาก releases.ubuntu.com/22.04
Tip
ลงลงเครื่องจริง อย่าลงใน VirtualBox หรือ VMware ถ้าตั้งใจจะต่ออุปกรณ์จริง — เครื่องเสมือนมักมีปัญหากับพอร์ต USB และเวลาที่เดินไม่ตรง ซึ่งทำให้ค่า odometry เพี้ยน
ติดตั้ง ROS 2 Humble
รันตามลำดับ แต่ละบล็อกรอให้เสร็จก่อนค่อยทำอันถัดไป
① เปิด repository ที่ Ubuntu ต้องใช้
sudo apt update && sudo apt install -y software-properties-common curl
sudo add-apt-repository universe
② เพิ่มกุญแจและแหล่งของ ROS 2
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \
-o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] \
http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" \
| sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
③ ติดตั้ง
sudo apt update
sudo apt install -y ros-humble-desktop
ros-humble-desktop รวม RViz กับตัวอย่างมาให้แล้ว ใช้เวลาสักพักและกินพื้นที่ราว 3 GB
④ เครื่องมือสำหรับ build
sudo apt install -y python3-colcon-common-extensions python3-rosdep
sudo rosdep init && rosdep update
ตรวจว่าใช้ได้จริง
ติดตั้งเสร็จแล้วยังใช้ไม่ได้ทันที ต้อง source ก่อนทุกครั้งที่เปิด terminal ใหม่
source /opt/ros/humble/setup.bash
แล้วทดสอบด้วยการเปิด 2 terminal
terminal ที่ 1
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker
terminal ที่ 2
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_py listener
ถ้าถูกต้อง ฝั่ง talker จะพิมพ์ Publishing: 'Hello World: 1' ไปเรื่อย ๆ
และฝั่ง listener จะพิมพ์ I heard: [Hello World: 1] ตามหลัง
Important
ทดสอบนี้พิสูจน์ 2 อย่างพร้อมกัน — ติดตั้งครบ และการสื่อสารระหว่าง node ทำงาน ถ้า talker พิมพ์แต่ listener เงียบ อย่าเพิ่งไปต่อ แก้ตรงนี้ให้ได้ก่อน
ให้ source เองอัตโนมัติ
พิมพ์ source ทุกครั้งน่ารำคาญ ใส่ลง ~/.bashrc ให้ทำเองได้
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
Warning
🔴 ข้อนี้เป็นดาบสองคม — พอทำแล้วจะลืมไปเลยว่าต้อง source
วันที่ไปใช้เครื่องอื่นที่ไม่ได้ตั้งไว้ จะเจอ ros2: command not found
แล้วงงว่าทำไมเครื่องนี้ใช้ไม่ได้ ทั้งที่แค่ยังไม่ได้ source
จำไว้ว่า .bashrc แค่พิมพ์แทนเรา ไม่ได้แปลว่าไม่ต้อง source
ปัญหาที่เจอบ่อย
อาการ |
สาเหตุ |
|---|---|
|
ยังไม่ได้ |
|
Ubuntu ไม่ใช่ 22.04 — ตรวจด้วย |
talker ทำงาน แต่ listener ไม่ได้ยิน |
terminal ที่ 2 ยังไม่ได้ source · หรือมีไฟร์วอลล์บล็อก |
ติดตั้งช้ามาก |
เปลี่ยน mirror ของ Ubuntu เป็นของไทย |
ก่อนหน้า: 1. ROS 2 คืออะไร · ต่อไป: 3. node · topic · message