Installation
依赖
| 依赖 | 说明 |
|---|---|
| ROS1 Noetic | roscpp nodelet pluginlib pcl_ros pcl_conversions std_msgs sensor_msgs nav_msgs geometry_msgs tf2_ros tf2_eigen roslib rosbag |
| GCC >= 9 | 需要 <filesystem> 与完整 C++17 支持 |
| CMake >= 3.0.2 | |
| Eigen3 / Boost / PCL | 系统包 |
| spdlog | 日志(find_package(spdlog)) |
| OpenCV + cv_bridge | 视觉输入、PointXYZITRGB 点类型与 fastlivo/srlivo(无条件依赖) |
| GTSAM | 仅 BUILD_OPTIMIZATION_MODULES=ON 时需要(optimization_loam) |
| TBB | 仅 superlio 需要 |
工作区布局
src/
├── asuka/ # 算法库包:asuka_core、六前端插件、算法扩展、config/、thirdparty/
└── asuka_ros/ # ROS 适配包:AsukaROS 适配层、rviz_viewer、apps 三入口、launch/
asuka 与 asuka_ros 均为 catkin 包;各上游原始实现位于仓库 test/ 下(仅作迁移
对照基准,不参与 asuka 运行时)。
构建
catkin 配置变量(两包各自持有,必须同值):
| 变量 | 默认 | 生效包 | 说明 |
|---|---|---|---|
BUILD_OPTIMIZATION_MODULES |
OFF |
asuka | 是否编译 optimization_loam 后端扩展;OFF 时不查找、不链接 GTSAM |
BUILD_ODOMETRY_{FASTLIO,BATCHLIO,SUPERLIO,FASTLIVO,SRLIVO,ZLIO} |
ON |
asuka | 每个里程计前端插件的独立编译开关(前端由 config_odometry 运行期 dlopen,关掉不影响核心);zlio 的树内 gtest 回归随 GTest 发现自动构建 |
需要后端模块时:
PCL_NO_PRECOMPILE
asuka 使用自定义点类型,CMake 已全局定义 PCL_NO_PRECOMPILE,使 VoxelGrid /
IterativeClosestPoint 等 PCL 模板算法从头文件实现对自定义类型就地实例化。
这也意味着编译比普通 ROS 包更慢、目标文件更大,属预期行为。