Skip to content

Predictive Spliner planner for the ForzaETH race stack

Notifications You must be signed in to change notification settings

ForzaETH/predictive-spliner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Predictive Spliner: Data-Driven Overtaking in Autonomous Racing

arXiv e-print Badge

Predictive Spliner is a data-driven overtaking planner for autonomous racing, leveraging opponent trajectory prediction through Gaussian Process (GP) regression. The algorithm computes effective overtaking maneuvers while considering both spatial and temporal information, enhancing performance and safety during head-to-head races. Check out our preprint Predictive Spliner: Data-Driven Overtaking in Autonomous Racing on ArXiv for more information. Or check out our explanatory Youtube video.

GA

Key Features

  • Data-Driven Approach: Learns opponent behavior and predicts future trajectories for safe overtaking.
  • High Performance: Achieves up to 83.1% of its own speed during overtaking with an average success rate of 84.5%.
  • Experimental Validation: Tested on a 1:10 scale autonomous racing platform with a robust comparison to state-of-the-art algorithms.

Installation

The predictive spliner planner is part of the ForzaETH Race Stack. Please refer to the installation guide for detailed instructions and perform the quickstart guide below to run the planner.

Quickstart Guide

This is how to run the predictive spliner planner with the headtohead node in the base simulator. The same steps can be followed analogously to run the planner on the physical robot.

Start a roscore:

roscore

Launch the base simulator with the desired map and sim true:

roslaunch stack_master base_system.launch sim:=True racecar_version:=SIM map_name:=f

Launch headtohead with the predictive_spliner as planner. Note: that perception is set to False due to the simulated opponent not providing any perception data, hence set it to True when testing on the physical robot:

roslaunch stack_master headtohead.launch perception:=False planner:=predictive_spliner

Launch a dummy obstacle publisher:

roslaunch obstacle_publisher obstacle_publisher.launch speed_scaler:=0.3

Start rqt and enable the overtaking sectors:

rqt

Refer to this video to see the quickstart in action: Quickstart Video

Citing Predictive Spliner

If you found our stack helpful in your research, we would appreciate if you cite it as follows:

@misc{baumann2024predictivesplinerdatadrivenovertaking,
      title={Predictive Spliner: Data-Driven Overtaking in Autonomous Racing Using Opponent Trajectory Prediction}, 
      author={Nicolas Baumann and Edoardo Ghignone and Cheng Hu and Benedict Hildisch and Tino Hämmerle and Alessandro Bettoni and Andrea Carron and Lei Xie and Michele Magno},
      year={2024},
      eprint={2410.04868},
      archivePrefix={arXiv},
      primaryClass={cs.RO},
      url={https://arxiv.org/abs/2410.04868}, 
}

About

Predictive Spliner planner for the ForzaETH race stack

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published