CeleX5事件相機使用系列 ROS下的簡單使用

2021-10-19 17:46:28 字數 2621 閱讀 7112

首先寫乙個不依賴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 buildcatkin_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檔案是什麼?...