ROS相關知識

2021-10-09 22:27:55 字數 1255 閱讀 3805

初始化 node,名字為 talker,有了名字,node 才開始與 master 以及其他 node 通訊 

ros graph 中可能存在多個重名的 node,例如多個 turtle node,當令 anonymous=true 時,重名 node 會自動在名字後邊加上隨機數以示區別。

建立乙個 pub 物件

pub 物件有個 method —— pub.publish() 可以被用來向 chatter 這個 topic 上傳送型別為 string 的資料。

產生乙個 rospy.rate class 的物件 rate,它有乙個 method —— rate.sleep(),可以控制 loop 的頻率。

比如每秒鐘 loop 10次,如果一次 loop 小於 1/10 秒,則 sleep 等待,確保 1秒 完成10個 loop。

很顯然這裡的前提是,每個 loop 不能超過 1/10 秒,否則單靠 sleep 是無法達到期望的 loop 頻率的 

監控著是否程式是否被關閉,例如 ctrl + c 等

監聽 chatter topic 上的 std_msgs/string 型別的資料,一旦收到資料,就呼叫 callback 函式,

callback是自己寫的

pose好理解,就是機械人的位姿(position and orientation),那麼stamped呢?stamped表示時間戳(timestamped),這裡的時間戳是指時間戳是指格林威治時間2023年01月01日00時00分00秒起至現在的總納秒.幾乎所有的計算機都可以使用這個時間,方便統一.所以posestamped記錄的是機械人的位姿加上記錄位姿的時間這麼一種message.這個message被包含在geometry_msgs這個大類下

paramparameters的簡寫,意為引數。在ros種,起到的作用是節點間共享資料。

實現的原理是將需要共享的資料存放到ros master,這樣所有的節點都可以訪問

獲取引數的值

respawn表示是否自動重啟,true 表示如何節點未啟動,則自動重啟,false 則不重啟,預設 false

ROS相關學習

ros是個人學習機械人相關知識很好的平台,現成的通訊框架和足夠豐富的開源資源可用節省學習和實踐中的時間,提高學習效率。ros並不是機械人唯一的架構方式,在實際工程問題中ros並不能完全滿足需求,但對於注重機械人知識體系的某部分的個人來說,比如專注於slam,路徑規劃等某方面,使用ros相當於在乙個相...

ROS知識概覽

ros是乙個適用於機械人的開源的元作業系統。它提供了作業系統應有的服務,包括硬體抽象,底層裝置控制,常用函式的實現,程序間訊息傳遞,以及包管理。它也提供用於獲取 編譯 編寫和跨計算機執行 所需的工具和庫函式。在某些方面,ros相當於一種 機械人框架 類似的 機械人框架 有 player,yarp,o...

ROS開發實踐(零)ROS知識

ros架構 os層 依託於linux系統,常見的ubuntu,arch,debian 中間層 最重要的 基於tcp udp網路進行封裝成的tcpros udpros的通訊系統 應用層 執行管理者 master 計算圖角度 節點 執行運算任務的程序 訊息msg 發布publish 訂閱subsrcib...