# CameraNdk **Repository Path**: wangda11/camera-ndk ## Basic Information - **Project Name**: CameraNdk - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-12-11 - **Last Updated**: 2025-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: 定位算法数据获取 ## README # CameraNdk #### 介绍 1. 获取rgb图像; 2. 获取imu数据; 3. 用于验证定位算法 #### 软件架构 #### 安装教程,建议版本 1. Android-studio 2020.3.1 Bete3 2. AGP:4.2.2; Gradle Version:6.7.1 3. NDK:22.1.7171670 4. CMAKE:3.18.1 #### 使用说明 0. 开启应用,会主动打开rgb和imu数据; 0.1 rgb: 640*400pixels; 30HZ; 0.2 imu:200HZ; acc单位为 m/s^2; gryo单位为 rad/s; 均为单位换算后的数值; 1. 数据获取接口 1.1 rgb数据获取:vins_interface.cpp 下的 image_data_callback()回调函数; 1.2 imu数据获取:vins_interface.cpp 下的 imu_data_callback()回调函数; 1.3 标定参数获取:vins_interface.cpp 下的示例,该用法可以在任何脚本中获取参数 CameraIMUParams::GetInstance().GetCameraParams() 获取相机参数 CameraIMUParams::GetInstance().GetIMUParams() 获取imu参数 CameraIMUParams::GetInstance().GetImuCameraParams() 获取imu和相机联合标定参数 标定文件为parameters_62.json,存放在assets路径下 2. 计算结果回传接口 当计算定位结果后,假设回传当前位姿:坐标 + 方向(四元数),使用如下结构体和触发接口回传结果 static MSG_6DOF data; //定义结果变量,并赋值计算结果 // data.correct_t,坐标(x,y,z) // data.correct_q,方向(x,y,z,w) DofCallbackManager::GetInstance()->TriggerEvent(data); //触发结果回传 如果需要修改回传的结果内容,可自行修改MSG_6DOF结构体 #### 其他逻辑接口说明 1. 初始化 1.1 初始化传感器 SensorManager::GetInstance().InitVsc(); 1.2 注册定位结果回调函数 DofCallbackManager::GetInstance()->RegisterCallback(dof_result_callback); 1.3 初始化java管理类 ManagerJavaMethod::InitJavaMethod(env/*this*/) 1.4 加载标定参数 CameraIMUParams::GetInstance().LoadFromFile("/sdcard/parameters.json") 2. 开启传感器 2.1 注册imu原始数据回调函数 ImuCallbackManager::GetInstance()->RegisterCallback(imu_data_callback); 2.2 开启imu数据 SensorManager::GetInstance().StartImu(); 2.3 注册rgb原始数据回调函数 ImgCallbackManager::GetInstance()->RegisterCallback(image_data_callback); 2.4 开启rgb数据 SensorManager::GetInstance().StartPreview(); 3. 关闭传感器 3.1 注销回调函数 ImuCallbackManager::GetInstance()->UnregisterCallback(imu_data_callback); 3.2 关闭imu SensorManager::GetInstance().StopImu(); 3.3 注销回调函数 ImgCallbackManager::GetInstance()->UnregisterCallback(image_data_callback); 3.4 关闭rgb SensorManager::GetInstance().StopPreview(); 4. 注销初始化 4.1 销毁java类对象 ManagerJavaMethod::DestoryJavaMethod(env); 4.2 传感器注销 SensorManager::GetInstance().UnInitVsc();