ros海龜例子

2021-08-06 05:30:15 字數 4322 閱讀 2310

參考**:

1,小海龜例子

注意:請確定是否是在新的終端(重新開啟乙個終端)執行。

(1) 在新的終端開啟roscore

$ roscore---如果出錯,請確定關閉所有ros命令或者路徑,重試。

(2) 在新的終端開啟執行小海龜介面

$ rosrun turtlesimturtlesim_node 

得到結果:

[ info] [1294665184.346950426]: starting turtlesim with nodename /turtlesim

[ info] [1294665184.358498715]: spawning turtle [turtle1] atx=[5.555555], y=[5.555555], theta=[0.000000]

此後小海龜執行的路徑都記錄在此終端

(3) 在新的終端開啟滑鼠控制終端

$ rosrun turtle_teleopturtle_teleop_key 

將滑鼠放在此終端介面,然後用鍵盤上的「上,下,左,右」控制小海龜移動,以下是我執行的介面,是不是有點像siat?

2,ros 主題

就像小海龜這個例子,turtlesim_node和turtle_teleop_key 節點在ros主題上進行通訊,turtle_teleop_key在該主題上傳送key strokes, turtlesim在相同主題上,預定該keystrokes。我們可以用rxgraph來顯示該節點和主題間的交流。

(1) 主題顯示

$ rxgraph --在新終端輸入該命令

得到結果如圖:

下面的圖詮釋了,節點,主題:

(2) rostopic 介紹

i,rostopic -h

$ rostopic -h

得到結果:

rostopic is a command-line tool for printing information aboutros topics.

commands:

rostopic bw display bandwidth used by topic

rostopic echo print messages to screen

rostopic find find topics by type

rostopic hz display publishing rate of topic 

rostopic info print information about active topic

rostopic list list active topics

rostopic pub publish data to topic

rostopic type print topic type

type rostopic -h formore detailed usage, e.g. 'rostopic echo -h'

ii,rostopic echo [topic]

我們檢視/turtel/command_velocity主題通過turtle_teleop_key節點發布的資料,在新終端輸入:

$ rostopic echo/turtle1/command_velocity

當我們把滑鼠放在turtle_teleop_key 終端頁面,執行小海龜時,得到結果:

---

linear: 2.0

angular: 0.0

---linear: 0.0

angular: -2.0

---linear: 0.0

angular: 2.0

---linear: -2.0

angular: 0.0

---linear: 2.0

angular: 0.0

---linear: 2.0

angular: 0.0

這樣我們再看rxgraph顯示的終端,如下,在info欄,顯示了資訊

返回所有主題當前預定和發布的資料,子命令如下:

usage: rostopic list [/namespace]

options:

-h, --help 

show thishelp message and exit

-b bagfile,--bag=bagfile

list topics in .bag file

-v, --verbose 

list full details about each topic

-p  

list onlypublishers

-s  

list onlysubscribers

例如,查詢當前主題的預定和發布資料:

$ rostopic  list-v

得到結果:

published topics:

* /turtle1/color_sensor [turtlesim/color] 1publisher

* /turtle1/command_velocity[turtlesim/velocity] 1 publisher

* /rosout [roslib/log] 3 publishers

* /rosout_agg [roslib/log] 1 publisher

* /turtle1/pose [turtlesim/pose] 1publisher

subscribed topics:

* /turtle1/command_velocity[turtlesim/velocity] 2 subscribers

* /rosout [roslib/log] 1 subscriber

3,ros訊息

在ros主題上,是通過訊息進行通訊的。發布者(turtle_teleop_key)和預定者(turtlesim_node)之間的通訊,發布者和預定者傳送和接受的同一型別的訊息,這就決定了發布者決定主題型別。

i, rostopic type [topic]

返回當前執行主題的訊息型別,例如小海龜例子:

$ rostopic type/turtle1/command_velocity

得到結果:

turtlesim/velocity

$  rosmsgshow turtlesim/velocity --查詢訊息型別細節

得到結果:

float32linear float32 angular

4,將訊息應用到主題上

i,rostopic pub [topic] [msg_type] [args]

將資料發布到當前主題上,例如小海龜例子:

$rostopic pub -1 /turtle1/command_velocity turtlesim/velocity --2.0 1.8

命令詮釋:

rostopicpub ---在給定主題上發布訊息

-1---此選項表示rostopic只發布乙個訊息,然後退出

/turtle1/command_velocity---給定的主題名

turtlesim/velocity---在給定主題上發布的訊息型別

-----雙負號,表示詞法選擇器在此後的引數都不可用。這種情況發生在錯誤引數比如負數

2.01.8 ---當前主題訊息的型別的資料值

得到的結果:

終端顯示:

publishingand latching message for 3.0 seconds

圖執行的結果是:

另外,如果要保持小海龜一直移動,可以採用-r,例如:

$ rostopic pub /turtle1/command_velocity turtlesim/velocity -r 1 --2.0 -1.8

執行結果:

ROS執行例子

1.建立工作空間 mkdir p catkin ws src cd catkin ws src catkin make 自動生成build和devel兩個資料夾 source devel setup.bash echo ros package path source 只能在當前終端生效,希望所有終端...

ubuntu16 安裝ros執行小海龜

映象選擇 為了保證安裝速度,請選擇國內映象如下 ustc映象 ros kinetic只支援wily 15.10 和xenial 16.04 對應核心分別為4.2和4.4,其他版本需要編譯安裝不支援直接deb軟體源安裝,使用下面命令 安裝功能包 sudo apt get install ros kin...

海龜交易法則

海龜 交易系統是乙個完整的交易系統,它包括了交易的各個方面,實際上沒有給交易員留下一點主觀想象決策的餘地。大多數成功的交易員都使用機械 交易系統。這並非偶然。乙個良好的機械 交易系統可以自動執行整個交易程式。對於交易員在交易中必須制定的每項決策,系統都會給出答案。該系統使交易員更容易進行一致性的交易...