1. 程式人生 > >從零開始的機器人作業系統(ROS)(0)機器人漫談以及雙系統安裝

從零開始的機器人作業系統(ROS)(0)機器人漫談以及雙系統安裝

1.不談技術,咱們先搬個小板凳來聊聊機器人的前世今生:

<1>首先需要明確的一點是機器人的概念其實很寬泛,機器人(Robot)是自動執行工作的機器裝置,它指一類自動執行的裝置,而不是指人形的機器。

(1) 它可以是這種工業型或者特種機器人:主要用於焊接,裝配,運輸等等工業生產場合。對這類機器人我們並不陌生,富士康最近兩年採購了幾十萬臺的此類機械臂進行產業升級,雖然對絕大多數被辭退的工人來說,它的出現並不是一個好事,但是歷史和技術的發展本就是一個重生的痛苦過程,涅磐之後,必是新生。
工業機器人
工業機器人

防爆機器人
這裡寫圖片描述
農林漁業的特種機器人
不難看出,這類機器人都是從實用的角度出發,用於特殊的工業以及危險生產場合,完全沒有人的形狀,但是我們還是稱之為機器人。
(2) 也可以是這種仿生型機器人


波士頓動力
大狗(波士頓動力實驗室)
這裡寫圖片描述
蛇型機器人
這裡寫圖片描述
仿生鳥形機器人
這類都是從仿生學的角度出發,尋找更高效和自然的機械結構,從而讓機器的適應性更強,這種我們也稱之為機器人。
(3) 仿人形機器人
它們通常是這樣
這裡寫圖片描述
或者這樣
這裡寫圖片描述
或者這樣
這裡寫圖片描述

咳咳,其實上面都是假的,2017年的機器人應該是這樣
這裡寫圖片描述
或者這樣
這裡寫圖片描述
再不行就賣個萌
這裡寫圖片描述
這類機器人就是我們通常意義上討論的機器人了,和上面的工業機器人還有仿生機器人的研究方向不同,這類機器人通常都是智慧型機器人,研究它們的主要目的在於解析人的智慧究竟是怎麼一回事,還有該怎麼樣復現人的智慧。它不用很有力量,但它得像人一樣運動,它還得會思考。這類機器人一般用於服務,教育,醫療等行業,這個行業雖然還很稚嫩,但是勢必會成為未來最受矚目的行業之一 。

<2> 好了,機器人的概念稍微理清楚一點之後,讓我們來回顧一下智慧機器人的發展歷史還有如今的狀況把。

智慧型機器人是最複雜的機器人,也是人類最渴望能夠早日製造出來的機器朋友。
(1)歷史發展:
1920年“機器人”這個詞首先由作家作家卡雷爾·恰佩克在他的科幻小說中首次引進。

1939年西屋電氣公司在美國紐約世博會上展出了自己製造的家用機器人Elektro,它由電纜控制,可以行走,會說77個字,甚至可以抽菸,雖然它離真正的機器人還差得遠。但它讓人們對家用機器人的憧憬變得更加具體。

1942年 美國科幻巨匠阿西莫夫提出“機器人三定律”。雖然這只是科幻小說裡的創造,但後來成為學術界預設的研發原則。

1948年 諾伯特·維納出版《控制論——關於在動物和機中控制和通訊的科學》,闡述了機器中的通訊和控制機能與人的神經、感覺機能的共同規律,率先提出以計算機為核心的自動化工廠。

1954年 在達特茅斯會議上,馬文·明斯基提出了他對智慧機器的看法:智慧機器“能夠建立周圍環境的抽象模型,如果遇到問題,能夠從抽象模型中尋找解決方法”。這個定義影響到以後30年智慧機器人的研究方向。

1956年 美國人喬治·德沃爾製造出世界上第一臺可程式設計的機器人,並註冊了專利。這種機械手能按照不同的程式從事不同的工作,因此具有通用性和靈活性。

1959年 德沃爾與美國發明家約瑟夫·英格伯格聯手製造出第一臺工業機器人。隨後,成立了世界上第一家機器人制造工廠——Unimation公司。由於英格伯格對工業機器人的研發和宣傳,他也被稱為“工業機器人之父”。

1962年 美國AMF公司生產出“VERSTRAN”(意思是萬能搬運),與Unimation公司生產的Unimate一樣成為真正商業化的工業機器人,並出口到世界各國,掀起了全世界對機器人和機器人研究的熱潮。

1962年-1963年 感測器的應用提高了機器人的可操作性。人們試著在機器人上安裝各種各樣的感測器,包括1961年恩斯特採用的觸覺感測器,託莫維奇和博尼1962年在世界上最早的“靈巧手”上用到了壓力感測器,而麥卡錫1963年則開始在機器人中加入視覺感測系統,並在1964年,幫助MIT推出了世界上第一個帶有視覺感測器,能識別並定位積木的機器人系統。

1965年 約翰·霍普金斯大學應用物理實驗室研製出Beast機器人。Beast已經能通過聲吶系統、光電管等裝置,根據環境校正自己的位置。20世紀60年代中期開始,美國麻省理工學院、斯坦福大學、英國愛丁堡大學等陸續成立了機器人實驗室。美國興起研究第二代帶感測器、“有感覺”的機器人,並向人工智慧進發。

1968年 美國斯坦福研究所公佈他們研發成功的機器人Shakey。它帶有視覺感測器,能根據人的指令發現並抓取積木,不過控制它的計算機有一個房間那麼大。Shakey可以算是世界第一臺智慧機器人,拉開了第三代機器人研發的序幕。

1969年 日本早稻田大學加藤一郎實驗室研發出第一臺以雙腳走路的機器人。加藤一郎長期致力於研究仿人機器人,被譽為“仿人機器人之父”。日本專家一向以研發仿人機器人和娛樂機器人的技術見長,後來更進一步,催生出本田公司的ASIMO和索尼公司的QRIO。

1973年 世界上第一次機器人和小型計算機攜手合作,就誕生了美國Cincinnati Milacron公司的機器人T3。

1978年 美國Unimation公司推出通用工業機器人PUMA,這標誌著工業機器人技術已經完全成熟。PUMA至今仍然工作在工廠第一線。

1984年 英格伯格再推機器人Helpmate,這種機器人能在醫院裡為病人送飯、送藥、送郵件。同年,他還預言:“我要讓機器人擦地板,做飯,出去幫我洗車,檢查安全”。

1998年 丹麥樂高公司推出機器人(Mind-storms)套件,讓機器人制造變得跟搭積木一樣,相對簡單又能任意拼裝,使機器人開始走入個人世界。

1999年 日本索尼公司推出犬型機器人愛寶(AIBO),當即銷售一空,從此娛樂機器人成為機器人邁進普通家庭的途徑之一。

2002年 美國iRobot公司推出了吸塵器機器人Roomba,它能避開障礙,自動設計行進路線,還能在電量不足時,自動駛向充電座。Roomba是目前世界上銷量最大、最商業化的家用機器人。iRobot公司北京區授權代理商:北京微網智巨集科技有限公司。(不禁汗顏,這不就是現如今某寶上賣的火的掃地機器人麼)

2006年 6月,微軟公司推出Microsoft Robotics Studio,機器人模組化、平臺統一化的趨勢越來越明顯,比爾·蓋茨預言,家用機器人很快將席捲全球。
(2)最新進展:
首先是科研界,最近幾年對於智慧機器人來說,有兩個不得不提的重大突破。
其一,類似ROS,Andriod機器人作業系統以及中國的圖靈機器人公司的Turing OS等開源機器人作業系統的出現以及蓬勃發展。
其二,神經網路以及深度學習的復興帶動的人工智慧的進步。
第一個突破將硬體與開發者隔離開來,使得開發者不用每次都去自己從最底層的畫圖紙,製作機器人,在開源機器人作業系統的框架下面,開發者能夠更加專心和高效的開發和探索智慧。
第二個突破賦予了智慧機器人更廣的應用空間。智慧機器人的幾個關鍵技術:語音識別,機器視覺,語音對話,自主運動等等智慧全都仰仗於人工智慧的進步有了更好的表現。最標誌性的事件莫過於16年Alpha Go 和李世乭的“人機大戰”以AlphaGo 前三場就已經提前鎖定勝局,最終以 4:1 比分大勝結束;以及17年年初的百度的機器人小度在《最強大腦》上的驚豔表現。
雖然誰都無法給出強人工智慧誕生的準確時間,即使2017年的機器人看起還是萌萌的甚至有時候還是傻傻的,但是技術的奇點正在臨近。各大機器人實驗室以及人工智慧實驗室都在攻克一個又一個技術高地,無論是波士頓動力實驗室研究的先進的機器人運動控制技術,還是孵化出大名鼎鼎的ROS機器人作業系統的斯坦福的人工智慧研究室,都在運動,思考的層面探索機器的新的可能性。

其次,是產業界
首先看看16年機器人行業發生了哪些事件還有16年機器人行業的發展概況:
16年5月美的欲收購德國庫卡股份;
江蘇崑山富士康機器換人,縮減員工6萬;
“成都造”機器人明年參加高考;“高考機器人”已被列入國家科技部863計劃(又稱“超腦計劃”)的首要任務。

2015年全球工業機器人銷量超過24萬臺。
根據 IFR(國際機器人聯合會) 預測顯示,2015-2018年期間,個人/家庭用服務機器人的全球銷量將高達2590萬臺,市場規模高達到122億美元,超過2014年市場規模的5倍。專業服務用機器人的銷售量會增加到15.2萬臺左右,市場規模會上升至196億美元,接近2014年市場規模的5倍。
這裡寫圖片描述
還有現在市場上較為主流的三種服務型機器人。
這裡寫圖片描述
其次,人工智慧界也是摩拳擦掌,斯坦福的兩個人工智慧界的大牛:李非非加盟谷歌,吳恩達加盟百度。就像十幾年前的網際網路,幾年之前的移動網際網路,人工智慧已經成為下一個風口,一場大戰一觸即發,各家都在儲備人才,準備大幹一場。

產業界和學術界互動頻繁,也註定了機器人和人工智慧行業的火熱。

所以當站在歷史的風口,各位準備好起飛了麼?

2.機器人作業系統ROS簡介

1.ROS的定義以及它的重大意義:
先引用wikipidia上ROS(機器人作業系統,Robot Operating System)的一段基本介紹:
ROS是專為機器人軟體開發所設計出來的一套電腦作業系統架構。它是一個開源的元級作業系統(後作業系統),提供類似於作業系統的服務,包括硬體抽象描述、底層驅動程式管理、共用功能的執行、程式間訊息傳遞、程式發行包管理,它也提供一些工具和庫用於獲取、建立、編寫和執行多機融合的程式

此處我們可以把ROS類比windows作業系統,windows可以安裝在不同的品牌的電腦,不同型別的電腦上,我們不用關心這臺電腦用的是什麼晶片,有沒有什麼介面,我們可以把一個軟體裝在不同的電腦上,這就是操作 系統的好處,和硬體無關,在這套系統裡開發的軟體可以跑在很多不同的電腦上,只要這些電腦都安裝了windows作業系統。這樣我們就不用每次寫一個軟體和演算法就根據硬體來除錯一次,這樣就節省了大量的時間用來開發更高效的演算法和軟體。

2.ROS的學習
必須具備的技能包括
C++以及python 程式語言;
linux作業系統中命令列操作;
各種研究方向,其實ROS只是一個平臺和工具,學習了它並不代表就能做很多很有趣的事情,接下來就是看各位大大的研究興趣額方向了,無論是機器視覺還是自然語言處理或者是人工智慧就得看各位各顯神通了!
在這個平臺上可以做很多有趣的事,不過在探索自己的房間的時候,還是需要把房子的結構看個大概把。博主的這一系列部落格就是基於此,記錄自己這個小白的ROS學習歷程,同時也給後來想入坑的同學門指明方向。

3.正式開始:第一步雙系統安裝

(1)首先需要配置一個linux環境,因為ROS對Ubuntu系統的支援比較好,所以我們就使用ubuntu系統,博主使用的是ubuntu14.04系統,此處注意,因為我們都是打算在ubuntu系統下大幹一場的人,所以請打消在虛擬機器中安裝的Ubuntu系統中安裝ROS的念頭,否則,你會體會到什麼叫一個刻骨銘心的慢和卡。
首先介紹下安裝雙系統的教程。
–下載Ubuntu14.04的映象,此處我們使用中科大的軟體源(點此連結)
點選右邊的獲取安裝映象
這裡寫圖片描述
此處博主安裝的是32位版的ubuntu ,所以選擇選擇ubuntu14.04.5(i386),同學們電腦允許的話推薦配置64位版本。
這裡寫圖片描述
好了,下載好系統之後,我們還需要下載一個引導安裝系統的軟體,叫EasyBCD2.3(點此連結獲取),注意點進去如果需要帳號密碼,兩者都是www.linuxidc.com
這裡寫圖片描述
下載解壓,安裝好之後點開軟體
這裡寫圖片描述
點新增新條目,選NeoGrub選項,然後點選安裝,再點配置
這裡寫圖片描述
出現記事本,將裡面的內容替換為

title Install Ubuntu
root (hd0,0)
kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/ubuntu-14.04.05-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
initrd (hd0,0)/initrd.lz

特別注意:

ubuntu-14.04.05-desktop-i386.iso是你的iso的名字,別寫成我的了,這個要改成你的。
此處的(hd0,0)指的就是我們放置ubuntu14.04系統的c盤的hardware(硬體)分割槽,c盤預設是第主分割槽的第一個,序號從0開始,所以是(hd0,0)
替換好之後儲存退出
這裡寫圖片描述
退出之後去c盤檢視,會看到以下來兩個檔案,即NST資料夾和NeoGrub檔案。
這裡寫圖片描述
然後把ubuntu-14.04.05-desktop-i386.iso映象檔案放到c盤中,
並用解壓軟體(博主用的是360解壓縮)將映象檔案中的.dsk和casper資料夾下面的initrd.lz和vmlinuz檔案複製到c盤下
這裡寫圖片描述
如圖所示,全都複製好c盤會有以下六個檔案。
這裡寫圖片描述
接下來我們需要給硬碟重新分割槽
右擊我的電腦,點管理
這裡寫圖片描述
點 磁碟管理,然後儘量把後面幾個盤空出來
這裡寫圖片描述
如果空閒的空間不夠,右擊壓縮卷,騰出足夠的空間,此處博主騰出了100G的空間,然後將所有騰出來的空間全部格式化,顏色顯示為綠色可用空才行(注意此處因為博主已經裝好雙系統,此處只是演示,所以,顏色顯示是紫色的已分割槽,而不是綠色的可用)
這裡寫圖片描述
以上工作做完之後就可以開機重啟了
因為此處博主已經裝好雙系統,此處就借用別處的圖,僅做參考。

重新開機,狂按esc鍵(此處博主的電腦是hp,系統引導介面是通過按esc鍵出來的,各位具體電腦請自行百度進入引導介面的快捷鍵)按上下方向鍵,選擇NeoGrub引導載入器,單擊enter鍵
這裡寫圖片描述
選擇install ubuntu點選enter
這裡寫圖片描述
進入引導安裝環境,按組合鍵crrtl+alt+t 進入命令列終端
這裡寫圖片描述
輸入umount -l /isodevice這一命令取消掉對光碟所在 驅動器的掛載(注意,這裡的-l是L的小寫,-l 與 /isodevice 有一個空格。),否則分割槽介面找不到分割槽。
這裡寫圖片描述
退出命令列終端,下面就點選桌面上的 安裝Ubuntu 14.04開始安裝。
語言選擇中文
這裡寫圖片描述
此處不建議聯網,可以選上面一個選項,聯網安裝會下載一些不必要的外掛,很浪費時間。
這裡寫圖片描述
這裡寫圖片描述
注意此處選安裝型別,我們用其他選項。這樣您可以自己建立、調整分割槽、或者為 Ubuntu 選擇多個分割槽。
這裡寫圖片描述
網上有推進分割槽的方案如下(以30G為例):
首先是交換空間
SWAP 2G

/ 20G ext4(根分割槽可以大點)

/home 8G ext4(剩下的給/home)
如果跟我學(30G),就
SWAP 3G
/ 50G ext4 (根分割槽)
這裡寫圖片描述
都分好區後點擊繼續
這裡寫圖片描述
地區選擇上海
這裡寫圖片描述
點選繼續,接下來就是半小時左右的安裝
這裡寫圖片描述
按裝好之後重啟電腦
這裡寫圖片描述
顯示開機選項,預設進入 ubuntu環境,如果想進入windows環境,就選擇windows。
這裡寫圖片描述
進入後ubuntu和windows雙系統就算裝好了。
這裡寫圖片描述
到此為止,我們的雙系統就算配置好了,接下來一系列部落格會陸續更新安裝,配置和學習ros機器人作業系統的過程並且會記錄博主在diy的類turtlebot平臺上學習ros的經歷。

相關推薦

開始機器人作業系統ROS0機器人漫談以及系統安裝

1.不談技術,咱們先搬個小板凳來聊聊機器人的前世今生: <1>首先需要明確的一點是機器人的概念其實很寬泛,機器人(Robot)是自動執行工作的機器裝置,它指一類自動執行的裝置,而不是指人形的機器。 (1) 它可以是這種工業型或者特種機器人:主要用

開始理解JAVA事件處理機制2

extend nds 接下來 htm ref param 簡單 tostring ansi 第一節中的示例過於簡單《從零開始理解JAVA事件處理機制(1)》,簡單到讓大家覺得這樣的代碼簡直毫無用處。但是沒辦法,我們要繼續寫這毫無用處的代碼,然後引出下一階段真正有益的代碼。

開始學Swift》學習筆記Day67——Cocoa Touch設計模式及應用之MVC模式

table control sdn rate term targe rac uitabbar bsp 原創文章,歡迎轉載。轉載請註明:關東升的博客 MVC(Model-View-Controller,模型-視圖-控制器)模式是相當古老的設計模式之中的一個,它最早出如今

開始學Swift》學習筆記Day60——Core Foundation框架

類型轉換 字符 sso grid blog spa www water 轉載 創文章,歡迎轉載。轉載請註明:關東升的博客 Core Foundation框架是蘋果公司提供一套概念來源於Foundation框架,編程接口面向C語言風格的API。盡管在Swift中調用這樣

開始學Swift》學習筆記Day 55——使用try?和try!差別

移動設計 ani ecb pcl mva fde 成了 lms 官方 原創文章。歡迎轉載。轉載請註明:關東升的博客 在使用try進行錯誤處理的時候,常常會看到try後面跟有問號(?)或感嘆號(!),他們有什麽差別呢?1.使用try? try?會將錯誤轉換為可選值,當調

webpack開始構建多頁項目mpa

www .html log targe 環境 分開 webpack 支持 博客 歷時一個星期左右,自己參考webpack官網等,從零開始構建webpack項目。本次的博客也是對前面的webpack項目搭建一文的補充。 在本wepack搭建的項目中,自己實現了下面的這些功

開始學Swift》學習筆記Day 57——Swift編碼規範之凝視規範:文件凝視、文檔凝視、代碼凝視、使用地標凝視

精品 -type mil 顯示 clas ber ansi tex text 原創文章。歡迎轉載。轉載請註明:關東升的博客 前面說到Swift凝視的語法有兩種:單行凝視(//)和多行凝視(/*...*/)。這裏來介紹一下他們的使用規範。 1、文件凝視文件凝視就在每個文

開始搭建框架SSM+Redis+Mysql之MAVEN項目搭建

blog 目的 定位 enc style log onf project 集成 從零開始搭建框架SSM+Redis+Mysql(二)之MAVEN項目搭建 廢話不說,直接擼步驟!!! 1.創建主項目:ncc-parent 選擇maven創建項目,註意在創建項目中,packi

開始學Kotlin-使用接口7

如何 mark android interface inter rand 兩個 blog dtw 從零開始學Kotlin基礎篇系列文章 定義接口 使用關鍵字interface定義接口 interface InterfaceDemo7 { } 類或對象可以實現一個或者多個接

開始系列之vue全家桶3安裝使用vuex

info 獲取 clas from 顯示 共享 安裝 default 重要 什麽是vuex? vuex:Vue提供的狀態管理工具,用於同一管理我們項目中各種數據的交互和重用,存儲我們需要用到數據對象。 即data中屬性同時有一個或幾個組件同時使用,就是data中共用的屬性。

開始系列之vue全家桶4帶新手小白一起搭建第一個個人網站項目

轉載 個人網站 rfi red nbsp oot ott osx 全部 未經允許,嚴禁轉載,全文由blackchaos提供。 在安裝好了前面大部分需要的插件,我們開始進行第一個個人項目。結合vue+vuex+vue-cli+vue-router+webpack使用。

開始造一個Markdown編輯器

實時 需要 自己實現 自己 背景 學習正則表達式 tex ID img 背景 最近學習正則表達式,於是要挑一個練手項目,恰好對markdown編輯器十分感興趣,於是就進行了一些常識。做了一個簡單的markdown解析器和編輯器。 網頁端的地址(不支持文件的操作): http

Windows環境下,開始搭建Nodejs+Express+Ejs框架---安裝nodejs

直接 分享圖片 完成 info pre download png 安裝包 get 第一步,安裝nodejs https://nodejs.org/en/download/ 這個是nodejs的官網,由於操作系統是win7 64位的,所以,我下載的是node-v8.11.1-

Windows環境下,開始搭建Nodejs+Express+Ejs框架---安裝Express,ejs

所有 nod 環境 安裝目錄 關於 str 列表 ima 執行 安裝Express,ejs的前提是一定要先安裝nodejs,具體安裝方法請查看 http://www.cnblogs.com/tfiremeteor/p/8973105.html 安裝Express和ejs的前

開始學 Web 之 移動Webtouch事件的缺陷,移動端常用插件

bar 知識 怎麽 element clas mas index ont 彈性 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博

開始學 Web 之 移動Web微金所案例

空格 avi 系列教程 知識 open 流量 dao 當前 ger 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博客園:htt

開始學 Web 之 Vue.jsVue實例的生命周期

報錯 web 前端 cnblogs 前端 eth code vue 公眾 des 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔

開始學 Web 之 Vue.jsVue的Ajax請求和跨域

在線安裝 配置 name php文件 splay .json alert 參考 1.0 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端

開始學習比特幣開發-P2P網路建立流程之生成地址對並連線到指定地址

本節繼續講解比特幣P2P網路建立流程,這節講解的執行緒為’ThreadOpenAddedConnections’,它的作用是生成地址對並連線到指定地址。 本文可以結合比特幣系統啟動的的第12步的講解來看,可以更加系統的瞭解比特幣系統啟動的過程。 P2P 網路的建立是在比特幣系統啟動的第

開始學習比特幣開發--網路初始化,載入區塊鏈和錢包,匯入區塊啟動節點

寫在前面: 本篇文章接續 從零開始學習區塊鏈技術(三)-接入比特幣網路的關鍵步驟解析、建立比特幣錢包,以及重要rpc指令 從零開始學習區塊鏈技術(二)–如何接入比特幣網路以及其原理分析 以及從零開始學習區塊鏈技術(一)–從原始碼編譯比特幣 如果這篇文章看不明白,請務必先閱讀之前的文章