VIP is a ROS package for experimental autonomous-quadrotor navigation in cluttered environments. The repository also contains the interfaces needed to replace the simulator with external odometry and sensing topics.
VIP: Variation-based Iterative-learning Planning for Robotic Navigation
arXiv:2608.24618
The following recordings show the global-planning demo, the local-replanning
demo, and representative real-world experiments. The GIFs are stored locally
under Media/.
Global planning Local replanning
Real experiment — first-person views
Real experiment — overview
This document is written for a first-time user. It uses a generic Catkin
workspace under ~/catkin_ws; choose any workspace directory that is convenient
for your system.
The reference environment is Ubuntu 20.04 with ROS Noetic and Catkin. Install ROS before continuing, then make sure the following tools are available:
gitrosdepcatkin_make- Eigen and the standard ROS navigation, TF, PCL, and RViz dependencies
The package manifests are provided so that ROS can resolve most dependencies automatically.
The commands below use ~/catkin_ws as the Catkin workspace. Create its src
directory once if it does not exist, then clone the repository:
mkdir -p ~/catkin_ws/src
git clone https://github.com/lyushuli/VIP.git \
~/catkin_ws/src/VIPSource ROS and install the package dependencies:
source /opt/ros/noetic/setup.bash
cd ~/catkin_ws
rosdep install --from-paths src --ignore-src --rosdistro noetic -r -yIf ROS is installed in a different distribution, source that distribution and
replace noetic in the rosdep command with the corresponding name.
Build from the workspace root and source the resulting overlay in every new terminal that uses the packages:
cd ~/catkin_ws
catkin_make
source devel/setup.bashFor a clean rebuild, remove only the workspace's build/ and devel/
directories, then run catkin_make again. Do not remove the source directory.
Open a new terminal and source ROS and the Catkin workspace before starting either demo:
source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bashThe global demo plans one trajectory using the broad simulated sensing range and executes it without any automatic replanning. In this mode, leaving the tube or detecting a collision only produces a warning; the current trajectory is not replaced automatically:
roslaunch plan_manage tube_replan.launch \
enable_replan:=false sensing_horizon:=50.0The local demo uses a 10 m simulated sensing radius and enables replanning as the quadrotor moves. This is also the default mode, so the two commands below are equivalent:
roslaunch plan_manage tube_replan.launch \
enable_replan:=true sensing_horizon:=10.0
# Equivalent shorthand using the default arguments:
roslaunch plan_manage tube_replan.launchThe launch file starts the planner, trajectory server, waypoint generator, quadrotor simulator, sensing simulation, and RViz. After RViz opens, select 2D Nav Goal and click a target position. Keep the goal inside the configured map (40 m x 20 m by default). In interactive mode, the planner uses a fixed goal height of 0.3 m.
The simulation launch file uses /state_ukf/odom and the simulated point-cloud
topics by default. For a real platform or another simulator, remap the
odometry and sensing topics in the launch file or provide equivalent ROS topics
before starting plan_manage. Verify the available topics with:
rostopic list
rostopic echo /state_ukf/odomThe required message types and topic names can be inspected in the launch files
under il_planner/plan_manage/launch/.
Project-owned code without a file-specific notice is released under the
LGPL-3.0-or-later license; see LICENSE. Copyright (c) 2025-2026
Shuli Lv.
Embedded third-party components retain their original copyright and license notices.
This project builds on Fast-Planner and Tube-RRT*.




