1. 项目概述:AR眼镜赋能健康饮食管理
春节聚餐时面对满桌美食,很多人都会陷入"想吃又怕胖"的纠结。传统解决方案需要掏出手机拍照或手动输入查询,操作繁琐且容易放弃。我们基于Rokid CXR-M SDK开发了一款AI饮食健康助手,通过AR眼镜实现"所见即所得"的热量可视化。
这个项目的核心创新点在于:
- 首创"眼镜扫视+AR投射"的交互模式,将健康管理融入自然视线
- 采用手机端AI计算+眼镜端轻量显示的架构,平衡性能与功耗
- 实现从图像采集、菜品识别到AR显示的全链路技术方案
技术选型思考:之所以选择Rokid CXR-M SDK,是因为它提供了完整的眼镜设备连接、图像采集和AR渲染能力封装,让我们可以专注于业务逻辑开发,避免重复造轮子。
2. 开发环境搭建与设备连接
2.1 基础环境配置
开发前需要准备:
- Rokid Glasses(建议使用最新款支持CXR-M协议的设备)
- Android Studio Arctic Fox以上版本
- 测试用Android手机(建议Android 12+,最低支持Android 9)
在项目的settings.gradle.kts中添加Rokid Maven仓库:
kotlin复制dependencyResolutionManagement {
repositories {
maven {
url = uri("https://maven.rokid.com/repository/maven-public/")
// 重要:必须启用https,部分企业内网需配置代理
isAllowInsecureProtocol = false
}
}
}
2.2 SDK依赖集成
在app模块的build.gradle.kts中添加必需依赖:
kotlin复制dependencies {
// Rokid核心SDK
implementation("com.rokid.cxr:client-m:1.0.1") {
// 解决可能的多版本冲突
exclude(group = "org.jetbrains.kotlinx", module = "kotlinx-coroutines-core")
}
// AI推理框架
implementation("org.tensorflow:tensorflow-lite:2.9.0") {
// 根据设备CPU架构选择合适版本
exclude(group = "org.tensorflow", module = "tensorflow-lite-gpu")
}
// 图像处理
implementation("com.github.bumptech.glide:glide:4.13.0")
kapt("com.github.bumptech.glide:compiler:4.13.0")
// 网络通信
implementation("com.squareup.retrofit2:retrofit:2.9.0")
}
避坑指南:遇到过SDK版本冲突时,建议使用./gradlew :app:dependencies命令检查依赖树,必要时使用exclude排除冲突模块。
2.3 设备连接实现细节
蓝牙连接关键代码优化:
kotlin复制class BluetoothConnector(context: Context) {
private val cxrApi = CxrApi.getInstance()
// 增加连接状态监听队列
private val connectionListeners = CopyOnWriteArrayList<BluetoothStatusCallback>()
fun connect(device: BluetoothDevice) {
cxrApi.initBluetooth(context, device, object : BluetoothStatusCallback {
override fun onConnected() {
connectionListeners.forEach { it.onConnected() }
// 启动Wi-Fi保活线程
startKeepAlive()
}
