|
1 | | -# 系统正常运行打印输出 |
2 | | -```python |
3 | | -(串口打开状态) |
4 | | -serial_manager.cpp:25 Serial port: /dev/ttyACM0 initialized and opened. |
5 | | -serial_manager.cpp:44 Serial manager started ( 使用串口通信 ) |
6 | | -infinite_sense.cpp:49 Synchronizer started |
7 | | -messenger.cpp:16 ZMQ PUB: tcp://0.0.0.0:40295 ( 当前使用的ZMQ通讯地址 ) |
8 | | -infinite_sense.cpp:68 |
9 | | ---- Topic Monitor --- |
10 | | - Active Topics (8): ( 活跃话题数量 ) |
11 | | - • imu1 (num: 100) (1秒内收到收到消息数量 ) |
12 | | - • trigger/imu_1 (num: 100) ( 触发状态 ) |
13 | | - • trigger/cam_4 (num: 8) |
14 | | - • trigger/cam_3 (num: 4) |
15 | | - • trigger/cam_2 (num: 2) |
16 | | - • trigger/laser (num: 1) |
17 | | - • trigger/cam_1 (num: 1) |
18 | | - • trigger/imu_2 (num: 1) |
19 | | ---------------------- |
| 1 | +# 下载安装 |
| 2 | +```bash |
| 3 | +sudo apt-get install libzmq3-dev # 安装ZeroMQ(可选) |
| 4 | +git clone git@github.com:InfiniteSenseLab/InfiniteSenseSDK2.0.git -b main |
| 5 | +cd InfiniteSenseSDK2.0 |
| 6 | +mkdir build && cd build |
| 7 | +cmake.. |
| 8 | +``` |
| 9 | +# 编译运行 |
| 10 | +## 运行监听程序(可选) |
| 11 | +运行话题监听程序,可以帮助检查是否有数据接收与数据上传频率是否正常。 |
| 12 | +```bash |
| 13 | +cd build/tools |
| 14 | +./monitor |
| 15 | +``` |
| 16 | +## 运行example中的程序 |
| 17 | +### 运行工业相机Demo |
| 18 | +```bash |
| 19 | +cd build/examples/GigeCam |
| 20 | +./gige_cam |
| 21 | +``` |
| 22 | +### 运行工业相机ROS节点 |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | + |
| 27 | +## 使用SDKC++开发的基本流程如下: |
| 28 | +```C++ |
| 29 | +// 加入SDK头文件 |
| 30 | +#include "infinite_sense.h" |
| 31 | +// 加入工业相机头文件 |
| 32 | +#include "mv_cam.h" |
| 33 | +using namespace infinite_sense; |
| 34 | +// 自定义回调函数 |
| 35 | +void ImuCallback(const void* msg, size_t) { |
| 36 | + const auto* imu_data = static_cast<const ImuData*>(msg); |
| 37 | + // 处理IMU数据 |
| 38 | +} |
| 39 | +// 自定义回调函数 |
| 40 | +void ImageCallback(const void* msg, size_t) { |
| 41 | + const auto* cam_data = static_cast<const CamData*>(msg); |
| 42 | + // 处理图像数据 |
| 43 | +} |
| 44 | +int main() { |
| 45 | + // 1.创建同步器 |
| 46 | + Synchronizer synchronizer; |
| 47 | + synchronizer.SetUsbLink("/dev/ttyACM0", 921600); |
| 48 | + |
| 49 | + // 2.配置同步接口 |
| 50 | + auto mv_cam = std::make_shared<MvCam>(); |
| 51 | + mv_cam->SetParams({{"camera_1", CAM_1}}); |
| 52 | + synchronizer.UseSensor(mv_cam); |
| 53 | + |
| 54 | + // 3.开启同步 |
| 55 | + synchronizer.Start(); |
| 56 | + |
| 57 | + // 4.接收数据 |
| 58 | + Messenger::GetInstance().SubStruct("imu_1", ImuCallback); |
| 59 | + Messenger::GetInstance().SubStruct("camera_1", ImageCallback); |
| 60 | + // 阻塞线程 |
| 61 | + while (true) { |
| 62 | + std::this_thread::sleep_for(std::chrono::milliseconds(100)); |
| 63 | + } |
| 64 | + // 5.停止同步 |
| 65 | + synchronizer.Stop(); |
| 66 | + return 0; |
| 67 | +} |
20 | 68 | ``` |
0 commit comments