首先寫乙個不依賴ros的純c++程式,確保路徑啥的可以配置正確。參考我之前的文章:【celex5事件相機使用系列】第乙個c++程式
首先寫乙個節點,用於啟動、配置感測器,並讀取資料,之後將有用的資料進行發布,供其他節點獲取。
#
include
#include
#include
#include
#include
#include
"celex5/celex5.h"
// celex的標頭檔案,注意放對路徑
intmain
(int argc,
char
**ar**)
p->
opensensor
(celex5::celex5_mipi)
;// 開啟usb連線的事件相機if(
!p->
issensorready()
)// 設定模式,選擇最簡單的事件幀模式。
celex5::celex5mode sensor_mode = celex5::event_off_pixel_timestamp_mode;
p->
setsensorfixedmode
(sensor_mode)
;uint8_t
* buf =
newuint8_t
[celex5_pixels_number]
;// 儲存資料,轉化為image。這個number定義為 1280*800
// ros發布影象資料
image_transport::imagetransport it
(nh)
; image_transport::publisher pub = it.
advertise
("event_image",10
);cv_bridge::cvimageptr frame;
ros::rate r(30
);while
(ros::ok(
))return0;
}
貼一下 cmakelists.txt 供參考
cmake_minimum_required(version 3.0.2)
project(celex_ros)
## compile as c++11, supported in ros kinetic and newer
add_compile_options(-std=c++11)
find_package(catkin required components
opencv required
roscpp
std_msgs
celex5_msgs
cv_bridge
image_transport
)catkin_package(
)include_directories(
include
"/path_to_/celex5_msgs/include"
# celex5_msgs標頭檔案的路徑,如果用到event.h/eventvector.h等$)
add_executable(celex_ros_node src/main.cpp)
target_link_libraries(celex_ros_node $
$ celex)
接收訊息部分相對簡單,沒有涉及到事件相機的相關操作
#
include
#include
#include
#include
#include
void
imagecallback
(const sensor_msgs::imageconstptr &msg)
catch
(cv_bridge::exception &e)
}int
main
(int argc,
char
**ar**)
return0;
}
使用catkin build
或catkin_make
進行編譯,注意編譯時路徑檔案配置正確。編譯時需要 celex5_msg 這個訊息檔案,或許需要編譯兩次才能完成。
執行時需要將 libcelex.so 檔案(需要自己編譯),並將配置檔案(cfg_mp 與 cfg_mp_wire)放到工作路徑下的"devel/.private/celex_ros/lib/celex_ros"當中,而不是芯侖給的說明書中說的"devel/lib"這個路徑(這個路徑好像只是個link到了前面的那個路徑)。關於庫檔案編譯方法,以及這兩個配置檔案,還是請看【celex5事件相機使用系列】第乙個c++程式。
執行時在兩個視窗分別執行節點即可:
rosrun celex_ros celex_ros_node # 驅動節點,從感測器讀取並發布訊息
# in a new terminal
rosrun receiver_test receiver_test_node # 訂閱與顯示節點,顯示驅動讀到的影象。
vue系列課程5 事件監聽v on
事件修飾符 鍵盤事件 class list v on click num 1 按鈕button p div section template export default script v on click handlerclick 按鈕button section template export ...
基礎系列之 5 C 委託和事件使用(參考)
用乙個例子來說明事件的使用。建立乙個簡單的類,名為filewatch,包含事件onfilechange。該類將檢查在執行應用程式的目錄 當前目錄,通常是專案名 bin debug 下,是否存在檔案test.txt。如果檔案被刪除或建立,都將觸發事件。同時提供乙個方法monitorfile以不斷地查詢...
電腦使用小經驗系列(5)
qq如何一鍵清空會話列表記錄?電腦鎖屏快捷鍵 快捷鍵windows l 2017最新迅雷9.1萬惡的右側瀏覽器主頁遮蔽方法 怎麼取消迅雷開機自啟動 如何將usb設定設為第一啟動項 華碩筆記本怎麼設定u盤啟動 兩種方法 阿里雲企業郵箱使用 ssl 加密協議登入郵箱 kindle裡面的sdr檔案是什麼?...