-
Notifications
You must be signed in to change notification settings - Fork 11
SDK示例
Luke edited this page May 9, 2026
·
1 revision
本目录包含使用 SimpleSensorSync 的示例代码,共 5 个 Demo:
路径: CustomCam/
展示如何通过继承 Sensor 类实现自定义传感器。
核心文件:
-
cus_cam.h/cus_cam.cpp- 自定义相机类,继承自Sensor -
main.cpp- 演示如何配置同步器并接收数据
使用方法:
// 1. 创建同步器
Synchronizer synchronizer;
synchronizer.SetNetLink("192.168.1.188", 8888);
// 2. 配置自定义传感器
auto mv_cam = std::make_shared<CustomCam>();
mv_cam->SetParams({{"cam_1", CAM_1}, {"cam_2", CAM_2}});
synchronizer.UseSensor(mv_cam);
// 3. 开启同步
synchronizer.Start();
// 4. 订阅数据
Messenger::GetInstance().SubStruct("imu_1", ImuCallback);
Messenger::GetInstance().SubStruct("cam_1", ImageCallback);
// 5. 停止
synchronizer.Stop();路径: VideoCam/
使用 OpenCV 读取 USB 视频设备,支持多相机同时采集。
核心文件:
-
video_cam.h/video_cam.cpp- 继承Sensor,使用cv::VideoCapture读取相机 -
main.cpp- 基础示例 -
main_ros.cpp- ROS 版本 -
main_ros2.cpp- ROS2 版本
特点:
- 每个相机独立线程读取
- 线程安全的数据访问
路径: VideoCam_LVI/
VideoCam 的 LVI 设备专用版本,接口与 VideoCam 相同。
路径: NetCam/
支持网口工业相机(如海康威视等),包含 ROS 和 ROS2 示例。
核心文件:
-
mv_cam.h/mv_cam.cpp- 网口相机实现 -
main.cpp- 基础示例 -
main_ros.cpp- ROS 版本 -
main_ros2.cpp- ROS2 版本
路径: NetCam_LVI/
NetCam 的 LVI 设备专用版本。
cd example
mkdir build && cd build
cmake ..
makevoid ImuCallback(const void* msg, size_t) {
const auto* imu_data = static_cast<const ImuData*>(msg);
// 处理IMU数据
}
void ImageCallback(const void* msg, size_t) {
const auto* cam_data = static_cast<const CamData*>(msg);
// 处理图像数据
}class MyCam final : public Sensor {
public:
~MyCam() override;
bool Initialization() override; // 初始化相机
void Stop() override; // 停止采集
void Start() override; // 开始采集
private:
void Receive(void* handle, const std::string&) override; // 数据接收
};