【知識教學文】一起走進ROS的世界吧!-Part4

【知識教學文】一起走進ROS的世界吧!-Part4

 

經過前幾篇寫的ROS心得文,相信大伙兒都很懂為什麼simple care要挑ROS繼續玩下去了吧

這一篇主要在寫ROS上的2D影像視覺,這方面可能連網紅都比小弟還清楚要怎麼玩,來看看下圖的那個白框

如果加上Machine Learning,就會在框邊出現影像辨識後的物體名稱

而若在ROS上,可以用一般的WEBCAM+OpenCV完成這個有趣的實驗

但我們這篇就不實驗,因為ROS by Example第十章寫的已經夠清楚了

這一本書也超讚的,而且還是PDF,還不快下載一波先

 

對了!這本書有些example code已經失效了,因為ROS近幾年有些變化,所以您如果看到這篇文章打算明年再研究,也許code不會動,需要做一些修改,也有可能我們之後玩到ROS2.0,然後您為了玩先前的code就有一堆坑要解,所以還不快跟上!!!

 

研討會的時候有提到想做一台ROS小車,所需的是用3D感測器做一些判斷,例如ROS by Example的10.9 節寫的OpenNI and Skeleton Tracking

 

小弟想拿來做跌倒判斷或是特別的視覺判斷,一般的2D感測器(WEBCAM)是做不到滴~

這裡科普一下為什麼要用3D感測器,大伙兒應該知道人臉辨識吧?

如果我們用2D人臉辨識,於門禁辨識率達到90%以上,那也代表著麻煩大條了!

因為我拿您帥帥/美美的照片到您家門口機辨識就能自由進出了

所以3D感測器就解決了這個問題,除了有RGB的影像資訊外,還多加了一個D,也就是深度感測

這樣我拿著您的照片,門口機這個保全也不願意開門讓我進去了

 

這也是為什麼目前機器人都用3D感測器,連Amazon也用這個來做倉庫管理機器人,當然大家熟知的Apple Face ID大伙早就玩到翻掉了,對岸的3D POS機讓支付寶刷臉,就是靠3D感測器。

 

而現今3D感測器有三種主流方案:結構光、ToF與雙目,但我們這篇主要在講怎麼玩

很不巧的是我手上沒有3D感測器 T T

很想要用Intel Realsense、Microsoft Kinect或Asus Xtion

在Simple Care版上求救後,由MakerPRO的歐大那兒收到一個Realsense

早說過Maker最好的伙伴就是MakerPRO了,缺什麼找他們就對了

但是啊 ~ 這個Realsense要有3.0才能用~ 而且插上3.0的PORT之後,在VMWARE有時還會斷線,google之後才發現,手上這顆RealSense R200耗電流較大,需要用一個外掛電源的USB3.0集線器才行

 

OH NO…

 

好吧 ~ 萬事俱備後,就開始3D感測器大冒險!

 

由於這篇是在PC上VMWARE操作,所以Windows一定要抓的到USB3.0(如下圖)

再來VMWARE的USB Controller一定要選USB3.0

然後進/catkin_ws/src 下載realsense在github的source code

cd ~/catkin_ws/src

git clone https://github.com/intel-ros/realsense.git

回到/catkin_ws資料夾

catkin_make

再來就是

  1. Terminal -> roscore
  2. Terminal -> roslaunch realsense_camera r200_nodelet_default.launch
  3. Terminal -> rviz

 

在rviz的Fixed Frame記得要選camera depth fram,pointcloud2(下圖綠圈)的圖才會出現,而image(下圖紅圈)的圖,小弟是選depth/raw的圖

好了,Realsense R200就這樣被RUN起來了,然後要做什麼就是USER寫code啦~

如果沒有任何的idea,可以參考CH大寫的文章,用在ROS上,就是把寫好的code當作一個node去呼叫它,然後roslaunch就行啦!

 

順便跟大家說一下,目前Farmbot Taiwan User Group也如火如荼的在學習ROS哦 ~ 而且伙伴超多,到底是誰說台灣找不到研發人員的啊?快來社群挖人材啊!
倒是Simple Care還沒找到人一起玩ROS就是了,看來小弟挑了一個爹不疼娘不愛的智能照護主題XD

好啦~ 現在知道Code的方向了,但仔細想想之後的篇章,要開始實作就覺得哪裡怪怪的…

因為小弟的主板想用raspberry pi 3,但是它沒有傳說中的USB3.0啊!

那這樣要怎麼用INTEL REALSENSE R200呢?這也難怪TurtleBot3的waffle使用R200的主板會是Intel的Joule,因為Joule是USB3.0的啊!!!

 

沒關係!山不轉路轉,由於樹莓派在台灣有很大的社群,如果小弟使用Joule,Simple Care這個爹不疼娘不愛的主題很快的會在硬體上踩到坑摔一跤宣告專案失敗,所以我們主板還是選Raspberry Pi 3,然後改用一個USB2.0的3D Camera

 

然後小弟運氣很好收到對岸以及台灣之光的3D Camera,這裡先賣個關子,之後要做硬體的時候再跟大家報告。

總之台灣Maker圈什麼都有,而且圈子裡除了人文藝術之外,最大宗的還是科技圈的人,還不快加MakerPRO的FB挖寶!!!

 

由於ROS心得文明年才會有實戰篇,我們先回到Simple Care做的室內定位再回來ROS幫這篇做個結尾

其實Simple Care社群沒有這麼爹不疼娘不愛,反而受到很多低調的大大們幫助,請看這篇長照開源工作坊,集結眾人合力Debug

當時我們是使用多點定位演算法,後來改為Machine Learning的暴力演算法,請看這篇運用KNN演算法進行室內定位(Part 1)運用KNN演算法進行室內定位 Part 2

後來臺師大數位人文學研究室,直接把Code做了改良(如下圖)

紅點為”真實值”,藍點為”訊號預測值”,目前正確率為85%,請看影片

 

如果您有認真看KNN演算法的文章,文言文的文章小弟一個月後回去看也看不懂XD,這點讓我相當佩服臺師大數位人文學研究室的神人

假設您完全了解了KNN其實是需要時間Training model的,格子切的愈細愈精準,所以不用再問BLE可以做到多準!臺師大的神人目前是切到1公尺。

要切到1公分也行,那就是每1公分取個200筆資料Training一次model,而且BLE的好處在於BLE的ID每一個都是獨一無二的,所以肯定能知道目前這個人是誰。

但如果是人去Training,假設一次2分鐘好了,400個點,就要800分鐘,再健康的身體,13個小時就這麼Training到累壞了!

這個時候前面說的SLAM就派上用場了,也就是我們系列文的五篇文章所討論包山包海的ROS出場,做個小車讓它自己跑,我們坐著喝茶看報就行了!

 

看完還是霧煞煞嗎?加入我們了解更多吧!

Simple Care – 開放長照智慧系統 !

 

歡迎加入智慧醫療主題論壇:https://goo.gl/aNBkuN

(作者:智慧醫療主題論壇版主Sco;責任編輯:葉佳錚)

 

ROS系列教學文:

【知識教學文】一起走進ROS的世界吧!-Part1

【知識教學文】一起走進ROS的世界吧!- Part2

【知識教學文】一起走進ROS的世界吧!- Part3

No Comments

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料