SLAM
更新时间:2021-05-27
SLAM
SLAM (simultaneous localization and mapping)译为即时定位与地图构建,SLAM属于AR的基础模块,属于设备感知周围坏境的范畴。百度ARSLAM 2.0
考虑到不同机型的通用性,在设计的技术方案时更侧重于即时跟踪(instant tracking)。
SLAM API
Json
targets.json
文件中配置 详解
"slam_model":{
"id":"case_id",
"place_type":1,
"position":"0.5,0.5",
"pitch_angle":-40,
"distance":1000,
"immediately_place_model":0
}
place_type
模型放置坐标系类型 (0 屏幕坐标系 | 1 空间坐标系)
- type为 0 时,
pitch_angle
字段定义无效。- type为 1 时,
position
字段定义无效。
LUA
SLAM类 : Slam
start_slam
开启slam (最低使用版本120)slam_reset 重置slam
on_slam_direction_guide slam模式下引导提示的状态和位置
SLAM 实现
模型要求
- 模型在网格中必须按照下图呈现效果设置,提高SLAM下模型的稳定性(确保模型中心点位于模型底部中心位置)。
SLAM模型制作示例图
API
place_type
模型放置坐标系类型。
- 当type为0时,模型会出现在手机屏幕中心对应的真实世界的位置,可以通过改变
position
属性,改变现实位置(例如商品展示)。- 当type为1时,模型会出现在地理坐标系中的地面,此初始位置远近可以在项目制作时通过更改模型
distance
属性进行调整(类似打年兽项目,需要年兽必须出现在地面)。
百度AR对展示方式进行了高效调用封装,SLAM类型项目在制作时,仅需通过AppType
调用Slam
即可,如下图所示:
类型更替示例图
当SDK版本为120时,提供开启slam的接口,可根据项目需求,在特定逻辑之后开启slam。
使用此方案需注意:
- 必须开启
immediately_place_model
字段,即为立即隐藏模型操作,确保逻辑正常。
使用限制
1、不能和手势识别结合使用。
2、使用slam能力时,注意模型面数不要过大,模型面数过大可能会对性能产生影响。
3、Slam类型下模型使用高级材质渲染对slam的效果也会产生影响,建议不要结合使用。