1. 程式人生 > >機器人程式設計——之如何正確入門ROS | 硬創公開課(附視訊/PPT) 文章摘要

機器人程式設計——之如何正確入門ROS | 硬創公開課(附視訊/PPT) 文章摘要



摘要:

1、ROS和安卓一樣是開源的。可以提供硬體抽象底層裝置控制常用功能實現程序間訊息以及資料包管理

2、ROS是分散式處理框架。不同節點的程序能接收、釋出各種資訊(如感測,控制、狀態,規劃等等)

3、什麼是ROS?ROS是一個適用於機器人的開源的元作業系統,它不是一個真正的作業系統,但它提供了作業系統應用的服務,包括硬體抽象,底層裝置控制,常用函式的實現,程序間訊息傳遞,以及包管理。採用的是鬆耦合點對點程序網路

4、ROS的四大優點:1、鬆散耦合的機制方便機器人軟體框架的組織;

                                   2、最豐富的機器人功能庫,方便快速搭建原型;

                                   3、非常便利的資料記錄、分析、模擬工具,方便除錯;

                                   4、學界和產業界的標準,方便學習和交流。

5、2009年ROS釋出的“ROS: an open source Robot Operating System” 論文,目前已經被引用了2871次

6、ROS的學習順序:1、基礎結構,這些通訊的機制是如何實現的。

                                   2、工具:包括模擬工具、除錯工具等等

                                   3、體現他功能的Package

                                   4、社群:如何去上面釋出程式碼,和其他人交流

7、入門的話,首先要了解這四點:設計思想,核心概念,核心模組,核心工具

8、設計思想包括:分散式架構,將機器人的功能和軟體,做成一個個的節點,然後每個節點通過topic進行溝通。值得注意的是這些節點可以佈置在同一臺機器上也可以部署在不同的機器上,還可以部署在網上

9、核心概念:節點(Nodes):節點是各自獨立的可執行檔案,能夠通過話題、服務或者引數與伺服器或者其他節點通訊。ROS通過節點的方式將程式碼和功能解耦。

                                                    提高了系統的容錯能力和維護性。同時節點允許ROS系統能夠佈置在任意多個機器上並同時執行。值得注意的是:節點必須擁有唯一

                                                    的名稱。節點可以通過不同的庫編寫。

10、節點之間通過topic機制進行通訊,topic機制是一個一對多的Publish/Subscribe 模式

11、核心概念:功能包(Package) ,ROS中軟體組織的基本形式,用於建立ROS程式。功能包包含原始碼和功能包清單(Manifest) 。功能包清單提供關於功能包、許可資訊、依賴關係、編譯標誌等的資訊。功能包清單是一個manifests.xml檔案,通過這個檔案能夠實現對功能包的管理。

12、ROS常用命令工具包括rostopic (Topics)、rosservice (ServiCES)、rosnode (Nodes)、rosparam (Parameters)、rosmsg (Messages)、rossrv (Services)和roswtf (General debugging)

14、模擬環境:Turtlesim,ArbotiX,Gazebo.

        Turtlesim是一個QT開發的2D軌跡顯示介面,只能顯示運動軌跡;ArbotiX是含有一個差速驅動機器人的rviz模擬器,機器人運動及topic資料的3D顯示,但不包含物理學引擎;Gazebo是功能齊全的3D物理模擬器,不過缺點是非常重,對記憶體和顯示卡要求高,慎入!

15、ROS的版本:Groovy,Hydro,Indigo,Jade,Kinetic,推薦Indigo

16、Ubantu14.04.1 LTS與ROS Indigo匹配

17、IDEs:http://wiki.ros.org/IDEs 其中RoboWare Studio值得關注

相關推薦

機器人程式設計——如何正確入門ROS | 開課視訊/PPT 文章摘要

 摘要: 1、ROS和安卓一樣是開源的。可以提供硬體抽象,底層裝置控制,常用功能實現,程序間訊息以及資料包管理。 2、ROS是分散式處理框架。不同節點的程序能接收、釋出各種資訊(如感測,控制、狀態,規劃等等) 3、什麼是ROS?ROS是一個適用於機器人的開源的元作業

AI 從業者該如何選擇深度學習開源框架丨開課

編者按:本文內容來自微軟美國總部機器學習科學家彭河森博士在雷鋒網(公眾號:雷鋒網)硬創公開課的分享,並由彭河森博士親自整理成文。 正如程式語言一樣,深度學習開源框架同樣各有優劣和適用的場景,那麼 AI 從業者該如何有針對性地選擇這些平臺來玩轉深度學習? 本期公開課特邀了先後在谷歌、亞馬遜、微軟供職的機

真的,關於深度學習與計算機視覺,看這一篇就夠了 | 開課

今年夏天,雷鋒網將在深圳舉辦“全球人工智慧與機器人創新大會”(GAIR),在本次大會上,我們將釋出“人工智慧與機器人Top25創新企業榜“,慧眼科技是我們重點關注的公司之一。今天,我們邀請到慧眼科技研發總監李漢曦,為我們帶來深度學習與計算機視覺方面的內容分享。 嘉賓

關於深度學習,這裏有一份入門開課文末福利

社交網絡 互聯網金融 點擊圖片購書參與文末話題討論,每日贈送異步圖書——異步小編前不久,“逃犯看張學友演唱會被抓”的新聞讓不少人都感慨,原來演唱會還能用來幹這個!其實這都是AI面部識別技術的功勞,在支付、安防等領域,AI面部識別技術有著廣泛的應用。在互聯網金融信貸風險控制中,我們也會借助機器學習和統計

微信小程序多列表的顯示和隱藏功能源碼

初始 hat 思考 控制 inf 效果圖 b-s 分享 ado 今天在項目碰到一個問題,之前在項目首頁實現單列表的顯示和隱藏,通過wx:if判斷就可實現,現在要實現多列表的單項顯示和隱藏功能應該如何實現呢?如果還用wx:if實現的話會出現點擊一個列表項,多個列表同時顯示

入門到精通:資深程式設計師規劃JAVA大資料學習路線視訊教程

人類正在從IT時代走向DT(Data Technology)的時代。以網際網路、雲端計算、大資料和人工智慧為代表的技術革命正在滲透至各行各業,改變著我們的生活。 本文主要針對從事大資料開發的程式設計師們整理了整套的大資料學習相關的路線圖和知識材料,希望能幫助到大家。 很多初學者,對大資

零基礎入門學習python視訊教程

最近收集了一些python的視訊教程(共87集),提升360linker社群夥伴們在這方面的能力,教大家如何快速學會Python。沒進社群的可以加官方微信li_360linker或者掃描下方二維碼,獲得下載地址。

資料結構線性表的鏈式儲存實現完整程式碼

順序表插入、刪除時需要通過移動資料來實現,影響了執行效率。 而連結串列不要求邏輯上相鄰的兩個資料元素物理上也相鄰,因此對線性表的插入、刪除不需要移動資料元素,只需要修改鏈。 下面介紹帶頭結點的鏈式表: 資料結構: typedef int ElementType; ty

ICCV2017 | 一文詳解GAN父Ian Goodfellow 演講《生成對抗網路的原理與應用》完整PPT

當地時間 10月 22 日到10月29日,兩年一度的計算機視覺國際頂級會議 International Conference on Computer Vision(ICCV 2017)在義大利威尼斯開幕。Google Brain 研究科學家Ian Goodfellow在會上作為主題為《生成對抗網路(G

AR Drone系列:使用ROS catkin建package並使用cv_bridge實現對ar drone攝像頭數據的處理

ray 進行 mage exec source stp roc waitkey 效果 1 開發環境 Ubuntu 12.04 ROS Hydro 2 前提 可參考這篇blog:http://blog.csdn.net/yake827/arti

《Python程式設計入門到實踐》記錄將Python函式儲存在模組中import、import*

目錄 1、匯入整個模組 2、匯入特定的函式 3、使用as給函式指定別名 4、匯入模組中的所有函式 5、總結 我們可以在編寫程式時將函式儲存在被稱為模組的獨立檔案中,再將模組匯入到主程式中(必須的步驟)。port語句允許在當前執行的程式檔案中使用模組中的程式碼。 模組是

CUDA程式設計快速入門

CUDA(Compute Unified Device Architecture)的中文全稱為計算統一裝置架構。做影象視覺領域的同學多多少少都會接觸到CUDA,畢竟要做效能速度優化,CUDA是個很重要的工具,CUDA是做視覺的同學難以繞過的一個坑,必須踩一踩才踏實。CUDA程式設計真的是入門容易精通難,具有計

Python GUI程式設計tkinter入門案例--簡單的自動檔案下載器

利用Python3.6開發了一個簡易版的檔案批量下載軟體demo,使用的GUI工具是tkinter。預設開啟桌面的資料夾,可以實現自動讀取文字檔案中的檔案超連結,實現自動下載到桌面。 最近在整理自己磁碟檔案時,發現很多下載的檔案,如果只保留一個下載的超連結,這樣

帶你走進Spark程式設計Scala入門

寫在前邊的話: 1:什麼是Scala?      Scala是一門多正規化的程式語言,類似於Java,並集成了面向物件程式設計和函數語言程式設計的各種特性,具體可參考知乎上的一個帖子 2:本篇部落格包含哪些內容?      Scala中變數的宣告與函式定義      Sca

Python程式設計入門到實踐筆記——測試程式碼一篇足夠

11 測試程式碼   編寫函式或類時,還可為其編寫測試。通過測試,可確定程式碼面對各種輸入都能夠按要求的那樣工作。在程式中新增新程式碼時,你也可以對其進行測試,確認它們不會破壞程式既有的行為。   在本章中,你將學習如何使用Pyt

JSP網站開發HTML入門知識及常用標記符

        最近發生的事情很多,其中一件很重要的事情就是:學生生涯的結束,教學生涯的開始。我準備下個月寫一篇總結研究生生涯的文章,包括自己放棄網際網路選擇回家教書、找工作經歷、專案和畢業設計的各種感想。很榮幸XB七月初就給了我第一次大學教學的經歷,很享受很珍惜也很感觸。

大資料入門基礎系列初步認識大資料生態系統圈博主推薦

  不多說,直接上乾貨!   之前在微信公眾平臺裡寫過 大資料入門基礎系列之初步認識hadoop生態系統圈 http://mp.weixin.qq.com/s/KE09U5AbFnEdwht44FGrOA 大資料入門基礎系列之初步認識大資料生態系統圈 1.概述

linux網路程式設計用select方法實現io複用基於udp

1、基本概念   IO多路複用是指核心一旦發現程序指定的一個或者多個IO條件準備讀取,它就通知該程序。IO多路複用適用如下場合:   (1)當客戶處理多個描述字時(一般是互動式輸入和網路套介面),必須使用I/O複用。   (2)當一個客戶同時處理多個套介面時,而這種情況是

linux網路程式設計用select函式實現io複用基於TCP引發的思考

1、基本概念    IO多路複用是指核心一旦發現程序指定的一個或者多個IO條件準備讀取,它就通知該程序。IO多路複用適用如下場合:   (1)當客戶處理多個描述字時(一般是互動式輸入和網路套介面),必須使用I/O複用。   (2)當一個客戶同時處理多個套介面時,而這種情況

多執行緒程式設計Linux環境下的多執行緒——好文

一、Linux環境下的執行緒   相對於其他作業系統,Linux系統核心只提供了輕量級程序的支援,並未實現執行緒模型。Linux是一種“多程序單執行緒”的作業系統,Linux本身只有程序的概念,而其所謂的“執行緒”本質上在核心裡仍然是程序。      程序是資源分配的單位,同一程序中的多個執行緒共享該程序的