關於ros提到的那只turtle

2021-07-06 04:49:18 字數 2367 閱讀 4193

關於ros的資料中,提到乙隻虛擬小烏龜:turtle,關於它的例子也十分簡單,比如啟動它:

roscore

rosrun turtlesim turtlesim_node

另開啟乙個ternimal標籤

rosrun turtlesim turtle_teleop_key

將會得到藍色背景下隨機的一直小烏龜,並且可以使用方向鍵控制移動,但是turtle_teleop_key的節點系統裡是沒有源**的,只有乙個能夠直接執行的檔案.

開啟節點圖可以更直觀地看到這兩個節點間傳遞訊息的主題

換句話說自己寫乙個可發布/turtle1/cmd_vel的程式.

我們必須知道/turtle1/cmd_vel裡發布的msg是什麼樣的:

$rostopic type /turtle1/cmd_vel | rosmsg show

geometry_msgs/vector3 linear

float64 x

float64 y

float64 z

geometry_msgs/vector3 angular

float64 x

float64 y

float64 z

可以看到msg為geometry_msgs/vector3,這個訊息的原型在ros中,/opt/ros/版本/share/geometry_msgs/vector3 ,內容為

float64 x

float64 y

float64 z

那麼接下來自己寫乙個node,發布它們就可以了.

在catkin中建立乙個package,並建立乙個node.

cd ~/catkin_ws/src/子目錄

catkin_create_pkg 節點名 roscpp rosmsgs geometry_msgs

在該package的src下建立乙個名為talk.cpp的node.

#include

#include

ros::publisher cmdvelpub;

int main(int argc, char **argv)

return

0;}

並且修改cmake**,讓編譯系統明白如何編譯,這裡我的package為toldturtle,node為talk.cpp:

cmake_minimum_required(version 2.8.3)

project(toldturtle)

find_package(catkin required components

geometry_msgs

roscpp

rospy

std_msgs

)catkin_package(

catkin_depends geometry_msgs roscpp rospy std_msgs

)include_directories(

$)## declare a c++ executable

add_executable(talk src/talk.cpp)

## specify libraries to link a library or executable target against

target_link_libraries(talk$)

這樣在terminal裡編譯下整個catkin的package

cd ~/catkin_ws/

catkin_make

如果編譯成功,就可以看到提示了.

在終端執行寫的node

這樣就完成了,ros中這個簡單的turtle的控制.

這樣依然可以用方向鍵控制自旋轉的turtle.

關於前端提到的ployfill和shim

ployfill 俗稱 膩子 沒有乙個標準的翻譯名,英文意為將有裂縫的牆面填平,在這裡指補充舊版本瀏覽器功能的不足 shim是乙個庫,ployfill是shim的一種 常說的shim指通過增加api的方面來實現,例如jquery的 ajax會相容ie的activexobject 和xmlhttpre...

關於之前提到vbo速度的問題

之前因為要用到nvperfhud,所以裝的是78.01的driver 然後結果即像提到的那樣,不管如何優化,vbo相比var,fps總會掉近1 5 怎麼試都是一樣,情況不像想象中那麼簡單 應該會和d3d中vb的lock unlock一樣吧 天真 最後看到有人說nvidia和ati的實現不一樣,nvi...

關於Linux中一直提到的shell

剛開始學linux,很多地方都提到了shell,但是一直不太清楚它到底是什麼,這裡引用了乙個比較好的解釋 一 shell的含義 首先shell的英文含義是 殼 它是相對於核心來說的,因為它是建議在核的基礎上,面向於使用者的一種表現形式,比如我們看到乙個球,見到的是它的殼,而非核。linux中的she...