可能是國內最好的ROS課程之一——20節課程帶你入門ROS機器人作業系統

2021-03-02 藍橋雲課精選
本課程作者是易科機器人實驗室的zhangrelay博士,張老師有12年機器人系統仿真與控制學習和研究經歷,是機器人和人工智慧技術的愛好者。

zhangrelay博士在高校開設ROS相關課程已經積累了一年多的經驗,在課程開設、備課和教學過程中,遇到了非常多的困難和問題,需要自身不斷努力克服和改進,這樣才能使課程不斷完善。

目前,機器人工程專業在全國而言都屬於比較新的本科專業。在教材、課程規劃等方面,國內並沒有太多可借鑑的案例,只能向外求索,不斷積累成長。本來以為提供了安裝鏡像和虛擬機能上新手在非常短的時間內入門ROS,最後發現如果經驗積累不夠,學習不夠系統,遇到問題多茫然,為了進一步優化課程降低學習門檻,只需一臺能上網的電腦就能學習ROS,終於發現了 實驗樓 這個平臺。

因此就有了ROS機器人作業系統的安裝、配置與初級教程》這門課程。課程將通過20個實驗帶大家入門ROS機器人作業系統,全部免費,而且後續會有更多ROS機器人作業系統的課程上線。希望想學習這門新興、且非常有前景的技術的人,可以在實驗樓系統地掌握這門知識。

本課程以ROS官網的安裝、入門以及初級教程為模版製作(原滋原味,一脈相承),包括安裝ROS、學習並理解相關概念以及技術要點等;結合初級教程,提供每一步詳細操作命令,邊學邊練。 ROS (Robot Operating System, 機器人作業系統)是一個適用於機器人的開源的元作業系統。它提供了作業系統應有的服務,包括硬體抽象,底層設備控制,常用函數的實現,進程間消息傳遞,以及包管理。它也提供用於獲取、編譯、編寫、和跨計算機運行代碼所需的工具和庫函數。在某些方面ROS相當於一種「機器人框架」。

下面將介紹第一節的內容:

1. 內容簡介

此課程為ROS配置與使用介紹,如果為已經並安裝配置好的環境,本課程可作為ROS基礎知識進行學習和掌握,不用重新進行配置。實驗樓已經為你配置好在線環境。

二、安裝

1 系統更新

$ sudo apt-get update

upgrade

$ sudo apt-get upgrade

2 安裝 ROS

依據網頁:http://wiki.ros.org/cn/indigo/Installation/Ubuntu 進行配置,具體步驟如下:

2.1 添加 sources.list

配置你的電腦使其能夠安裝來自 packages.ros.org 的軟體。 ROS Indigo 僅 支持 Saucy (13.10) 和 Trusty (14.04)。

$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

註:強烈建議使用國內或者新加坡的鏡像源,這樣能夠大大提高安裝下載速度。

USTC (China)

$ sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

2.2 添加 keys

$ sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

2.3 安裝

$ sudo apt-get update

桌面完整版安裝:(推薦)

$ sudo apt-get install ros-indigo-desktop-full

2.4 初始化 rosdep

在開始使用ROS之前你還需要初始化rosdep。rosdep可以方便在你需要編譯某些源碼的時候為其安裝一些系統依賴,同時也是某些ROS核心功能組件所必需用到的工具。

$ sudo rosdep init

$ rosdep update

2.5 環境設置

如果每次打開一個新的終端時ROS環境變量都能夠自動配置好(即添加到bash會話中),那將會方便得多:

$ echo "source /opt/ros/indigo/setup.zsh" >> ~/.zshrc

$ source ~/.zshrc

2.6 安裝 rosinstall

rosinstall 是ROS中一個獨立分開的常用命令行工具,它可以方便讓你通過一條命令就可以給某個ROS軟體包下載很多源碼樹。要在ubuntu上安裝這個工具,請運行:

$ sudo apt-get install python-rosinstall

3 ROS測試

測試已經安裝好的ROS是否可以正常使用。

3.1 測試 roscore

打開一個終端測試roscore是否能正常啟動,使用ROS必須保證roscore運行:

$ roscore

3.2 啟動 turtlesim

啟動一個turtlesim節點並通過鍵盤控制其運動,新開啟一個終端,執行以下命令:

$ rosrun turtlesim turtlesim_node

然後,再開啟一個終端:

$ rosrun turtlesim turtle_teleop_key

3.3 啟動 rviz

新開啟一個終端輸入:

$ rviz

3.4 啟動 Gazebo

新開啟一個終端輸入:

$ gazebo

這時就可以正常使用ROS了。測試完畢。

4 學習ROS

根據你的學習風格和偏好,你可以採用兩種方式來學習ROS:

開始學習教程 - 立刻進入和開始使用ROS http://wiki.ros.org/cn/ROS/Tutorials 。

概覽 - 通讀ROS和它的功能的這個概覽 http://wiki.ros.org/cn/ROS/Introduction 。

有關ROS架構的更多詳細信息,請參考ROS核心文檔 http://wiki.ros.org/cn/ROS 。

如果你不能找到你的問題的解決方法,就嘗試搜索 http://answers.ros.org 或者郵件列表歸檔。或者在 http://answers.ros.org/questions/ask/ 上提出問題。

查看支持頁面獲取更多信息 http://wiki.ros.org/Support 。

你也可以通過瀏覽公開的ROS代碼庫的這個列表來尋找做相似工作的群組 http://wiki.ros.org/RecommendedRepositoryUsage/CommonGitHubOrganizations 。

做到這裡,項目只完成了一半,後續步驟及詳細代碼請點擊閱讀原文觀看。學編程,當然是要一遍敲一遍看啦!


猛戳「閱讀原文」

查看完整《ROS機器人作業系統的安裝、配置與初級教程》

相關焦點

  • ROS機器人作業系統實戰
    課程將不僅僅關注ROS,還會介紹不同階段下的機器人核心概念。這門課程和其他學生可以學習的課程不一樣,不僅僅是因為Dr.Rojas擁有多年的的ROS實際應用經驗,而且他的課程是精心設計的,能夠讓你更加系統地學習ROS。大多數ROS相關書籍和課程會通過一系列拼接起來的項目來教授ROS,儘管這個方法是有效的,但是學生們只能分批地學習中間件系統。
  • wsl2安裝ROS
    一、機器人作業系統 (ROS) 是編寫機器人軟體的靈活框架。
  • 基於Arduino和ROS來創建更智能的機器人系統
    但是,由於板載計算能力和軟體有限,開發人員常常無法升級到更複雜的機器人。通常,隨著開發人員變得越來越有經驗,他們會尋專用於機器人的軟體,因為Arduino僅提供部分控制項。 在本篇文章中,我們主要介紹了中間件軟體框架Robot Operating System(ROS),並引導您通過Arduino設置和使用ROS來創建更智能的機器人系統。 什麼是ROS?
  • Matlab協調ROS程序: matlab 2015b + ros indigo
    你是否一直糾結ros程序的單步調試呢?你是否一直糾結ros中的具體數據流呢?
  • ROS 機器人技術 - TF 坐標系統基本概念
    我們知道一個機器人系統通常含有多個隨著時間變化的 3D 坐標系(coordinate frames),比如常見坐標系如下:TF 包的作用就是隨著時間的變化跟蹤這些坐標系,並且用戶可以訪問過去和現在的一些坐標變換,比如:5 秒前,機器人頭部坐標系相對於世界坐標系的變換關係是怎樣的
  • ROS 入門 - Ubuntu 16.04 安裝 Kinetic
    這兩天把 ROS 官網的 20 講初級教程搞定了,接下來寫寫文章,做為對學習過程中的一次總結
  • 【知識】機器人自主定位導航 ROS是唯一選擇?
    隨著這兩年國內機器人的升溫,自主定位導航技術作為機器人智能化的第一步正不斷引起行業內的重視。為了實現這一功能,不少廠家選擇採用機器人作業系統ROS(Robot Operation System),今天我們就聊一聊ROS系統。  1.什麼是ROS?
  • ROS——無人機ROS仿真包 rotors_simulator 使用教程
    #include <ros/ros.h>#include <iostream>#include <chrono>#include <thread>#include <geometry_msgs/PointStamped.h>#include <std_srvs/Empty.h>#
  • 【ROS機器人研發教程2】ROS學習筆記(一):自己動手寫一個ROS程序
    /indigo/share:/opt/ros/indigo/stacks  如果能看到自己工作區的文件路徑就說明已經成功了。/ros.h"  #include "std_msgs/String.h"    #include <sstream>  int main(int argc, char **argv)  {    /**    * The ros::init() function needs to see
  • ROS培訓教程----第五章
    /ros.h"#include"std_msgs/String.h"#include<sstream>#include"first_example/Num.h"int main(intargc, char **argv) {    ros::init(argc, argv, "talker");//talker
  • ROS培新教程-第四章
    ) {    ros::init(argc, argv, "talker");//talker是節點名稱,必須要與cpp文件名保持一致    ros::NodeHandle n;    ros::Publisher chatter_pub =n.advertise<first_example::Num>("chatter", 1000
  • 基於Bash腳本自己開發ROS的一鍵啟動
    端午節沒啥事,左右苦思冥想,發現網上針對ROS的bash啟動腳本幾乎還是處於0的狀態。為此針對性的給ROS開一個bash腳本的教程是非常有必要的。也希望各位大佬能提點意見,如果後續合適,我會繼續根據各位的意見來繼續開坑的。首先我們知道常見的bash腳本是基於shell文件的。因為bash是免費的並且很容易使用。所以很多開源作者所提供的腳本都是使用bash。
  • Windows10安裝ROS(詳細版)
    在之後教程和博文中會進行最新版本ROS的詳細說明和講解,類似如下連結模式:----https://blog.csdn.net/ZhangRelay/article/details/82844666----下面詳細介紹一下在Win10中進行ROS的一些補充說明,博客開設主要目的是機器人工程本科專業相關課程補充資料
  • 1.ROS2GO系統簡介
    0x00 什麼是ROS2GO隨著ROS(Robot Operating System)機器人作業系統的越來越熱
  • 開發者說丨ROS理論與實踐⑦:機器人導航
    導航是機器人系統中最重要的模塊之一,比如現在較為流行的服務型室內機器人,就是依賴於機器人導航來實現室內自主移動的,本章主要就是介紹導航相關內容
  • 9.基於snowboy實現ROS中的語音喚醒
    剩下的各語音模塊體驗我感覺都已經非常好了,我們本次課程只介紹本地喚醒部分,就是如何觸發機器進入工作狀態。0x01 語音喚醒實現流程現在我們來重點關注語音喚醒的實現流程,通過學習前面snowboy的課程,對snowboy的喚醒有了一定的認識。
  • 有趣免費的開源機器人課程實踐指北
    更多內容請點擊上方 百萬機器人 關注推薦一篇開源機器人學習相關的好文章!
  • ROS大神為你詳解:如何搞定Movidius神經計算棒基於ROS的實現與封裝
    機器人創新生態特邀Intel開源軟體技術中心專家,為你詳解基於 Movidius 神經計算棒的ROS開發包的功能及其使用方法(附全套代碼),幫助你輕鬆地將深度學習技術引入項目,和其他ROS節點無縫連接,為你的機器人裝上人工智慧的利器。   搞定實現與封裝後,能應用在哪些領域?
  • 新手入門SLAM必備資料
    搜集了各大網絡,請教了SLAM大神,終於把SLAM的入門資料搜集全了!在分享資料前,我們先來看看,SLAM技術入門前需要具備哪些知識?首先學習SLAM需要會C和C++,網上很多代碼還用了11標準的C++。第二要學會用Linux。第三要會cmake,vim/emacs及一些編程工具。
  • 如何在Gazebo裡仿真ROS機器人的SLAM建圖和導航
    上一節我們介紹了wpr_simulation這個開源項目的簡單使用,這一節我們繼續深入,在Gazebo裡進行SLAM建圖和Navigation導航的仿真。一、代碼更新項目wpr_simulation的代碼為這次實驗進行了更新,需要重新下載。