Official implementation of:
FNE-Nav: Forward Kinodynamic Prediction-Guided Navigation for Nonholonomic Robots in Complex Environments
Xiaoyu Tian, Jiachen Zhang, Xianzhen Liu, Qing Shi, Toshio Fukuda, and Zhiqiang Yu
FNE-Nav is a navigation framework for nonholonomic robots that couples LiDAR-based subgoal prediction with forward closed-loop rollout under Ackermann bicycle dynamics.
This initial public release contains the inference and deployment components used for ROS/Gazebo integration:
- LiDAR-conditioned subgoal prediction;
- a CNN/Transformer perception backbone;
- a neural closed-loop trajectory predictor based on
torchdiffeq; - Ackermann bicycle dynamics;
- a ROS navigation node and Gazebo vehicle simulation packages.
The training pipeline, training datasets, rosbag recordings, and pretrained model weights are not included in this release.
To run the complete navigation system, users must provide compatible policy and controller checkpoints through launch arguments.
FNE-Nav/
├── src/
│ ├── fne_nav/ # FNE-Nav ROS package
│ │ ├── config/ # Planner and model configuration
│ │ ├── launch/ # ROS launch files
│ │ ├── policy/ # Perception and rollout modules
│ │ └── scripts/ # Online navigation node
│ └── ackermann_vehicle_base_gazebo/ # Gazebo vehicle and LiDAR simulation
├── requirements.txt
├── LICENSE
└── THIRD_PARTY_NOTICES.md
The code was developed for Ubuntu 20.04, ROS Noetic, Python 3.8, Gazebo 11, and CUDA-capable PyTorch.
Install ROS dependencies according to your ROS distribution, then install the Python dependencies:
python3 -m pip install -r requirements.txtPyTorch should be installed separately using the build appropriate for your CUDA version.
mkdir -p ~/fne_nav_ws/src
cd ~/fne_nav_ws/src
git clone https://github.com/yuxuanlib/FNE-Nav.git
cd ~/fne_nav_ws
rosdep install --from-paths src --ignore-src -r -y
catkin_make
source devel/setup.bashProvide locally stored checkpoints when launching. Checkpoints are intentionally not part of this repository.
roslaunch fne_nav nav.launch \
policy_weight_path:=/absolute/path/to/policy_checkpoint.pth \
controller_weight_path:=/absolute/path/to/controller_checkpoint.pthThe main configurable ROS topics and planner parameters are defined in src/fne_nav/config/planner_params.yaml.
The navigation node subscribes to /odom, /scan, and /move_base_simple/goal. It publishes /ackermann_cmd, /fne_nav/local_trajectory, and /fne_nav/intermediate_goal. Topic names can be changed through ROS parameters.
If you use this code in your research, please cite:
@article{tian2026fnenav,
title = {FNE-Nav: Forward Kinodynamic Prediction-Guided Navigation for Nonholonomic Robots in Complex Environments},
author = {Tian, Xiaoyu and Zhang, Jiachen and Liu, Xianzhen and Shi, Qing and Fukuda, Toshio and Yu, Zhiqiang},
year = {2026}
}Publication venue, volume, pages, and DOI will be added after publication.
The original FNE-Nav code in this repository is released under the MIT License. Vendored simulation components and retained third-party portions remain under their respective licenses. See THIRD_PARTY_NOTICES.md and the license files distributed with those components.