Sep 25, 2017

การติดตั้ง ROS TurtleBot ใน Jetson TK1

หลังจากติดตั้ง OS และ ซอฟต์แวร์ต่างๆ ด้วย JetPack 3.1 ลงบน Jetson TK1 ผมก็พยายามติดตั้ง ROS และ TurtleBot package แต่ไม่ประสบความสำเร็จเนื่องจากมีปัญหาเล็กน้อยๆ เกี่ยวกับ driver และ uvcvideo ซึ่งจำเป็นต่อการตั้งตั้ง librealsense แม้ว่าเราจะไม่ได้ใช้ก็ตาม แต่มันเป็น dependency ของ TurtleBot ผมได้พบวิธีแก้ปัญหาจากกระทู้นี้ และนำมาปรับใช้จนกระทั่งพบกับความสำเร็จ ผมขอสรุปขั้นตอนดังนี้ โดยขอย้ำว่าอย่าทำสลับลำดับเด็ดขาด

1. ลง JetPack ล่าสุด ในที่นี้ของผมใช้ JetPack 3.1 มาพร้อมกับ L4T 21.5 โดยตัว OS คือ Ubuntu 14.04 LTS (Trusty Tahr) โดยมี kernel version: 3.10.40 ขั้นตอนวิธีติดตั้งอ่านที่นี่

2. คอมไฟล์ kernel เพื่อติดตั้งโมดูล uvcvideo ตามการแนะนำจาก jetsonhacks.com แต่มีบางขั้นตอนที่ต้องดัดแปลง ซึ่งขั้นตอนในส่วนนี้มีดังนี้

  • git clone https://github.com/jetsonhacks/installLibrealsense.git
  • cd installLibrealsense/UVCKernelPatches
  • เปิดไฟล์ scripts/installKernelSources.sh แล้วแก้บรรทัดนี้ wget http://developer.download.nvidia.com/embedded/L4T/r21_Release_v4.0/source/kernel_src.tbz2 ให้เป็น wget http://developer.download.nvidia.com/embedded/L4T/r21_Release_v5.0/source/kernel_src.tbz2 เนื่องจาก L4T เป็นเวอร์ชัน 21.5 นั่นเอง
  • ./getKernelSources.sh หลังนั้นจะมีหน้าต่าง kernel config โผล่ขึ้นมา ให้แก้ไข  General Setup -> Local version – append to kernel release: โดยดูจาก $uname -r โดยเครื่องหมาย - ห้ามนำออก จากนั้น Device Drivers -> Multimedia Support -> Media USB Adapters -> USB Video Class (UVC) ให้เลือกเป็นรูป วงกลม สุดท้าย save
  • ./applyUVCPatch.sh
  • ./buildKernel.sh
  • ./copyzImages.sh
  • cd .. และ ./setupTK1.sh เพื่อแก้ไขปัญหา USB 3.0 
  • สุดท้าย reboot แล้วใช้คำสั่ง lsmod จะพบว่ามี uvcvideo แล้ว
3. หลังจากขั้นที่ 2 เสร็จสิ้น เราสามารถลง ROS Indigo บน UbuntuARM ด้วยวิธีปกติ หรือ เพื่อความสะดวกใช้สคริปต์จาก https://github.com/jetsonhacks/installROS
4. ลง ROS TurtleBot ตามปกติ 
5. rosrun kobuki_ftdi create_udev_rules เพื่อแก้ไขปัญหา driver สำหรับ Kobuki base
6. sudo usermod -a -G video $USER 
7. เพิ่ม บรรทัดข้างล้างนี้ ใน .bashrc
export TURTLEBOT_BASE=kobuki

export TURTLEBOT_3D_SENSOR=asus_xtion_pro 
8. ติดตั้ง Grinch kernel จาก https://github.com/jetsonhacks/installGrinch จากนั้น reboot ก็จะใช้งานได้ตามปกติ

อ่านเพิ่มเติม

No comments:

Post a Comment