一起來讀 CRAM - A Cognitive Robot Abstract Machine for Everyday Manipulation in Human Environments

前言很久以前,我就寫過一篇 CRAM 簡介,但是一直沒有把這個工具用起來,深感可惜。 最近又因緣際會寫了 一起讀 Knowledge-Enabled Robotic Agents for Shelf Replenishment in Cluttered Retail Environments,所以想要再把 CRAM 的原始 paper 拿起來看一次,然後將我所了解的分享給大家。 為什麼發展 CRAM?CRAM 被發展出來的原因,就是因為

Read More...

一起來玩 OSRF 的 TensorFlow Object Detector

前言上次我們一起 使用 TensorFlow 來做簡單的手寫數字辨識,雖然我們可以自己使用這些 API 兜自己的模組,但我們也可以利用現成的工具,節省開發時間。 安裝安裝步驟可以參考官方的 README文件。我自己是在 Ubuntu 14.04 + Indigo 測試過,也 OK,只要記得將一些安裝 kinetic package 的地方更新成 indigo 就好。例如第二步的 camera dependencies: 1sudo ap

Read More...

深入學習 lsd-slam - 5

前言上次跟大家簡介了 Eigen 這個可以用來做線性代數運算的 open source library,讓大家有動手實作、開始玩到東西的感覺。今天要延續動手實作的精神,跟大家介紹一下該怎麼把幾張 RGB-D 影像拼接成 point cloud,接下來就讓我們一起玩玩吧! 參考資料來源這次的 data(包含 RGB 影像跟 Depth Map) 等等都是來自於 slambook 的 ch5,有這些資料真的超讚的,不然自己光要產生這些資料就

Read More...

深入學習 LSD-SLAM - 4

前言上次講了一些基本的理論介紹,但我們現在是希望學會如何實際寫程式讓機器人動起來,只有純數學的觀念跟機器人好像沒什麼關係,所以這次希望可以開始銜接到一個常用的工具 - Eigen。讓大家有動手實作、開始玩到東西的感覺。 為什麼要會 Eigen?首先,Eigen 是一個 C++ 的 open source library,提供了許多線性代數運算相關的函式。 然後,我們這一系列是要介紹 LSD-SLAM,所以當然是因為 LSD-SLAM 也

Read More...

深入學習 LSD-SLAM 番外篇 - RDS X RTAB-Map

前言因為前陣子因緣際會發現了 Robot Ignite Academy 跟 ROS Develop Studio(RDS),很希望可以推薦給我們的讀者。所以這期專欄我延伸一下 LSD SLAM 系列,先跟大家介紹這個很酷的學習資源,並介紹跟 LSD SLAM 目的相似的 RTAB-Map 演算法。 為什麼要介紹 RDS?學習的方法有許多種,借引用這一週很紅的 英文學習 repository 的圖: 學習越難的東西,越不容易只靠單一學習

Read More...

深入學習 lsd-slam - 3

前言在 深入學習 LSD-SLAM - 2 裡面,我們簡單介紹了 Direct Method,先初步地了解這個方法的大致意義,今天再讓我們更深入一點,開始跟 paper 的內容銜接,之後會慢慢越來越深入好玩! Spiral learning因為這次剛好也是我第一次真正來學 SLAM 相關技術,以前都只是大略看看,沒有真正學通的感覺,所以也想跟大家分享一下個人學習的心得。 大家或多或少應該都經歷過一個情境 - 你要學習一個東西,但是因為這

Read More...

深入學習 LSD-SLAM - 2

前言上回我們在深入學習 LSD-SLAM - 1中提到,LSD-SLAM 的一大特色是不計算特徵點、直接使用所有 pixel 來計算相機的姿態。但是,每一幀都有 640x480 個 pixel (作者建議使用 640x480 解析度的相機),該怎麼處理這些資料呢?今天就來學習 direct method 的基礎。 在開始之前,我們可以從下圖清楚地看出 Feature-Based Method 跟 Direct Method 的差別,其實

Read More...

深入學習 LSD-SLAM-1

前言SLAM 是近年來很火紅的一個技術,也有不少文章在介紹,不過我很少看到針對一些頂級演算法的深入介紹,所以才想透過這篇文章來開始深入很久以前玩過的LSD SLAM,也跟大家一起學習這個迷人的演算法。建議有興趣的讀者先讀過這篇平易近人的 Visual SLAM 簡介,然後再繼續往下看,會更有感覺! 先放一張 LSD-SLAM 建出來的地圖,讓大家感受一下帥度。 安裝方式安裝方式可以到 LSD-SLAM 的 github page 看看

Read More...

Object Recognition Kitchen 透明物體辨識(演算法概念)

前言這次的文章想要討論一個有趣的題目 – 透明物體辨識,這次的介紹先把題目限定在找出透明物體的位置,並把透明物體的輪廓找出來。 演算法功能簡介我們的演算法目的是要找出影像中的透明物體,並把輪廓圈出來,就像下面這張圖一樣。 其實如果要更精確,應該把想要辨識哪些透明物體、在那些場景、辨識成功率希望有多高、如何定義辨識成功等都說清楚,不過這邊想先帶給大家一個初步的概念,就不討論得太過瑣碎。 演算法概念為了達成這個功能,我們勢必要先收到彩色影

Read More...

如何用 ROS Topic 控制機器人移動

筆者今年在 COSCUP 2016 開了一個工作坊,教大家 ROS 的基礎以及 Gazebo 的基本概念,因為是第一次辦工作坊,還在學習怎麼拿捏時間跟內容,自覺並不是講得很完整,所以希望可以再提供一個簡單的範例,讓大家對 topic 傳輸要怎麼應用在控制機器人上會更有概念。 在工作坊講的內容 – Node, Topic and Service COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊 from Po

Read More...