Jul 14, 2018

ROS networking แบบไม่ต้องจำ IP address

ในการตั้งค่า network เพื่อควบคุมหุ่นยนต์ ROS แบบ remote ผ่าน WiFi ผมประสบปัญหาอย่างหนึ่ง คือ บางครั้ง router มันเปลี่ยนค่า IP address ของเครื่องคอมพิวเตอร์ หรือ บางทีก็จำ IP address ไม่ได้บ้าง ในเวบนี้มีวิธีแก้ปัญหา คือ แทนที่จะจำ IP address เรามาจำชื่อ url กันดีกว่า เช่น ssh ubuntu@myrobot.local แทนที่จะเป็น ssh ubuntu@192.168.0.1

1. ตั้งชื่อคอมพิวเตอร์ทั้งเครื่อง local และ remote โดยการแก้ไขไฟล์ /etc/hostname และ /etc/hosts

2. ติดตั้ง zeroconf ทั้งในเครื่องคอมพิวเตอร์ local และ remote
sudo apt-get install netatalk
sudo apt-get install avahi-daemon
sudo update-rc.d avahi-daemon defaults

3. ทดสอบการเชื่อมต่อ
ping local-pc.local
ping myrobot.local

4. ตั้งค่าในไฟล์ .bashrc
ในเครื่อง local เพิ่ม
export ROS_MASTER_URI=http://myrobot.local:11311
export ROS_HOSTNAME=local-pc.local

ในเครื่อง remote ที่ติดไปกับหุ่นยนต์ เพิ่ม
export ROS_MASTER_URI=http://localhost:11311
export ROS_HOSTNAME=myrobot.local

อย่าลืม source .bashrc หลังบันทึกไฟล์แล้ว

5. ตอนนี้เราก็สามารถ ssh แบบไม่ต้องจำ IP address ได้เช่นกัน
ssh username@myrobot.local

ถ้าไม่อยากใส่ password ในการ ssh ทุกครั้ง อ่านบทความนี้

No comments:

Post a Comment