TJU-Aerial-Robotics / GeoMonoPlan
git clone https://github.com/TJU-Aerial-Robotics/GeoMonoPlan.git
v1.0.0 · 7d ago
Geometry-Aware Monocular RGB Planning
+28
stars, 24h · #1,364
+~196
stars, 7 days · #1,153
+~840
stars, 30 days · #1,004
84
★ total · +196% this week
3
forks · 0 open issues
Star history (as recorded here)
LanguageC++
LicenseMIT
Created2026-09-01 (1mo ago)
Last push2d ago
Watchers0
OwnerOrganization
Links
README excerpt
Learning Geometry-Aware Planning Representations for Monocular Flight with Cross-Modal Supervision ## 🌏 Overview 🎬 Watch the paper introduction video on 🌐 my homepage or 📺 Bilibili. ## 🎮 Simulation Flights ### 🕹️ Unity 🟢 Training environments 🔵 Validation environments ### ✨ 3D Gaussian Splatting (3DGS) ## 🚁 Real-World Flights ## 🧠 Method Our monocular planner generates smooth trajectories from **two consecutive RGB images, their metric relative pose, and the vehicle state**. During training, a privileged depth expert transfers planning-relevant geometry to the RGB branch through feature alignment, aided by an auxiliary coarse-depth objective. Pose-conditioned temporal fusion brings together geometric cues across frames. 1. **Learn from depth:** pretrain the depth expert and shared planner with trajectory objectives. 2. **Transfer geometry:** freeze the expert and shared planner; train the RGB branch with feature alignment and auxiliary depth supervision. 3. **Adapt for RGB:** freeze RGB perception and adapt the shared planner to its learned representation. At deployment, the depth expert and auxiliary depth decoder are removed. The RGB planner selects a smooth trajectory from predicted motion primitives, without explicitly reconstructing depth. ## 🚀 Inference and TensorRT Deployment Click to expand deployment instructions ### 1. Environment Setup The project was tested on **Ubuntu 20.04 with ROS1 Noetic**. Install ROS1 Noetic and a CUDA-compatible NVIDIA driver before proceeding. **Clone the repository:** [code] **Create the Python environment and install dependencies:** [code] On Linux x86_64, this installs CUDA-enabled PyTorch, ONNX, and the full **TensorRT 11.1.0.106** builder/runtime. The same environment supports PT inference, TensorRT export and engine inference. For Jetson, install the PyTorch and TensorRT packages matched to JetPack. **Download the simulator and checkpoint:** The **standalone simulation environment** and **PT checkpoint** are available from Releases. Place the checkpoint at `weights/geomonoplan.pt`. The checkpoint contains the complete inference weights; no separate YOLO weight download is required. Download `AeroScene.zip` to the repository root, then create `Simulator` and extract the environment into it: [code] Keep all extracted simulator files together. ### 2. Build the Controller Use a ROS terminal outside Conda. From the repository root: [code] ### 3. Set Up Unity–ROS Communication Create a separate `unity_ros` workspace inside `Simulator`, alongside `AeroScene`. From the repository root, in the same ROS terminal: [code] If you already have `ros_tcp_endpoint`, reuse its workspace and source its `devel/setup.bash` when starting the endpoint below. ### 4. Start the Simulation Environment Our simulation environment is based on YOPO-Sim. The startup order is **select environment → Respawn → start the ROS modules and planner → ROS connect**. **Launch Unit