Skip to content

Repository files navigation

FAST-LIVO2 for ATS360-EDU

中文说明 | English


中文说明

1. 说明文档

2. 项目定位

ATS360-EDU 是上海代数律动技术有限公司面向科研/教学需求开发的多源融合 SLAM 扫描开放平台,开放主控平台及内部数据接口,便于二次开发和后处理。

本仓库不是独立于 FAST-LIVO2 的新算法,主要完成:

  • 数据转换:将设备标定参数转换为 FAST-LIVO2 配置。
  • 消息适配:解析 ATS360-EDU bag 中的 slam_sdk/CustomMsg、压缩图像和 IMU 消息。
  • 运行配置:提供 ATS360-EDU 专用 YAML 和 launch 文件。
  • 依赖隔离:将 Sophus 安装到仓库内的 3rd/install,不修改系统目录。

FAST-LIVO2 的算法、论文、数据集和其他传感器示例请参阅上游项目

3. 支持的数据接口

mapping_ATS360.launch 默认读取:

传感器 ROS 话题 消息类型
相机 cam1 /camera1/image_raw/compressed sensor_msgs/CompressedImage
激光雷达 /lidar/points slam_sdk/CustomMsg
IMU /imu/data sensor_msgs/Imu

仓库包含兼容的 slam_sdk/CustomMsg 声明。回放已转换的 bag 时,不需要额外安装 ATS360 ROS SDK。

4. 环境与依赖

  • Ubuntu 18.04 或 20.04
  • ROS 1 与 catkin
  • PCL 1.8+
  • Eigen 3.3.4+
  • OpenCV 4.2+

工作区布局:

catkin_ws/src/
|-- FAST-LIVO2/
|   |-- 3rd/Sophus/    # Git submodule, revision a621ff
|   `-- 3rd/install/   # Local install prefix, ignored by Git
`-- rpg_vikit/         # Separate catkin repository

rpg_vikit 是同一工作区中的独立 catkin 仓库,不是本项目子模块。

5. 获取源码与编译

5.1 拉取仓库

mkdir -p catkin_ws/src
cd catkin_ws/src
git clone --recurse-submodules https://github.com/markton/FAST-LIVO2.git
git clone https://github.com/xuankuzcr/rpg_vikit.git

未初始化子模块时执行:

cd FAST-LIVO2
git submodule update --init --recursive

5.2 构建本地 Sophus

Sophus 固定使用提交 a621ff。首次拉取后执行一次:

cd catkin_ws/src/FAST-LIVO2
./3rd/build.sh

脚本将 Sophus 安装到 3rd/install,不会写入 /usr/usr/local

5.3 编译 catkin 工作区

cd catkin_ws
catkin_make -DSophus_DIR="$PWD/src/FAST-LIVO2/3rd/install/lib/cmake/Sophus"
source devel/setup.bash

6. 运行

终端 1:

cd catkin_ws
source devel/setup.bash
roslaunch fast_livo mapping_ATS360.launch

终端 2:

cd catkin_ws
source devel/setup.bash
rosbag play path/to/ATS360.bag

运行时加载:

config/ATS360.yaml                 # LIO/VIO、外参、时间差和 IMU 轴系
config/camera_pinhole_ATS360.yaml  # cam1 相机模型与内参

7. 主要文件

路径 说明
config/ATS360.yaml ATS360-EDU LIO/VIO 主配置
config/camera_pinhole_ATS360.yaml cam1 相机配置
launch/mapping_ATS360.launch ATS360-EDU 启动文件
scripts/ATS360_Param2FastLIVO2.py 设备参数转换工具
include/slam_sdk/ 点云消息兼容声明
docs/ 用户指南和产品概览图片

8. 上游项目与许可证

本仓库保留 FAST-LIVO2 的 GPLv2 许可证。使用、分发或修改时,请遵循 LICENSE 和上游授权要求。

9. 技术支持

请联系:1049277275@qq.com

10. ATS360-EDU 设备概览

ATS360-EDU 集成激光雷达、IMU、4 路相机和 GNSS,并支持 4G、电台、Wi-Fi 和蓝牙通信。设备提供开放主控平台和统一数据接口,可用于实时及后处理 SLAM 研究。

10.1 产品概述

集成式手持设计为多源数据采集、设备监控和 SLAM 研究提供统一平台。

ATS360-EDU 多源融合 SLAM 扫描开放平台

10.2 设备装配

手柄、电池和手机支架采用模块化装配。

ATS360-EDU 设备装配

10.3 Wi-Fi 连接

设备提供以 SLAM 开头的 Wi-Fi 热点,名称中的数字对应设备 SN。

连接 ATS360-EDU Wi-Fi

10.4 SLAM WebOS

SLAM WebOS 提供数据通道、模块服务、工程管理和 GoSLAM 等入口。

SLAM WebOS 功能入口

10.5 数据通道

数据通道用于监控数据流,并管理串口、TCP 服务和数据收发。

数据通道状态监控

10.6 模块服务

模块服务展示 GNSS、IMU、相机、激光雷达、电台、差分、同步、网络和系统状态。

模块服务总览

10.7 工程管理与数据下载

工程管理用于创建工程、控制录制、查看存储状态并下载数据。

工程管理与数据录制

详细操作请参阅第 1 节中的用户指南。

11. 将 ATS360-EDU 原始工程转换为 bag 和配置

已有可用 bag 及其对应配置时,可跳过本节。

11.1 原始工程内容

文件或目录 说明
image/ 图像数据
param/ 相机内参、IMU-相机外参和 IMU-激光雷达外参等
gnss.nmea GNSS 定位数据
gnss.raw GNSS 原始数据
gnss.rtcm GNSS 差分数据
imu.aimu IMU 数据
lidar_imu.aimu 激光雷达内置 IMU 数据
lidar_pnt.pnts 激光雷达点云数据
preview_image.jpg 开机预览图片
project.json 工程配置信息

11.2 原始工程转 ROS bag

转换程序随 ATS360-EDU 设备开放代码提供,不包含在本仓库中。请联系 1049277275@qq.com 获取开放代码和使用说明。

生成的 bag 应包含 /camera1/image_raw/compressed/lidar/points/imu/data

11.3 设备参数转 FAST-LIVO2 配置

本仓库的 scripts/ATS360_Param2FastLIVO2.py 读取:

文件 用途
camera1.yaml cam1 模型、内参和畸变参数
imucamera1.yaml IMU 到 cam1 的外参和相机/IMU 时间差
imulidar.yaml 激光雷达到 IMU 的外参
install.yaml IMU 固定轴向变换 imu_angle_fixed

执行:

python3 scripts/ATS360_Param2FastLIVO2.py path/to/ATS360-project/param

可指定输出目录和图像尺度:

python3 scripts/ATS360_Param2FastLIVO2.py path/to/ATS360-project/param \\
  --output-dir path/to/output \\
  --scale 0.5

工具生成:

  • ATS360_param.yaml:包含 imu_angle_fixedextrin_calibtime_offset.img_time_offset 的临时参数片段。
  • camera_pinhole_ATS360.yaml:FAST-LIVO2 pinhole 相机配置。

核对后,将临时参数合入 config/ATS360.yaml 的同名位置;launch 不加载临时文件。相机配置复制到 config/

cp scripts/camera_pinhole_ATS360.yaml config/

参数对应关系:

  • extrinsic_R/extrinsic_T:激光雷达到 IMU 的变换。
  • Rcl/Pcl:激光雷达到相机的变换。
  • img_time_offset:来自 timeshift_cam_imu 的相机/IMU 时间差。
  • imu_angle_fixed:角度制 [roll, pitch, yaw] 固定 IMU 轴系旋转。
T_camera_lidar = T_camera_imu * T_imu_lidar

cam1 使用 pinhole + radtan。默认 scale: 0.5 会同步缩放图像和内参;使用原始分辨率时执行:

python3 scripts/ATS360_Param2FastLIVO2.py path/to/ATS360-project/param --scale 1.0

English

1. Documentation

2. Project Purpose

ATS360-EDU is an open multi-sensor fusion SLAM scanning platform from Shanghai Algebraic Rhythm Technology Co., Ltd..

This repository provides device-parameter conversion, ATS360-EDU bag message compatibility, runtime configuration, and a repository-local Sophus installation.

3. Supported Data Interfaces

Sensor ROS topic Message type
Camera cam1 /camera1/image_raw/compressed sensor_msgs/CompressedImage
LiDAR /lidar/points slam_sdk/CustomMsg
IMU /imu/data sensor_msgs/Imu

4. Environment and Dependencies

  • Ubuntu 18.04 or 20.04
  • ROS 1 with catkin
  • PCL 1.8+, Eigen 3.3.4+, and OpenCV 4.2+

rpg_vikit is a separate catkin repository. Sophus is the 3rd/Sophus submodule and installs under 3rd/install.

5. Clone and Build

mkdir -p catkin_ws/src
cd catkin_ws/src
git clone --recurse-submodules https://github.com/markton/FAST-LIVO2.git
git clone https://github.com/xuankuzcr/rpg_vikit.git

cd FAST-LIVO2
./3rd/build.sh

cd ../..
catkin_make -DSophus_DIR="$PWD/src/FAST-LIVO2/3rd/install/lib/cmake/Sophus"
source devel/setup.bash

6. Run

cd catkin_ws
source devel/setup.bash
roslaunch fast_livo mapping_ATS360.launch

In another terminal:

cd catkin_ws
source devel/setup.bash
rosbag play path/to/ATS360.bag

Runtime parameters come from config/ATS360.yaml and config/camera_pinhole_ATS360.yaml.

7. Key Files

Path Description
config/ATS360.yaml ATS360-EDU LIO/VIO configuration
config/camera_pinhole_ATS360.yaml cam1 configuration
launch/mapping_ATS360.launch ATS360-EDU launch file
scripts/ATS360_Param2FastLIVO2.py Device-parameter converter
include/slam_sdk/ Compatible point-cloud message declarations

8. Upstream Project and License

This repository retains the FAST-LIVO2 GPLv2 license. See LICENSE, upstream FAST-LIVO2, and Sophus.

9. Technical Support

Contact 1049277275@qq.com.

10. ATS360-EDU Device Overview

ATS360-EDU integrates LiDAR, an IMU, four cameras, and GNSS, with 4G, radio, Wi-Fi, and Bluetooth connectivity.

10.1 Product Overview

The handheld platform supports multi-sensor acquisition, monitoring, and SLAM research.

ATS360-EDU platform

10.2 Device Assembly

The handle, battery, and phone mount use a modular assembly.

ATS360-EDU assembly

10.3 Wi-Fi Connection

The device hotspot begins with SLAM and includes the device SN.

ATS360-EDU Wi-Fi

10.4 SLAM WebOS

SLAM WebOS provides Data Channels, Module Services, Project Management, and GoSLAM.

SLAM WebOS

10.5 Data Channels

Data Channels monitors streams, serial ports, TCP services, and data transfer.

Data Channels

10.6 Module Services

Module Services presents GNSS, IMU, camera, LiDAR, radio, synchronization, network, and system status.

Module Services

10.7 Project Management and Data Download

Project Management controls recording, storage, and project downloads.

Project Management

See the guides in Section 1 for complete instructions.

11. Convert an ATS360-EDU Raw Project to a Bag and Configuration

Skip this section when a usable bag and matching configuration are already available.

11.1 Raw Project Contents

File or directory Description
image/ Image data
param/ Camera intrinsics and sensor extrinsics
gnss.nmea GNSS positioning data
gnss.raw Raw GNSS data
gnss.rtcm GNSS differential data
imu.aimu IMU data
lidar_imu.aimu LiDAR built-in IMU data
lidar_pnt.pnts LiDAR point-cloud data
preview_image.jpg Startup preview image
project.json Project configuration

11.2 Convert the Raw Project to a ROS Bag

The converter is supplied with the ATS360-EDU open device code and is not included here. Contact 1049277275@qq.com for the code and instructions.

The bag must contain /camera1/image_raw/compressed, /lidar/points, and /imu/data.

11.3 Convert Device Parameters

scripts/ATS360_Param2FastLIVO2.py reads camera1.yaml, imucamera1.yaml, imulidar.yaml, and install.yaml:

python3 scripts/ATS360_Param2FastLIVO2.py path/to/ATS360-project/param

Optional output and scale:

python3 scripts/ATS360_Param2FastLIVO2.py path/to/ATS360-project/param \\
  --output-dir path/to/output \\
  --scale 0.5

ATS360_param.yaml is a temporary fragment containing imu_angle_fixed, extrin_calib, and img_time_offset. Review and merge it into config/ATS360.yaml. Copy camera_pinhole_ATS360.yaml into config/.

extrinsic_R/extrinsic_T transforms LiDAR to IMU; Rcl/Pcl transforms LiDAR to camera; img_time_offset is the camera/IMU time offset; and imu_angle_fixed defines the fixed IMU-axis rotation in [roll, pitch, yaw] degrees.

cam1 uses pinhole + radtan. The default scale: 0.5 scales images and intrinsics together. Use --scale 1.0 for the original resolution.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages