Skip to content

Latest commit

 

History

History
56 lines (38 loc) · 4.14 KB

File metadata and controls

56 lines (38 loc) · 4.14 KB

FAST-LIVO2 ROS2 改造与 Isaac Sim 仿真环境实施计划

本计划涵盖两项重大任务:

  1. 将原基于 ROS1 的 FAST-LIVO2 核心代码库完全移植至 ROS2 (例如 Humble/Foxy),并部署于新目录 FAST-LIVO2-ROS2
  2. 配置基于 ROS2 的 Isaac Sim 无人机仿真环境(让无人机沿预设轨迹进行自主巡航),生成视觉+激光雷达数据供 FAST-LIVO2-ROS2 进行三维着色建图。

User Review Required

Warning

将 FAST-LIVO2 这样庞大且包含大量多传感器同步和状态估计架构的 C++ 工程从 ROS1 移植到 ROS2 是一项复杂的工程。我们将进行结构化迁移以确保原算法底层不被破坏。请确认以下重构细节:

  • 节点结构变化: 我们会用 rclcpp::Node 替代原有的 ros::NodeHandle。同时会将大量 nh.param() 等参数读取替换为 ROS2 声明式参数机制。
  • 通信与时间同步: 项目内的 tf 将被转换为 tf2_ros,图像传输的 image_transport、同步锁等都会替换为适合 ROS2 的 API。
  • 雷达消息格式: FAST-LIVO2 默认包含针对 Livox 雷达的 CustomMsg,为了避免引入额外的 ROS2 Livox 驱动依赖并在仿真中顺利运行,我们仿真中发出的 LiDAR 会采用通用 PointCloud2 (Ouster 形式),以确保兼容性。

Proposed Changes


第一阶段:FAST-LIVO2 至 ROS2 的底层重构

我们将创建一个新工程:\\192.168.124.39\work-nwh\FAST-LIVO2-ROS2,并进行底层架构迁移。

[NEW] FAST-LIVO2-ROS2/CMakeLists.txt & package.xml

  • 将原版的 catkin 构建体系替换为基于 ament_cmake,并更新所有库依赖(rclcpp, tf2_ros, sensor_msgs, nav_msgs, cv_bridge 等)。

[MODIFY] FAST-LIVO2-ROS2/include/FAST-LIVO2-ROS2/src/ 中的全套 C++ 源码

基于 ROS2 API 进行 C++ 代码级别的大规模修改:

  • 主函数 main.cpp & LIVMapper.cpp: 将回调函数和多线程处理迁移到 ROS2 MultiThreadedExecutor 以及 rclcpp::Nodecreate_subscription, create_publisher
  • TF 与 坐标转换: 剥离老版 <tf/...> 引用,换用 <tf2_ros/transform_broadcaster.h>
  • 内参配置文件: 更新 YAML 的语法以符合 ROS2 launch param 读取规范,编写基于 Python 的 launch.py 文件替代 XML launch

第二阶段:Isaac Sim ROS2 仿真环境构建

开发一段带有动画轨迹的 Python 独立环境脚本。

[NEW] scripts/isaac_sim_drone_ros2_fast_livo.py (置于 ROS2 项目对应目录中)

  • 场景与刚体: 自动搭建一个含有视觉纹理的物理场景。加载一个四旋翼无人机模型。
  • 动画飞行 (Animation): 核心需求实现——添加一段固定轨迹的 omni.isaac.core.utils.prims Animation/Action,让无人机起飞并在场地内环形绕圈飞行,模拟无人机巡检视角。
  • ROS2 Action Graph (ROS2 Bridge): 挂载 Camera, IMU 和 Lidar (Robosense/Ouster 模式 16线),利用 omni.isaac.ros2_bridge 组件向外高频发布 /left/image_raw, /os1_cloud_node1/points, /imu/imu 及系统时钟 clock

Open Questions

Important

  1. 您目前在 Windows / Ubuntu 或者服务器上的系统所安装的 ROS2 具体版本是什么?(例如:Humble, Foxy,或是 Iron 等)知道确切版本能避免某些 API 在不同 ROS2 版本间的差异报错。
  2. 原版代码中,FAST-LIVO2 调用了 OpenCV, PCL 和 一部分内置李代数运算。在执行此 ROS2 工程覆盖前,确保您宿主机内是否已经成功通过 ROS2 独立编译过像 FAST-LIO / PCL 等底层库?

Verification Plan

Automated / Build Verification

在服务器/主机上,使用 colcon build --packages-select fast_livo2,验证能够零 Error 解析并完成二进制编绎。

Manual Simulation Verification

  1. 运行 isaac_sim_drone_ros2_fast_livo.py(在 Omniverse 独立环境中执行),检查无人机是否能够自动化升空循迹飞行。
  2. 运行 ros2 launch fast_livo mapping_isaac_sim.launch.py use_sim_time:=true
  3. 打开 RViz2,添加 PointCloud2 显示,并监听 /cloud_rgb 主题。验证是否逐渐出现着色的建图效果。