ros官網 、goros官網

  Routers配置     |      2023-03-29 01:54

Gazebo在智能網聯汽車中的應用?

智能車無人駕駛技術是目前人工智能和機器人技術的研究熱點,有許多開源平臺可以使我們零基礎零成本入門無人駕駛技術。本文分享一下目前ROS官網最新推薦的一款開源汽車仿真模擬。使用的平臺為Ubuntu 16.04 + ROS Kinetic + Gazebo 8。同時需要具備Docker和nvidia-docker的基礎。

Gazebo:

1.認識ROS

1.點對點設計

ROS = 通訊機制+開發工具+應用功能+生態系統

1.節點(node)--軟件模塊

執行任務的進程

2.節點管理器(ROS Master)控制中心,提供參數管理

記錄每個節點信息

3.話題(topic)--異步通信機制,傳輸消息(Message)

Talker與Listener 先后順序無關

一般需要如下七個步驟

雙向同步通信機制,類似于常用的web服務器

一般需要如下五個步驟

類似與全局變量的概念

需要及時的更新參數:動態更新參數機制

這里主要介紹通過軟件源的方式安裝;如果是一些嵌入式設備可以通過編譯源碼的方式安裝。

1.按照官網步驟安裝: ;

2.參考一下步驟:

將 ubuntu 的源設置為其自帶的主服務器的源,并且將"restricted" "universe" 和"multiverse"都選上。

可能存在改完源仍更新不成功的情況,需要手動修改源

sudo gedit /etc/apt/source.list

把所有的末尾以 universe 的注釋都取消然后執行

sudo apt-get update

在機器人開發的時候可能沒有終端去發布消息:可以通過命令行去簡單測試。

rostopic pub /...

nodelet API提供共享內存的機制,讓運行更加高效。

ros版本最新的是什么

DeveloperPreview(DP)2版本。根據查詢ros官網得知,ros版本最新的是DeveloperPreview(DP)2版本。ROS也是RouterOS的縮寫routeros是mikrotik公司的軟路由產品,MikroTikRouterOS是一種路由作業系統,并通過該軟體將標準的PC電腦變成專業路由器。

ROS 工作空間、package 及 catkin 編譯系統

本文內容都可以在 ROS 官網 wiki ( )中找到,作者只是根據自己的理解重新闡述了其中的某些內容,或許能幫助讀者更好的理解 ROS 系統中的一些概念。首先保證 ROS 已經正確安裝了。安裝方式可以參考 本博客的另一篇文章 。

簡單地說,ROS workspace (工作空間)就是統一存放 ROS 文件的地方,比如一個項目的所有 ROS 文件*** 都放在一個 workspace 中,便于統一管理、編譯和調用。

catkin 是目前 ROS 的編譯系統,自 ROS Groovy 版本開始使用,取代了之前的 ro*** uild 編譯系統。

ROS workspace 中可以包含若干 ROS package,每個 package 內部包含實現某些特定功能的文件。

其中,~ 表示當前用戶的 home 目錄, -p (parent)參數可以創建某個文件夾和它的父文件夾,也就是兩層的路徑。這里 workspace 的名字是 catkin_ws,這個名字可以按照自己項目的內容設定,但是 src 這個文件夾的名字是固定的。

初始化工作空間。這里 src 就是以后存放 ROS 源文件的地方。上述命令之后,會在 src 目錄下產生 CMakeLists.txt 文件,這實際上是一個鏈接到ROS 安裝目錄下的 /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake 一個超鏈接文件,對工作空間做了一些初始設置。不用去管它,也不要隨便修改它。

會一次性編譯 src 文件夾中的所有源文件,同時生成 devel 和 build 兩個文件夾。

實際上,catkin_make 這個命令并沒有特別神奇的地方,它只是把一系列基本的編譯命令整合在了一起,一個 catkin_make 命令相當于如下的一系列命令:

如果要深入研究 catkin_make 編譯方式,可以參考 這篇文章 。

將 workspace 的信息載入系統環境變量。

這種方法載入的信息只對當前 terminal 有效。新開一個 terminal 就無效了。如果要對每個 terminal 都有效,可以將上述命令寫入用戶 home 路徑下的 .bashrc 文件中:

注意,.bashrc 文件是隱藏文件,在 home 路徑下通過命令

命令可以看到。

還要注意, 是將 echo 后邊的內容寫入文件的尾部,如果用 則要覆蓋原文件,一定不要搞錯。

編譯之后,由于我們只是一個空的 workspace,還沒有任何 package,所以沒有什么實質性的東西,只是告訴系統這里有個 ROS workspace,算是在系統中注冊了一下。

package 是組織 ROS 文件的基本單元,一般來說,每個 package 完成一些特定功能。

package 中至少包含兩個文件: package.xml 和 CMakeLists.txt.

package 在 workspace 中的存放結構一般如下:

也可采用其他的結構,但是要注意 package 之間不能嵌套,也就是在一個 package 中,不能再創建另一個 package ,所有 package 都必須是相對獨立的目錄。

用 catkin 創建 package 的過程很簡單,用如下命令:

其中 depend 為依賴的其他 package。這樣創建之后,package 中的 CMakeLists.txt 和 package.xml 中會體現出這種依賴關系。創建時也可以不指明依賴關系,在后續編譯 package 的時候再補上。

創建好了 package,就可以使用 rospack 相關的命令進行查找、進入等操作了。不過,有時會有延遲,可以用命令

或者

查找、更新一下。