วันจันทร์ที่ 23 ธันวาคม พ.ศ. 2562

#4 ROS rospy เขียน python กับ ROS

เริ่มเขียน Python บน ROS . ยังไง






#3 เริ่ม Create ROS Workspace

การสร้าง .Workspace ใน ROS

การสร้าง Folder ของ Workspace
การ Initial workspace
การสร้าง package
การกำหนด source


#6 ROS on multiple machines ทำอย่างไรให้ติดต่อ ROS มากกว่า 2 ตัว


ROS on multiple machines ทำอย่างไรให้ติดต่อ ROS 

มากกว่า 2 ตัว


     ในบทความนี้จะพูดถึงการติดต่อกันระหว่าง ROS 2 ตัว โดยจะให้ตัวที่ 1 . Run  roscore เพื่อเป็น Master ในการประมวลผล  และอีกตัวหนึ่งเป็นการติดต่อ Master เพื่อรับและส่งข้อมูลระหว่าง ROS มากกว่า 1 ตัว 






ในตัวอย่างต่อไปนี้   เราจะมาทดสอบ Turtlesim โดยให้ MASTER เป็นตัวที่แสดงผลโปรแกรม และ Client จะเป็นส่วนของการควบคุมโดยในที่นี้เราจะใช้ turtlesim_teleop โดยผลลัพธ์ที่ได้คือเราสามารถใช้งานร่วมกันระหว่าง ROS 2 ตัวได้

ตาม VDO นี้ .


#5 ROS + Joy Stick

ROS + Joy Stick USB


การเชื่อมต่ออุปกรณ์ Joy Stick กับ ROS (Robot Operation Systems) เพื่อควบคุมการทำงานกับอุปกรณ์ต่างๆ เช่นควบคุม motor ต่างๆ
การติดต่อกับ Joy Stick จะต้องลง package ubuntu   ตามคำสั่งนี้

และต้องลง Package ของ ROS .  ชื่อ #sudo apt-get install ros-melodic-joy

การใช้งาน อุปกรณ์ Joystick จะอยู่ที่ .  # ls  /dev/input/js0  หรือ js1 ต้องลองดูว่าสามารถใช้ตัวไหนได้บ้างโดยใช้คำสั่ง . # sudo  jstest /dev/input/js0 .   จะเห็นข้อมูลต่างๆ ของปุ่มบน joystick . ทดลองกดได้เลย ลองดูการเปลี่ยนแปลงของชุดข้อมูล



VDO สอน




#2 เริ่มต้นใช้ ROS ด้วย Turtlesim

เริ่มต้นใช้ ROS


การติดตั้ง Ubuntu กับ ROS melodic สามารถดูได้ที่ http://wiki.ros.org/melodic/Installation/Ubuntu

มาเรียนรู้  tutlesim   

tutlesim คือ โปรแกรมที่ติดตั้งมากับ ROS เพื่อเป็นพื้นฐานการเรียนรู้การทำงานของ ROS โดยการจำลอง เต่า มา 1 ตัวในกรอบ ซึ่งจะเป็นตัวอย่างจะควบคุมการทำงาน ROS 
การเรียนรู้ Public / Subscripts เรียนรู้คำสั่งต่างๆ ที่เกี่ยวกับ ROS




1. เปิด terminal เพื่อ Runคำสั่ง   # roscore เพื่อพร้อมกับการใช้งาน  ROS

2.  เปิด terminal  ใหม่เพื่อสร้าง tutlesim ขึ้นมา โดยใช้คำสั่ง # rosrun turtlesim turtlesim_node
     อธิบายการทำงาน . rosrun คือคำสั่ง run  node tultlesim ขึ้นมา
     รูปแบบ  #  rosrun   
     อธิบายง่ายๆ turtlesim_node คือโปรแกรมที่รอรับคำสั่งเพื่อทำให้เต่าเคลื่อนที่ไปได้ ในขั้นตอนนี้คือ initial ค่าเริ่มต้นและรอคำสั่งในขั้นตอนต่อไป


3. เปิด Terminal ใหม่เพื่อสร้างการรับข้อมูลจาก Keyboard โดยใช้คำสั่ง
    # rosrun turtlesim turtle_teleop_key
    คำสั่งนี้เมื่อ run แล้ว จะหน้าจอจะค้าง . เราสามารถกดปุ่ม ขึ้น ลง ซ้าย ขวา โดยสั่งเกตุหน้าต่าง turtlesim_node . จะมีการเคลื่อนไหวแล้ว


4.  เปิด Terminal ใหม่เพื่อเปิดโปรแกรม rqt_graph เพื่อแสดงความสัมพันธ์การทำงาน การส่ง Message ภายในตัว Turtlesim


5.  เปิด Terminal ใหม่เพื่อทดสอบการใช้ Command line 

    -> rosnode list

    -> rostopublic list

    -> rostopblic echo /turtle/cmd_vel











#1 What is Robots ? and What is ROS ( Robot Operating Systems )?




  หุ่นยนต์ ROBOTS


 แบ่งประเภทหุ่นยนต์หลักๆได้ 2 ประเภท












1. Stationary Robots หรือหุ่นยนต์ที่ไม่สามารเคลื่อนที่ได้ หุ่นยน์ประเภทนี้จะเหมาะกับโรงงาน


     Stationary Robots ยังแบ่งย่อยออกเป็น ชนิดต่างๆ 
  • Cartesian Robots
  • Cylindrical
  • Spherical
  • SCARA
  • Articulated
  • Parallel





2. Mobile Robots คือหุ่นยนต์ที่เคลื่อนที่ได้ไม่ว่าจะเป็นชนิด ล้อ หรือ ขา หรือ Drone 





ROS (Robot Operating System) คือ

        ROS มีโครงสร้างการทำงานแบบ node ซึ่งมีหลายๆ node ทำงานร่วมกันและมีการส่อสารด้วยวิธี การ Public  และ Subscript



        ROS คือ โครงการโอเพนซอร์สที่สร้าง Framework โดยรวบรวม library และเครื่องมือต่างๆ ทั้ง Hardware และ Software เพื่อลดความซับซ้อนและเพิ่มประสิทธิภาพในการ สร้างหุ่นยนต์  โดยนำ . ROS ไปใช้ประโยชน์ในการสร้างหุ่นยนต์ด้านอุตสาหกรรม หรือ หุ่นยนต์ที่มีความซับซ้อนสูง






      ROS เราสามารถเขียนโปรแกรมเพิ่มเติมได้ด้วย ภาษา Python และ C++  ทำให้พัฒนาโปรแกรมได้สะดวก รวมทั้ง ROS เป็น OpenSource สามารถปรับแต่งและพัฒนาต่อยอดได้


      Website สำหรับ ROS www.ros.org


ROS เป็น OpenSource Framework ที่ต้อง Run บนระบบปฎิบัติการ Linux ซึ่ง ROS จะ Support  Ubuntu 18.04 สำหรับ ROS Version Melodic




ตัวอย่างรูปแบบการทำงานของ ROS














 เครื่องมือที่ช่วยในการพัฒนาใน ROS


1. rqt_graph . rqt_graph จะเป็นการแสดงกราฟการเชื่อมต่อกันระหว่าง nodes ต่างๆที่มีการส่งข้อมูลหากัน ผ่าน GUI

2. rviz  โปรแกรมสำหรับเชื่อมต่อข้อมูลแสดงเป็น . User Interface
3. Gazebo เป็น simulator ที่สนับสนุนหุ่นยนต์หลายตระกูล 






ROS ต่อกับอะไรได้บ้าง


1. ROS เชื่อต่อกับ Bord Arduino  ได้โดยเชื่อมต่อแบบ rosserial   ด้วย Package  rosserial






2. ROS เชื่อมต่อกับ Joy stick ไว้ควบคุม




3. ROS เชื่อมต่อกับ กล้อง Camera และการเชื่อมต่อกับ Lidar





4. ROS ต่อกับ  Kinect



5. ROS ต่อกับ OpenCV




ตัวอย่างการใช้ ROS ทำ Robot Arm







สอนเขียนโปรแกรม ในขอนแก่น และภาคอีสาน

สอนเขียนโปรแกรม ในขอนแก่น และภาคอีสาน (Programming , KhonKaen ) ประสบการณ์.มากกว่า 18 ปี ป.ตรี วิทยาการคอมพิวเตอร์ ม.กรุงเทพ ป.โท วิทยาการคอ...