ros是由standford的pr2專案起源,它有一套非常完備的工程系統,可以適用於大部分的機械人場景。
ros是通訊機制、工具軟體包、機械人高層技能以及機械人生態系統的集合體。(來自roswiki)
一般來說,ros需要有乙個roscore作為主節點來執行其他所有的程序,如果這個主節點出現錯誤,整個系統都會冗機。同時由於ros在訊息**當中要經過很多個軟體棧,時間沒有辦法做到real-time,因此只能在開發過程當中作為乙個工具使用,或者適用於實時性要求不太高的單機機械人場景。
那麼如果不用ros的通訊,就需要一些更加工業場景適用的中介軟體進行訊息通訊。
ros2加入了乙個ros圖的概念,不同的ros節點之間可以進行通訊,然後通過它製作的ros1-bridge這個包來實現這個ros與ros2之間的互動。
在這個基礎之上,我又進一步的了解了fast-rtps通訊協議。
fast-rtps是乙個多機之間通訊的中介軟體,它實現了在區域網之內置立域,然後在域內通過publisher和subscriber進行互動。不同的訊息話題可以通過不同的topicname來進行確認。
fast-rtps在區域網內預設的發布形式是udp的,也就是說一旦以這個話題傳送訊息,整個區域網內所有開了這個話題的機器都能收到這條資訊,那麼如果要加以確認,就需要在訊息當中加入每個機器的標誌位,這樣才知道這條資訊究竟發給了誰。
現在暫時只是對多機通訊的簡單形式進行了使用,後面會對它的tcp(點對點)**形式再做乙個**,還有包括訊息的確認(多次握手),以及話題的matching,容錯處理進行進一步**。
ROS2學習 建立自己的ROS2功能包
建立資料夾 mkdir p ros2 ws src cd ros2 ws colcon build1 建立功能包 建立乙個pubsub的包 ros2 pkg create build type ament cmake cpp pubsub改xml檔案裡的郵箱 2 寫發布節點 建立ros2 talke...
ROS入門 5 深入了解ROS話題通訊機制的過程
乙個節點需要與系統中其他節點進行通訊才有意義,系統中任何單獨的乙個節點其實都是沒有意義的。下圖是乙個話題通訊的過程示意圖,乙個節點通過節點管理器連線到另乙個節點,最終請求話題資料流。ps 在ros中有兩個節點 乙個是發布者talker,另乙個是訂閱者listener,兩個節點分別發布 訂閱同乙個話題...
ros跑通orbslam2遇到的問題
主要參照兩個部落格 ros kinetic安裝orbslam2安裝在安裝中遇到些問題1 安裝kinetic失敗sudo apt get install ros kinetic desktop full執行此命令,很快就結束了,我還以為我的網速快呢,原來是公司把埠給限制了,opt下面根本什麼都沒有,搬...