SKCONAN

ติดตั้ง ROS Kinetic บน Ubuntu 16.04 LTS

February 17, 2019

title

มาทำความรู้จักกับ ROS กันคร่าวๆก่อนนะครับ ก็อย่างที่เห็นนะครับมันคือ Robot OS แต่อยากให้มองว่ามัน Framework ที่ใช้ในการเขียนโปรแกรมหุ่นยนต์มากกว่าครับ ที่สำคัญ คือ เป็น Open-Source

โดยเจ้าตัว ROS เนี่ยมันจะรวบรวม Libraries หรือ Tools ที่สำคัญต่างๆไว้มากมายเลยทีเดียว และยังรองรับการเขียนโปรแกรมทั้งในภาษา C++ และ Python อีกด้วยครับ

ทุกอย่างที่เขียนในบทความนี้จะอ้างอิงจาก wiki ของ ROS นะครับ

ก่อนการติดตั้งให้ Check version ของ Ubuntu ให้ตรงกับ version ของ ROS ด้วยนะครับ เพราะ อย่างเช่น ROS Kinetic ที่เราจะติดตั้งกัน ถ้าไปลง Ubuntu ที่สูงกว่า 16.04 ก็จะไม่สามารถติดตั้งได้


ขั้นตอนการติดตั้ง

1. ตั้งค่า sources.list

เพิ่ม ROS Package ไปที่ sources.list.d เพื่อให้ Ubuntu ยอมให้เราเข้าถึง Software จาก packages.ros.org.

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release-sc) main" >/etc/apt/sources.list.d/ros-latest.list' 

2. การตั้งค่า Key

เพิ่ม key สำหรับ Downlaod file จาก ROS Server

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 

ผลลัพธ์

gpg: requesting key B01FA116 from hkp server ha.pool.sks-keyservers.net
gpg: key B01FA116: public key "ROS Builder <rosbuild@ros.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1

ถ้าใครมีปัญหาการเชื่อมต่อ Keyserver ให้ลองเปลี่ยนจาก hkp://ha.pool.sks-keyservers.net:80 มาเป็น hkp://pgp.mit.edu:80 or hkp://keyserver.ubuntu.com:80

3. อัพเดท Debian package

ขั้นตอนนี้ก็จะเป็นการ Update ข้อมูลจาก ROS Server

$ sudo apt-get update 

4. ติดตั้ง ROS-Kinetic

โดยเราจะลงตัว desktop-full ซึ่งจะมี Package พื้นฐานครบทุกตัว แนะนำให้ลงตัวนี้ไปก่อนนะครับ จะได้ไม่มีปัญหาเรื่อง Package

sudo apt-get install ros-kinetic-desktop-full 

หรือใครที่กลัวจะเปลืองพื้นที่ ก็จะมีอีกสองตัวล่างนะครับ ซึ่งแต่ละ Package ก็ต่างกันอยู่ลองดูจากตารางได้ครับ ว่าอันไหนเหมาะกับเรา

Package Description
ros-kinetic-desktop-full ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
ros-kinetic-desktop ROS, rqt, rviz, and robot-generic libraries
ros-kinetic-ros-base ROS package, build, and communication libraries. No GUI tools

แล้วก็พอเราใช้ ros ไปเรื่อยๆ เราอาจจะต้องติดตั้ง Package เพิ่ม

เช่น เราอยากจะทำ Stereo Vision โดยใช้ package stereo_image_proc ซึ่งคำสั่งที่ใช้ในการติดตั้ง คือ

sudo apt-get install ros-kinetic-<package ที่จะลง> 

แล้วก็ให้เราเปลี่ยนชื่อ package จาก (_) Underscore เป็น (-) Dash แทนก็จะได้

sudo apt-get install ros-kinetic-stereo-image-proc 

5. ตั้งค่า rosdep

ทำไมต้องตั้งค่ามัน เพราะว่าเจ้าตัว rosdep เนี่ยจะช่วยให้เราสามารถติดตั้ง dependencies ต่างๆได้ง่ายขึ้น

sudo rosdep init 
rosdep update 

6. การตั้งค่า Environment

เป็นการเพิ่มตัวแปร environment ของ ROS ลงใน Bash session โดยเราจะใช้คำสั่ง

source /opt/ros/kinetic/setup.bash  

พิเศษสำหรับใครที่ใช้ zshell ให้สั่ง

source /opt/ros/kinetic/setup.zsh  

แล้วลองพิมพ์ ros แล้วก็กด tab สองที เราจะเห็นว่ามี ROS มี command หลายตัวเลย

ros tab tab

ทีนี้ให้เปิด Terminal ขึ้นมาใหม่นะครับ แล้วลองพิมพ์ ros แล้วกด tab tab เห็นอะไรมั้ยครับ ว่ามันไม่มี command ของ ROS แสดงขึ้นมาเลย (Terminal ล่าง) มีแต่พวกคำสั่งที่ใช้ดู version หรืออะไรนิดๆหน่อยๆ นั้นก็เพราะว่า เวลาที่เราเปิด Terminal ใหม่ เราจะต้องเพิ่มตัวแปร environment ของ ROS ลงใน Bash session ใหม่

แล้วลองพิมพ์ ros แล้วก็กด tab สองที เราจะเห็นว่ามี ROS มี command หลายตัวเลย (Terminal บน)

source compare

ใครจะมานั่งพิมพ์ source /opt/ros/kinetic/setup.bash ทุกครั้งใช่มั้ยครับ ใน ubuntu จะมีไฟล์ .bashrc อยู่ในเราเพิ่มคำสั่งด้านบนไปที่บรรทัดสุดท้ายของไฟล์ .bashrc โดยใช้คำสั่ง

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

หรือถ้าเป็น zshell ก็

echo "source /opt/ros/kinetic/setup.zsh" >> ~/.zshrc 

แล้วก็สั่ง source ไฟล์ .bashrc รอบนึง

source ~/.bashrc 

zshell ก็

source ~/.zhrc 

หลังจากนั้นให้ลองเปิด ปิด Terminal ใหม่ แล้วทดสอบเหมือนเดิม ถ้ามี command ของ ROS แสดงขึ้นมาก็ถือว่าการติดตั้งทุกอย่างเสร็จแล้ววววววววว เย้ๆๆๆๆๆๆๆ




© 2019, Built with