Skip to content

MultiOpponent capable Predictive Spliner planner for the ForzaETH race stack

Notifications You must be signed in to change notification settings

ForzaETH/multiopponent-pspliner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

M-Predictive Spliner: Enabling Spatiotemporal Multi-Opponent Overtaking for Autonomous Racing

arXiv e-print Badge

M-Predictive Spliner (M-PSpliner) extends the original Predictive Spliner to enable multi-opponent, spatiotemporal overtaking in autonomous racing. The algorithm fuses real-time multi-object tracking with Gaussian Process (GP) trajectory regression to anticipate opponent intent and execute robust, efficient, and safe overtaking maneuvers against an arbitrary number of competitors.

Check out our IROS 2025 preprint M-Predictive Spliner: Enabling Spatiotemporal Multi-Opponent Overtaking for Autonomous Racing for more details.

Installation

The multi-opponent 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 multi-opponent 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 map_name:=f

Launch headtohead with the multi-opponent predictive spliner as planner. Note: that perception is set to False due to the simulated opponent not providing any perception data. When testing on the physical robot, the M-PSpliner works best with perception:=Norfair.

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

Launch a dummy obstacle publisher:

roslaunch obstacle_publisher obstacle_publisher.launch speed_scaler:=0.3

Start rqt and enable the overtaking sectors:

rqt

Citing Multi-Opponent Predictive Spliner

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

@misc{imholz2025mpredictivesplinerenablingspatiotemporal,
      title={M-Predictive Spliner: Enabling Spatiotemporal Multi-Opponent Overtaking for Autonomous Racing}, 
      author={Nadine Imholz and Maurice Brunner and Nicolas Baumann and Edoardo Ghignone and Michele Magno},
      year={2025},
      eprint={2506.16301},
      archivePrefix={arXiv},
      primaryClass={cs.RO},
      url={https://arxiv.org/abs/2506.16301}, 
}

About

MultiOpponent capable Predictive Spliner planner for the ForzaETH race stack

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •