2. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Hello
陳功瀚 (Kartik)
淡江電機博士班研究生
曾經帶領開發過的機器人
足球機器人
移動機械臂
極早期滅火機器人
揀貨機器人應用於ARC
使用ROS( Robot Operating System)的經歷
2013年開始
約4年
P-2/31
3. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
大綱
ROS介紹
Why ROS?
機器人介紹
ROS系統概念
Topic、Service
Gazebo (3D Simulator)
Humix與ROS結合
概觀
安裝介紹
操作介紹
簡易demo
P-3/31
4. 淡江大學電機工程學系 / 智慧型控制實驗室淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
ROS
Robot Operating System
Powering the world’s robots
OSRF(Open Source Robotics Foundation)
5. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
ROS介紹(1/3)
Robot Operating System (ROS)
歷史
2007年,由史丹佛人工智慧實驗室(Stanford Artificial
Intelligence Laboratory)發展
2008 – 2013年,主要由Willow Garage 進行維護
2013年-,主要由OSRF進行維護
提供類似作業系統的功能 (operating system-like functionality)
非作業系統
必須基於作業系統下進行
預設為Linux Ubuntu
支援Raspberry Pi
亦可實現在OS X作業系統 (Experimental)
P-5/31
6. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
ROS介紹(2/3)
支援的作業系統
P-6/31
7. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
ROS介紹(3/3)
更準確來說,ROS是一個「機器人開發框架」
完善並且簡單的通訊架構
專案管理
透過簡單共通的通訊架構,迅速使用別人開發的專案
只需了解輸出入內容即可使用
不需作程式整合
方便的工具
3D 介面(Gazebo、Rviz)
開放原程式
眾多專案(Package)可供使用
Hokuyo雷射測距儀、IMU、Kinect、Realsense…等感測裝置
Arduino模組
各式演算法與套件支援模組(OpenCV、PCL、SLAM….等)
P-7/31
8. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Why ROS? (1/12)
使用ROS為平台的機器人
PR2 (Personal Robotics)
Aldebaran Nao
Meka
Toyota’s HSR
youBot
UBR-1
LEGO NXT
P-8/31
PR2 Aldebaran Nao
ASCTec Hummingbird
Toyota’s HSR
Meka
UBR-1
9. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Why ROS? (2/12)
PR2 (Personal Robotics)
http://www.willowgarage.com/pages/pr2/specs
P-9/31
Type PR2
Software ROS
Manipulator A Arm :: 4
B Wrist :: 3
C Gripper :: 1
Payload 1.8 Kg
Computing Processors :: Two
Quad-Core i7 Xeon
Processors (8 cores)
Memory :: 24 GB
10. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Why ROS? (3/12)
PR2 (Personal Robotics) 摺衣服,50x,2010年
P-10/31
https://www.youtube.com/watch?v=gy5g33S0Gzo
11. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Why ROS? (4/12)
P-11/31
12. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Why ROS? (5/12)
Meka-M1
http://mekabot.com/products/m1-mobile-manipulator/
P-12/31
Type M1
Software ROS
Weight 165Kg
Size Height 1260mm
Length 800 mm
Width 460 mm
Manipulator 7 DOF
Payload 1.5kg
Release 2011
13. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Why ROS? (6/12)
Toyota’s HSR(Human Support Robot)
http://www.toyota-global.com/innovation/partner_robot/family_2.html
P-13/31
Type HSR
Software ROS
Weight 32Kg
Size Height 830~1330mm
Diameter:370mm
Payload 1.5kg
Release 2012
14. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Why ROS? (7/12)
Unbounded Robotics UBR-1
http://unboundedrobotics.com/
P-14/31
Type UBR-1
Software ROS
Weight 73kg
Size Height Min 965mm
Height Max 1320mm
Manipulator 7-DOF
Payload 1.5kg
Speed 1.0m/s
Release 2013
Special 14”Vertical Travel
3D RBG-sensor
Self Docking
2D Laser Scanner
15. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Why ROS? (8/12)
Aldebaran NAO
Aldebaran's NAOqiOS
naoqi_driver 溝 通 NAOqiOS
與ROS
可使用ROS套件進行控制
https://community.aldebaran-robotics.com/nao/
P-15/31
Type Nao
Weight 5.2Kg
Size Height 573mm
Length 275 mm
Width 311 mm
FREEDOM HEAD x2 DOF
ARM x5 DOF
PELVIS x1 DOF
LEG x5 DOF
HAND x1 DOF
16. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Why ROS? (9/12)
Pepper
由Aldebaran與Softback開發
2013年Aldebaran已併Softback併下
naoqi_driver溝通NAOqiOS 與ROS
可使用ROS套件進行控制
P-16/31
17. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Why ROS? (10/12)
淡江機器人中心使用ROS實現之機器人
P-17/31
滅火機器人 (與消防基金會合作)
足球機器人
揀貨機器人
18. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Why ROS? (11/12)
ROS 8 Years
P-18/31
https://www.youtube.com/watch?v=Z70_3wMFO24
19. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Why ROS? (12/12)
ROS實現的機器人
ROS機器人列表
http://robots.ros.org/
ROS 8 Years:
https://www.youtube.com/watch?v=Z70_3wMFO24
ROS 5 Years:
https://www.youtube.com/watch?v=PGaXiLZD2KQ
ROS 3 Years:
https://www.youtube.com/watch?v=7cslPMzklVo
P-19/31
20. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
ROS系統概念(1/4)
整個ROS由各個Package(專案)組成
roscpp
rospy
每個Package由各個Node(節點)組成
每個Node都是一個單獨的程式
亦即每個Node都有一個程式進入點(main)
所有的Node由TCP/IP進行溝通,並提供以下方法
Topic
Service
所有資源的表示,以Linux路徑方式表示
/Vision/FaceDect
P-20/31
21. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
ROS系統概念(2/4)
Topic
可想像成是一個公佈欄
Publish(傳送)
Publish To Topic
將資訊不斷的往Topic傳送
Subscribe(訂閱)
Subscribe A Topic
不斷的訂閱Topic資料
P-21/31
/teleop_turtle: Node
/turtlesim: Node
/turtle1/command_velocity: Topic
22. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
ROS系統概念(3/4)
Service
如同一般的Server、Client
Server(伺服端)
被動等待Client傳送訊息
當Client有所請求時,回覆訊息
Client(用戶端)
觸發請求給Service
當有需求時才進行,不會一直進行
Topic、Service不同處
Topic的Subscribe並不會回覆資料,單向
Service的Server回覆資料,雙向
P-22/31
23. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
ROS系統概念(4/4)
Topic通常用於連續不間斷的資料傳輸
Service用於不頻繁間斷的資料傳輸
當二個Node之間傳輸資料,只要
1.決定Topic名稱
2.訂定Topic格式
範例
1.Topic名稱: /Vision/ballPosition
2.Topic格式:
X double
Y double
說穿了,ROS就是一個非常容易溝通的網路環境
非現行開發者,只要看Topic或Service格式即可知輸出入
P-23/31
24. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
ROS版本說明
ROS版本(Distributions)
P-24/31
http://wiki.ros.org/Distributions
Groovy
Hydro
Indigo
Kinetic
25. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Gazebo (1/4)
何由Gazebo
ROS上的3D模擬介面
Why Gazebo?
DARPA比賽分二組
DARPA Robotics Challenge (DRC)
Virtual Robotics Challenge (VRC)
其中VRC比賽模擬環境即是以Gazebo為基礎上建立
參考影片
Gazebo-Simulator-for-DARPA-Virtual-Robotics-Challenge.mp4
P-25/31
26. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Gazebo (2/4)
Gazebo
SDF(Simulation Description Format)
使用XML格式描述各個物體
位置、大小
物理參數
可模擬物理參數
慣性
摩擦力
地心引力
可引入STL(.stl) 、COLLADA(.dae)的3D模型
P-26/31
27. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Gazebo (3/4)
Gazebo參考影片:VRC
DARPA Virtual Robotics Challenge (VRC)
P-27/31
https://www.youtube.com/watch?v=k2wVj0BbtVk
28. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Gazebo (4/4)
Gazebo參考影片:四旋翼+影像模擬
P-28/31
https://www.youtube.com/watch?v=4he7mPV41Xc
29. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
ROS結論
ROS優點
以網路為基礎的機器人開發架構
輸入/輸出明確
分工明確
機器人相關資源眾多 (套件很多)
強大的3D模擬工具(Gazebo)
缺點
版本太多,不同版本套件可能無法共用
多機器人的支援尚未完整
P-29/31
30. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
參考資料
參考資料
ROS入門,http://wiki.ros.org/ROS/Tutorials
看了不下千次
ROS介紹,
http://my.phirobot.com/drafts/ros_quick_start1_start_with_ubu
ntu_for_ros.html
Gazebo入門,http://gazebosim.org/wiki/Tutorials
SDF,http://gazebosim.org/sdf/1.4.html
VCR,
http://www.darpa.mil/NewsEvents/Releases/2013/06/27.aspx
影片
PR2,www.youtube.com/watch?v=S2GAz5F03Ls
Gazebo VRC,https://www.youtube.com/watch?v=yVICMC_BAiU
P-30/31
32. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
概觀
ROS在Kinetic 版本後,已全面支援NodeJS
與Humix結合非常容易!
在Kinetic 版本之前需使用rosbridge套件
Humix-rosbridge
https://github.com/kbehouse/humix-rosbridge
實作方式
製作一個humix-sense模組
製作一個ROS節點,與ROS溝通
以上功能在同一隻程式
當接收到humix事件時 -> 觸發ROS的命令
Github
https://github.com/kbehouse/humix-ros-module
P-32/31
33. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
安裝
確定以下套件已安裝
humix-think
https://github.com/project-humix/humix-think
humix-sense
https://github.com/project-humix/humix-sense
ROS Kinetic
http://wiki.ros.org/kinetic/Installation
安裝humix-ros-module
git clone git@github.com:kbehouse/humix-ros-module.git
cd humix-ros-module
npm install
P-33/31
34. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
啟動
啟動ROS與一隻小烏龜
roscore
rosrun turtlesim turtlesim_node.
啟動Humix
cd ~/humix/humix-think/
npm start
cd ~/humix/humix-sense
npm start
cd ~/humix/humix-ros-module
npm start
P-34/31
35. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Humix Flow
Flow
P-35/31
36. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
Demo影片
Humix X ROS
P-36/31
https://youtu.be/aLF1cb5rmuk
37. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
一點點技術 (1/4)
Dependencies
Package.json
使用以下三個套件
require
P-37/31
38. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
一點點技術 (2/4)
與ROS的連結
在ROS中創立/humix節點
創立一個publisher名為pub
P-38/31
39. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
一點點技術 (3/4)
當接收到humix-sense的robot_cmd
Humix-ros-module接收到robot_cmd的command
call_robot_cmd()
P-39/31
40. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
一點點技術 (4/4)
以上霧煞煞
http://wiki.ros.org/ROS/Tutorials
約2~3天 (很值得學習)
有Linux指令基礎與C++或Ptyhon基礎.
一起為台灣打下機器人產業的基礎
P-40/31
41. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
其他Demo (1/2)
Humix 控制機械手臂
P-41/31
42. 淡江大學電機工程學系 / 智慧型控制實驗室I.C. LAB / Dept. of E. E., Tamkang University Humix X ROS
其他Demo (2/2)
實體人形機器人展示
ROS Indigo
使用rosbridge溝通
Github
https://github.com/kbehouse
/humix-rosbridge
P-42/31
感謝聖儒製作人形功能