從安裝到做項目一步步教你ROS學習入門

2020-12-08 雷鋒網

雷鋒網新智造按:本文來源於知乎,作者卓求,雷鋒網新智造已獲得授權,也歡迎大家關注作者的知乎帳號,將不定期更新ROS, Robotics,Python, Matlab相關內容總結。

第一次接觸ROS是在瀋陽自動化所做項目的時候,那時候我才知道自己非常感興趣的機器人領域有一個叫做ROS(Robot Operating System)的平臺。仔細了解之後才知道ROS被機器人界看作是一套準標準平臺,很多人將其比作是手機界的安卓,電腦界的微軟。在我看來ROS最大的優點在於靈活、低耦合、分布式、開源以及功能強大而豐富的第三方功能包(類似於程式語言中的庫)。於是我乘著畢設的機會申請了做ROS相關的項目--自主導航小車PlantBot。

ROS雖然叫作業系統,但是真正底層的任務調度、編譯、尋址等任務還是由Linux作業系統完成,也就是ROS充其量是一個運行在Linux上的次級作業系統。關於ROS的介紹有一篇大牛寫的很不錯的文章:。機器人作業系統ROS | 簡介篇

第一步,安裝Linux和ROS

學習ROS首先要安裝Linux,為了不拋棄原Windows作業系統,有兩個選擇:一個是在VMvare等虛擬機上運行,另一個是安裝Windows和Linux的雙系統。我的建議是電腦有足夠的空間的話,最好安裝雙系統,這樣在Linux上使用ROS時運行速度更快。虛擬機跑ROS我沒嘗試過,但是網上也看到有人用虛擬機學習ROS,如果電腦不好裝雙系統或者內存不夠的話可以嘗試使用虛擬機。

Linux 有不同的發行版本,目前對ROS支持最好的版本是Ubuntu 14.04 LTS (Long Term Support),對應的ROS的版本推薦為indigo,官網安裝主頁已更新為最新版本的Ubuntu。可以到 下載對應的14.04版本。Linux安裝教程可以參照: 。Old Ubuntu ReleasesWin7上安裝Ubuntu14.04雙系統

需要說明的是,隨著電腦的配置和作業系統的不同,安裝過程大同小異,但是 有的電腦就是裝不上,谷歌之後仍然無法解決問題,這時候可以嘗試換臺電腦或者裝虛擬機,我之前用聯想ideapad,折騰了一周,試了各種方法就是不成功,最後換了臺華碩一下就好了。

裝好Linux後可以根據這篇官方指導安裝ROS: 。如果沒有任何Linux命令行基礎,那麼可以先學習Linux命令行,然後再裝ROS。Ubuntu install of ROS Indigo

第二步,學習Linux命令行

對於熟悉Windows而沒有接觸過Linux系統的人來說,上一步安裝的Ubuntu是一個很好的Linux過渡版本。在Linux中,一切任務都可以在終端(Terminal)通過命令行完成。因此非常有必要學習Linux命令行。學習Linux推薦在線編程學習環境實驗樓的兩門課程:和 ,兩門課程可以結合互補學習,也可以參見我的學習筆記: 有一個小建議是實驗樓的在線編程環境就是Linux,因此沒有必要在它們的網絡環境學習,而是直接用自己的終端。Linux 基礎入門(新版)Linux命令實例練習Linux命令行

同時Ubuntu 作為非商業作業系統,裡面或多或少有dug,遇到問題多搜索,對於常見的問題,網上都有解決辦法。我在安裝完Ubuntu後就遇到一個很窘的問題:網絡連接不上,但是神奇的是蓋上蓋子再打開後就好了,之後碰到的帶耳機的時候沒聲音也是這樣,一種解釋如下:。對於同樣的遇到網絡無法連接的同學可以在終端輸入:ubuntu14.04下外放有聲音,耳機沒聲音

echo "options asus_nb_wmi wapf=4"| sudo tee /etc/modprobe.d/asus_nb_wmi.conf

重啟即可。

第三步, 學習ROS基礎

對於ROS的學習,最好的辦法還是直接學習官方的Tutorial: 。英語不太好的話可以看中文版的 也可以參見我的學習筆記 ,前期只學初級20講即可。學習完基礎20講後可以根據興趣或用途來學習其他教程,如上圖就是實時觀測工具Rviz顯示機器人的URDF(Unified Robot Description Format)模型,裡面還涉及坐標變換的TF相關知識,都需要學習對應的Tutorial來入門。當然,無從著手的話,這時候選擇一本參考書也是很不錯的,如, 。ROS Tutorials核心 ROS 教程ROS基礎筆記ros by exampleLearning Robotics Using Python , Learning ROS for Robotics Programming

此外,ROS的程式語言主要是C++ 和 Python。C++是國內大多數高校的教學語言,更加深入的學習可以閱讀C++ Prime 。但是我同時推薦的是學習Python,Python語言作為一種解釋性語言/腳本語言,更加靈活、編程效率更高,同時有強大的庫支持,因此也是現在人工智慧的第一語言。如果有C/C++基礎也可以很快入門,推薦廖雪峰的微博教程 ,以及實驗樓快速入門課程:Python快速教程 ,書的話我用的是《Python核心編程》(Core Python Programming)。Python 2.7教程

第四步,做項目

只有不斷的學習和實踐才能學好一門知識,學習ROS最好是一開始就挑戰一個項目。在完成前三步的基礎上,這時候就要根據嘗試寫第一個功能包(package)、第一個節點(node)了。碰到問題可以谷歌,官方問答平臺也很有用。同時要在實踐中不斷學習,因為基礎20講還遠遠不夠,用到相關知識可以繼續參見相關Tutorial。ROS Q&A

總之,ROS的學習曲線在開始階段很陡,需要很多預備知識,比如程式語言、Linux基礎、熟練的英文閱讀功底,甚至在理解ros::spin(),ros::spinOnce() (C++),rospy.spin() (Python)的時候只有理解線程才能搞清楚這三者之間的區別。總之,有志於學習ROS的同學要有不斷學習的心理準備,但是同時,ROS的熟練使用絕對是以後找工作或實現項目的一塊很有力的敲門磚。

附原文地址:https://zhuanlan.zhihu.com/p/26007106?winzoom=1

相關焦點

  • 機器人課程系列:如何安裝ROS(Robot Operating System,機器人操作...
    之前的課程裡分享了很多機器人的專案,很多夥伴也都有做各種不同的機器人,例如:雙足機器人、教育型機器人或是Arduino的關節型機器人。這些機器人有些沒有作業系統,且硬體設計都不一樣,如果在新的項目只是想用之前設計的一部分的話,代表要重複製作,才有辦法使用到別人早就做過的東西。
  • ROS 2 Crystal Clemmys版本上線,歡迎廣大工程師試用並反饋
    項目團隊歡迎工程師們閱讀安裝說明和教程(https://index.ros.org/doc/ros2/),開始體驗Crystal Clemmys。ROS 2版本發展迅速,Crystal Clemmys的發布意味著我們即將告別Ardent Apalone,同時還將收回191個文件包,首次發布的Crystal版本有297個文件包。
  • 學習SLAM需要哪些預備知識?
    EKF已經用得很少了,PF也就在2D地圖SLAM(Gmapping)中用得多,大多還是用優化的方法在做。你自己已經說了這塊需要的知識,一個是數學,一個是編程。所以入門的話,也從這兩塊開始弄。另外,優化的話,建議先把最小二乘優化中給弄透徹,數學推導要會,因為很多問題,最後都是歸結到最小二乘優化,然後就是梯度下降、求Jacobian之類的。二、編程方面理論的東西是比較無聊的,必須得實戰。建議入門先寫一發最小二乘優化,可以就做一個簡單的直線擬合,不要用Matlab中的優化工具,了解數學推導最後是怎麼寫到代碼裡面的。
  • Python入門項目,二維碼生成器,值得學習!
    Python入門項目首先在安裝完成Python環境之後,使用命令安裝我們所使用的第三方模塊命令: pip install MyQR這張圖片是已經安裝過的情況安裝完成後使用Python中的IDLE編輯器進行編輯用編輯器新建文件
  • 機器人作業系統從ROS升級到ROS2 部署不再是難題
    但事實上,你可以用這些組件構建他們,然後和其它開發者共享,因此這些開發者可以使用它們,而不需要理解他們內部的細節,提高了創新速度,真正讓人們用這些強大的組件構建機器人。」  ROS確實是一個很成功的開源項目、開源生態系統,現在已經建立了龐大的生態系統,在全球估計有十萬名開發者正在使用或熟悉ROS,並且所有擁有機器人經驗的學術界人士都在使用ROS。
  • 客廳吊頂注意事項、從選龍骨石膏板到施工細節,老師傅一步步教你
    客廳吊頂是一項複雜的工程,整天研究這兒打柜子,那兒選什麼材質,往往很多人都忽略了吊頂的裝修,吊頂裝修好不僅能提升全屋的顏值、而且還有保溫、隔熱隔音、吸音的功效,也是家庭裡電氣、空調、防火等隱蔽等工程的隱蔽空間,所以在施工的時候萬萬不能大意,老師傅一步步教你
  • Tensorflow 全網最全學習資料匯總之Tensorflow 的入門與安裝【2】
    本文將重點整理TensorFlow框架的入門和安裝教程。更多關於TensorFlow的深入介紹、應用項目以及各機器學習開源框架之間的對比等內容,請見雷鋒網的系列文章。《TensorFlow學習筆記1:入門》連結:http://www.jeyzhang.com/tensorflow-learning-notes.html本文與上一篇的行文思路基本一致,首先概括了TensorFlow的特性,然後介紹了graph、session、variable 等基本概念的含義,以具體代碼的形式針對每個概念給出了進一步的解釋
  • 零基礎如何入門學習電腦編程?
    零基礎如何入門學習電腦編程?有哪些好的方法呢?現在帶著疑問一起去了解一下吧。1、了解編程歷史的意義了解一些編程的實質遠比知道如何編程更有意義,不要在編程是怎麼回事的情況下就去學習編程,這樣對你的學習是十分不利的,作為一個編程愛好者,知道計算機的工作原理,這應該是一件再正常不過的事。
  • 想入門機器學習?機器之心為你準備了一份中文資源合集
    神經網絡入門神經網絡是深度學習的基礎,你可以在單獨的課程中學習神經網絡。但是,我認為理解感知機、多層感知機以及反向傳播算法的概念也很有幫助。著最全的DNN概述論文:詳解前饋、卷積和循環神經網絡技術機器之心GitHub項目:從零開始用TensorFlow搭建卷積神經網絡深度神經網絡全面概述:從基本概念到實際模型和硬體基礎訓練的神經網絡不工作?
  • 還在用PPT做神經網絡架構圖?GitHub2萬星項目,手把手教你從入門到...
    今天,我們就來介紹兩款開源的機器學習畫圖工具,讓你分分鐘做出精美的可視化。   新智元的同事身邊有很多做機器學習的同學,他們有個共通點就是:擼代碼時候挺爽的,一旦要將過程和結果可視化的時候,就有點犯怵。   但無論是涉及到寫論文,還是做演示,或者參加頂會,可視化顯然是一個繞不過去的坎兒。今天我們就為大家介紹兩款可視化工具。
  • 0基礎新手電工如何快速入門?電工快速入門方法
    前提是,你必須對電氣有濃厚的興趣愛好,這樣進步就很快了。現在電氣自動化發展很快,設備淘汰更新也很快,你今天掌握的技術,很可能明天就用不上了,所以,要不斷的學習。英語基礎要好,否則將來你接觸進口設備維護,編程,包括各種軟體的使用都很不方便的。
  • GWAS分析:教你入門軟體gPLINK
    以下視頻一步一步教你gPLINK入門操作:  ———PPT——————————————————歡迎關注基因姑娘GeneGirl,我們會向您介紹:基因與健康,基因與哲學,基因與科幻。包括遺傳性疾病知識科普,遺傳學數據分析軟體學習。
  • 零基礎也能教你快速入門!免費CAD練習圖+視頻正解+七天上手
    零基礎也能教你入門AutoCAD,七天輕鬆基礎到入門,輕鬆玩轉操作,上崗工作都是很輕鬆的事情,關鍵是掌握對方法很重要。,只需要你打破空窗期,後期自然是順風順水,當然如果你想要出類拔萃,刻苦的練習是必須的,結合合適的方法也很重要,比如通過看視頻進行自學無疑是當下最好的方法。
  • PyTorch 深度學習官方入門中文教程 pdf 下載|PyTorchChina
    官方教程包含了 PyTorch 介紹,安裝教程;60分鐘快速入門教程,可以迅速從小白階段完成一個分類器模型;計算機視覺常用模型,方便基於自己的數據進行調整,不再需要從頭開始寫;自然語言處理模型,聊天機器人,文本生成等生動有趣的項目。
  • 最熱門的深度學習框架TensorFlow入門必備書籍
    於是,很多開發者就問了,TensorFlow如此受歡迎,如果想入門學習它,要選擇哪本書呢?的安裝和基本用法;● 接著討論了深度神經網絡,包括神經網絡前向計算、損失函數、反向傳播計算和優化函數等;● 然後,還介紹了圖像數據處理和循環神經網絡,並詳細介紹TensorFlow圖像預處理的過程;● 最後介紹了TensorFlow計算加速,包括如何使用GPU、深度學習並行模式以及分布式TensorFlow
  • 讓孩子在玩樂中,學習到編程第一課——DFRobot造物粒子編程玩具
    ▲小小的一盒可是包含了各種組件,從無痕雙面膠到燈帶到主控板,不錯的做工帶來不錯的質感,也不用擔心孩子會弄壞配件,給商家讚一個!自學編程課:▲課程可以通過網上在線學習,邊看邊做,看不懂或者不清楚的還可以回看,非常的方便,首先學習的當然是對應的可編程電子積木創意設計,這個基礎課是免費的,之後的進階課程可以通過購買相對應的進階版材料來獲得。
  • 一步步入門二類電商(九):SEM用戶畫像及數據分析
    從15年做到了16年,直到現在越來越多的團隊在操作,這個項目流程比較的簡單,不需要特別麻煩的團隊管理,中間也沒有什麼複雜的環節,就是比較簡單的投錢買產品,運營得好,月入20萬是真的。一步步教你如何玩轉二類電商運營,老司機將逐一為大家解開二類電商運營的奧秘,帶你入門。
  • 圖像分類入門,輕鬆拿下90%準確率|教你用Keras搞Fashion-MNIST
    這個數據集致力於成為手寫數字數據集MNIST的替代品,可用作機器學習算法的基準測試,也同樣適合新手入門。Keras是個容易上手且深受歡迎的深度學習高級庫,是一個獨立開源項目。在TensorFlow中,可以使用tf.keras函數來編寫Keras程序,這樣就能充分利用動態圖機制eager execution和tf.data函數。下面可能還會遇到其他深度學習名詞,我們就不提前介紹啦。
  • 如何用免費GPU學習AI算法?這篇算法資源大集錦別錯過
    點擊上面的點擊申請,按照提示一步步點進去,提交成功後一段時間就有免費的算力拿了。想要修改項目代碼和運行的話,就按照上面說的步驟fork了然後運行。可登陸百度AI Studio獲取深度學習新手入門項目合集即使你是Python新手也沒關係,AI Studio社區提供了新手入門教程,不需要你在本地搭建環境,直接在AI Studio提供的環境跑例程,增刪改代碼,測試自己的想法。Python新手項目:《Python零基礎速成課》。學完了上面的新手Python課程,在開始深度學習前想實戰一下Python技巧?
  • 零基礎學習CAD軟體難嗎?超全CAD入門學習教程送給你!
    它好比你手中寫字的筆,吃飯的筷子,拿筆拿筷子實在算不上多難的事情,且在你下定決心要進行CAD入門學習時,就已經成功了一半,難得是保持這份決心。借用陸遊詩人的一句話「汝果欲學詩,工夫在詩外。」隨著身邊越來越多的朋友為了提升自己、學會一門好的技術,很多小夥伴很多的人就開始選擇學習CAD繪圖,但是奈何新手苦於對CAD一無所知,完全不知道從哪裡入手。那麼今天就給大家分享一些CAD入門學習技巧吧!