Software Review: libnifalcon

Software Review: libnifalcon

libnifalcon คือ open source library สร้างขึ้นมาเพื่อใช้ในการใช้งาน Novint Falcon Haptic Device โดย Library นี้สามารถใช้ได้ทั้งบนระบบปฎิบัติการ window และ linux โดยสำหรับบทความนี้จะยกตัวอย่างการใช้งานบน linux (ubuntu) เป็นหลัก

Library Requirements

  • Cmake
  • ftd2xx (Recommended for Windows)
  • libusb 1.0 (Recommended for Linux or Mac)

How to install library

สำหรับ ubuntu ให้ทำการเปิด terminal และพิมพ์คำสั่ง

git clone https://github.com/libnifalcon/libnifalcon.git libnifalcon

เพื่อใช้ในการ clone github library จากนั้นจึงเข้าไปยัง folder ที่พึ่งได้มาโดยใช้คำสั่ง

cd libnifalcon

แล้วจึงใช้คำสั่ง

mkdir build
cd build

ซึ่งเป็นการสร้าง folder build สำหรับการ build file แล้วจึงใช้คำสั่ง

cmake -G "Unix Makefiles" ..
make
make install

โดยจะเป็นการ build และ install file ขึ้นมา

How to use Library

เมื่อทำการ install แล้ว สามารถทำการทดลองใช้ example code ที่แนบมากับ Library ได้ดังนี้

ทำการเข้าไปที่ folder bin ของ library ผ่านคำสั่ง

cd bin

จากนั้นจะเห็นว่ามีโปรแกรมตัวอย่างทั้งหมด 5 โปรแกรมดังนี้

โดยวิธีการทดลองใช้แต่ละโปรแกรมจะทำพิมพ์เครื่องหมาย ./ นำหน้าไฟล์ที่จะใช้ เช่น หากต้องการจะใช้ไฟล์ findfalcons ให้ทำการพิมพ์คำสั่ง

./findfalcons

โดยสำหรับการใช้โปรแกรม falcon_test_cli จะมีคำสั่งเพิ่มเติมสำหรับการเลือก test ต่างๆ ดังนี้

  • loop_time_test
  • cube_test
  • sphere_test
  • color_test
  • x_wall_test
  • y_wall_test
  • z_wall_test

ซึ่งวิธีการเลือกใช้ test ต่างๆ สามารถใช้งานได้โดยการเพิ่ม — ตามด้วย test ที่ต้องการค่ะ เช่นหากต้องการทดลอง run โปรแกรมในส่วนของ y_wall_test ให้พิมพ์คำสั่งดังนี้

./falcon_test_cli --y_wall_test

วิดีโอตัวอย่างการใช้งาน

ผลลัพธ์เมื่อทำการ run ./falcon_test_cli –y_wall_test

ข้อดีของ software

สามารถใช้ได้กับหลายๆระบบปฎิบัติการ เช่นบน window หรือบนlinux

ข้อเสียของ software

หากจะทำการพัฒนาโปรแกรมสำหรับ falcon ผ่าน libnifalcon จำเป็นที่จะต้องมีความเข้าใจในภาษา cpp และมีความเข้าใจในการเขียนโปรแกรมแบบ Object Oriented Programming

Discussion

สำหรับการนำไปใช้ต่อ สามารถนำ library นี้ไปประยุกต์ใช้ในการควบคุม falcon อื่นๆได้ เช่นการนำไปใช้ในการควบคุมหุ่นยนต์ หรือทำการจำลองต่างๆ เช่นการจำลองการผ่าตัด

อ้างอิง

https://github.com/libnifalcon/libnifalcon