Try   HackMD

機器人作業系統概述

ROS(英語:Robot Operating System,一般譯為機器人作業系統),是專為機器人軟體開發所設計出來的一套電腦作業系統架構。它是一個開源的元級作業系統(後作業系統),提供類似於作業系統的服務,包括硬體抽象描述、底層驅動程序管理、共用功能的執行、程序間消息傳遞、程序發行包管理,它也提供一些工具和庫用於獲取、建立、編寫和執行多機融合的程序。

簡單的應用

應該很多人會好奇這個是在做什麼的。簡單來說,就是拿來寫硬體的,但是並非Verilog那種直接性的操作硬體,而是處理更高階的事情,就是機器人的作業系統,可以想像成電腦中的作業系統,驅動整個電腦的零件。

紅外線系統、無線電系統,大多數的新型科技都會有這個系統的支援。

Ros Master

運作Ros必定要先開啟Ros Master,而簡單的Ros Network如下:


內容

• ROS Node
下一篇實際操作後就會感受到,一個node就是一個程式文件
• ROS Publisher
有的node是身為publisher,會發出訊息到topic
• ROS Subscriber
而有的node則身為subscriber,會從已訂閱的topic接受訊息
• ROS Topics
就像介質、平台般的存在,ex:布告欄
• ROS Message
扮演'語言'的腳色,ex:發表者寫'英文'公布在布告欄
• ROS Service
傳送訊息後,需要靠'等待處理'的這種Service,使得通訊成為'同步',其成分就是request和response
• ROS Action
但有些會等太久而被中斷,這時就需要搭配Topics用的Action

ROS Graph

ROS Graph,用來視覺化目前ROS網路的一個工具

簡單的案例如下:


ROS 實用功能

ros bag

能夠紀錄、播放ros網路中的資訊流

這大概是做這系統最常用的指令之一

簡單的示例如下:

rviz

能夠將ros 網路中的資訊視覺化的工具(本地端)

這是做自走車之類的作品最常用的工具之一

示意如下:

webviz

能夠將ros 網路中的資訊視覺化的工具(網頁端)

這是網頁端的視覺化工具

當然還要裝很多的package,像是ros bridge

示意如下:

ros3djs

能夠將ros 網路中的資訊視覺化的工具(網頁端)

這是網頁端的視覺化工具,因為上面是官方的,功能有限制,若想要自行設計頁面、功能,只能自己寫

當然還要裝很多的package,像是ros bridge

示意如下:

安裝

ros 在安裝上還滿輕鬆的

只是不同的linux版本會有不同的ros系統,像我之前是用ros kinect

官方網站

tags: Neural Network Deep Learning