接收來自 ROS Topic 的影像並偵測畫面中的動作

前言這次來帶大家玩個基礎的應用 - 動作偵測,用自己筆電的相機再加上 OpenCV 的 API,就可以做到動作偵測並把在動的地方框起來。可以透過這篇學習怎麼使用 ROS Topic 來接收影像並做後續的處理。 開 package 寫程式首先來開一個 motion_detector package: 123catkin_create_pkg motion_detector rospy sensor_msgs cv_bridge usb_c

Read More...

一小時內製作自己的 Pebble 錶面

筆者「最近」買了一隻 Pebble 2,大概是半年多前的事情…當初看上他便宜信譽好,又可以用 javascript 撰寫自己的 watch face,所以就刷下去了,算是第一次在 kickstarter 上面贊助產品,等待的時間久到我都快忘了….才怪,我大概每個月都會想起來一次 XD 總之,經過幾個月漫長等待,以及網站上跟我一樣想趕快拿到產品的 baker 們不斷地詢問下,終於還是送到我手上了! Tada ~! …不對這篇不是開箱文 我

Read More...

React Native in 24 Hours

前言上個禮拜的時候,我們公司舉辦了一年一度的黑客松,一隊有四個人。因為我才剛加入公司大概兩個禮拜而已,所以也沒認識什麼人。不過,剛好當初找我進來的同事問我要不要一起參加,就跟著報名了。 黑客松的時間是禮拜五早上十一點到禮拜六同一時間,一共 24 個小時。我的三個隊友,一個是 PM、一個是資安部門、一個是 SA(System Admin) 部門。因此,在他們知道我現在是前端工程師,以前是 Android 工程師以後,理所當然地,Mob

Read More...

Web 資訊安全(Security)簡明入門教學指南

前言隨著越來越多的服務和資料連上網路,Web 資訊安全已經是 Web 開發中一個重要的環節,然而許多開發者往往希望專注在應用程式的研發,而忽略了資訊安全的重要性。不過若是沒有嚴謹地考慮資訊安全的問題,等到事情發生後反而會造成更嚴重的財務和名譽上的損失。本文希望整理一些 Web 常見資訊安全(Security)的議題和學習資源和讀者一起教學相長,下次建構網路服務時可以更留心 Web 的資訊安全,甚至努力成為一個好的白帽駭客(White

Read More...

如何使用 Google Cartographer SLAM 演算法來建地圖

前言Cartographer 是 Google 最近剛發表的 SLAM 演算法,效果看起來非常好,而且他們發表的論文裡主打這個演算法很 real-time,今天就來帶大家把這個演算法在自己的環境中跑起來,之後就可以自己玩了。 建立模擬環境我的測試環境是 Ubuntu 14.04 + ROS Indigo,不過使用的指令都很 general,即便你使用其他版本,應該也不會有什麼問題。 首先我們確定已經安裝所需要的套件: 1sudo ap

Read More...

詳解簡易 Timer 來學習 D3

The Pomodoro Technique 是一個簡易又廣為人知的時間管理方法,其主軸在於將工作時段切割成多個蕃茄時間,每個蕃茄時間包含: 25 分鐘的執行時間 5 分鐘的休息時間 蕃茄工作法 wiki詳細內容不管是網路上,或是書籍都有許多描述,有興趣深入了解的可以去看看。 今天重點不在番茄工作法。 重點在,番茄工作法中不可或缺的工具 - 計時器! 我用過幾款 Chrome extension 的計時器,但剩餘時間都是用數字來顯示

Read More...

Hacktoberfest:一起踏入 open source 的世界吧!

(圖片來自: Hacktoberfest is back) 前言Hacktoberfest 是由 hack + october + festival 組合而成的名詞,是由知名的 VPS 供應商 DigitalOcean 與大家所熟知的 github 所舉辦的活動,目的在於推廣 open source,希望許多人能藉由這個活動踏進 open source 的世界。 這個活動的口號是: Support and celebrate ope

Read More...

用 JavaScript 學習資料結構和演算法:陣列(Array)篇

什麼是陣列(Array)?陣列可以說是程式語言中暫時儲存資料的櫃子,幾乎所有的程式語言都具備陣列這個廣泛運用的資料結構,但值得注意的是一般程式語言中陣列只能儲存同樣型別的值,但在 JavaScript 則可以儲存不同型別的值(但我們還是盡量避免)。 下面是陣列的簡單使用情境,當今天我們想儲存整個班級的學生姓名時,我們不可能使用一個個變數去一個個儲存,這時候陣列的功能就派上用場了: 1234567const student1 = &#x

Read More...

使用 ROS 與 Gazebo 模擬一個自動避障機器人

前言機器人要在環境中隨心所欲移動,需要的最基礎功能之一就是避障。要能夠避障的首要條件是要有感測器接收環境中的資訊,才能藉由這個資訊判斷障礙物是否存在。 常見的感測器包含紅外線感測器、超音波感測器、雷射測距儀、一般的相機、RGB-D 感測器等等,底層的感測器 driver 不在這篇文章的討論範圍裡,我們先單純看看怎麼使用收到的 laser data 來避障。 建立模擬環境我們先用 Gazebo 建立一個簡單的環境,加上幾個障礙物,就可以把

Read More...

淺談二分搜尋法

前言在寫程式的時候,其實會滿常用到「搜尋」的功能。最簡單的搜尋就是在一串數字裡面找出你想要的數字,而這也是我們今天的主題。 這一篇大致上會分成三個部分,第一部分會先介紹線性搜尋法,第二部分介紹二分搜尋法,最後一部分談談二分搜尋法在不同條件底下的實作方式會有什麼不同。 線性搜尋法為了由淺入深,我們從最基礎的線性搜尋法(Linear search)開始談起。就如同它的名字一樣,線性搜尋法就是「從頭到尾一個一個找」,時間複雜度為 O(n)

Read More...