關於ros的資料中,提到乙隻虛擬小烏龜:turtle,關於它的例子也十分簡單,比如啟動它:
roscore另開啟乙個ternimal標籤rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key將會得到藍色背景下隨機的一直小烏龜,並且可以使用方向鍵控制移動,但是turtle_teleop_key的節點系統裡是沒有源**的,只有乙個能夠直接執行的檔案.
開啟節點圖可以更直觀地看到這兩個節點間傳遞訊息的主題
換句話說自己寫乙個可發布/turtle1/cmd_vel的程式.
我們必須知道/turtle1/cmd_vel裡發布的msg是什麼樣的:
$rostopic type /turtle1/cmd_vel | rosmsg show可以看到msg為geometry_msgs/vector3,這個訊息的原型在ros中,/opt/ros/版本/share/geometry_msgs/vector3 ,內容為geometry_msgs/vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/vector3 angular
float64 x
float64 y
float64 z
float64 x
float64 y
float64 z
那麼接下來自己寫乙個node,發布它們就可以了.
在catkin中建立乙個package,並建立乙個node.
cd ~/catkin_ws/src/子目錄在該package的src下建立乙個名為talk.cpp的node.catkin_create_pkg 節點名 roscpp rosmsgs geometry_msgs
#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...