在ros的應用中,常常會遇見乙個節點接收了某個資料後,經過處理再**出來。下面就這種情況給出在同乙個節點實現發布、訂閱訊息的例子。
#include
"ros/ros.h"
#include
"std_msgs/float64.h"
#include
class
tl1;
intmain
(int argc,
char
**ar**)
tl1::
tl1();
void tl1::
registernodehandle
(ros::nodehandle& _nh)
;void tl1::
registerpubsub()
;void tl1::
fcallback
(const std_msgs::float64::constptr& msg)
;void tl1::
inipub()
這裡注意一下registerpubsub中給sub_f64賦值的方法,最後乙個引數是this指標。有一種流行的說法是this指標指標指向類本身。當我們在類中需要指定類物件的時候,就可以用this指標代替那個我們不知道的物件。#include
"ros/ros.h"
#include
"std_msgs/float64.h"
class
tl1;
intmain
(int argc,
char
**ar**)
tl1::
tl1();
void tl1::
registernodehandle
(ros::nodehandle& _nh)
;void tl1::
registerpubsub()
;void tl1::
fcallback
(const std_msgs::float64::constptr& msg)
;
可以注意到我在文章開頭說,有些資料收到後需要經過一系列處理,這裡我的處理就是+1了。
這裡注意到有乙個usleep(500000)代表休眠500ms,因為兩個節點的通過topic建立起來聯絡是需要時間的,所以這裡要留給節點接收訊息的時間。
參考文獻:
1.2.
在同乙個程式中結合C
在同乙個程式中結合c 和c 在同乙個程式中結合c 以及c我們需要注意的4大主題 1.name mangling 名稱重整 2.statics 靜態物件初始化 3.動態記憶體分配 4.資料結構的相容性。對於名稱重整 我們知道在c 中由於過載的存在我們需要對函式的名稱進行重整,但是c的函式我們就不需要重...
實現同乙個使用者只能有乙個登入
1.在登入系統時,得到username 資料庫唯一 宣告個map key為username value 為sessionid 並放入快取中。2.寫乙個filter 類 每次請求 用username 從快取 的map裡 取出sessionid 如果不一致。remove 當時的sessionid 3.登...
建立乙個ROS節點
mkdir p catkin ws srccd catkin ws src現在使用catkin create pkg命令來建立乙個名為 beginner tutorials 的新程式包,這個程式包依賴於std msgs roscpp和rospy catkin create pkg beginner ...