unimore_roboracer repository

unimore_roboracer repository

unimore_roboracer repository

Repository Summary

Description HiPeRT-Lab's Roboracer autonomous racing stack
Checkout URI https://github.com/hipert/unimore_roboracer.git
VCS Type git
VCS Version master
Last Updated 2025-03-09
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
adx_curve 1.0.0
adx_data 0.0.0
adx_data_ros 1.0.0
adx_msgs 0.0.0
maps 1.0.0
particle_filter 0.0.0
path_logger 1.0.0
path_publisher 1.0.0
purepursuit 1.0.0
kitt 1.0.0

README

# UNIMORE Roboracer Software Stack


HiPeRT Lab.

This is the open-source repository for the Roboracer autonomous driving project at the University of Modena and Reggio Emilia.

[Autonomous Stack](#autonomous-stack)   •   [Instructions](#instructions)   •   [Contribute](#contribute)   •   [Cite](#cite)   •   [License](#license)

![HiPeRT Lab's KITT overtaking a slower vehicle](img/kitt_overtake.gif "HiPeRT Lab's KITT overtaking a slower vehicle")

Target Hardware Platform

The main target platform for this project is the Roboracer research platform. For a complete bill of materials, building instructions and more about the platform, check out the official Roboracer platform documentation.

![Roboracer reference platform](img/kitt_cutout.png "Roboracer reference platform")

While the Roboracer platform is mainly based on a strict set of sensor and computer requirements, this repository mainly implements software for the following research prototypes

Bud and KITT

Bud and KITT are our main Roboracer-compliant vehicles, both equipped with a Hokuyo UST-10LX 2D LiDAR and an NVIDIA Jetson embedded computer. The vehicles are mostly used in autonomous racing use-cases and serve as the baseline platform for our research and development efforts.

We use them in a ping-pong, i.e., one of them is frozen and ready to race, while we use the other one to research new algorithm and sensors, still always compliant with race rules.

Currently KITT is the ready-to-race car, while Bud is under development.

Bud and KITT are also an educating platform used by students to learn autonomous driving concepts and they are the main vehicles deployed by HiPeRT Lab’s Roboracer team in competitions.

Thundershot

Thundershot is our main FPGA-based embedded research platform, which is also equipped with a Hokuyo UST-10LX 2D LiDAR. It is based on an AMD Kria KR260. Currently, we support an hardware-accelerated 2D LiDAR localization pipeline in the particle_filter package. The hardware is open-sourced in the particle_filter_hw repository.


Autonomous stack

This repository acts as a proof-of-concept software stack to drive scaled autonomous vehicles. It’s split into several independent modules, each one implementing a specific functionality of the autonomous vehicle.

  • vehicles - vehicle description files, transformation fixed frames and support files related to each vehicle
  • adx_data - a lightweight and low-dependency library for handling data structures commonly used in autonomous driving
  • adx_data_ros - ROS2 wrappers for adx_data types
  • adx_msgs - Custom ROS2 transport messages definitions
  • adx_curve - a library for handling curves and splines
  • maps - maps and trajectories storage, plus means to serve them to nodes
  • particle_filter - high-performance 2D LiDAR localization on embedded multi-core processors
  • path_handler - ROS2 utilities to handle paths and trajectories
  • purepursuit - pure pursuit control on static and/or dynamic trajectories

For more information and instructions, you can check the README file in each module’s root directory.

Instructions

To build the repo and run a test demo of the system, please refer to the instructions file.

Contribute

We gladly welcome contributions from the community

  • Did you find a bug, unexpected behavior, or just something that can be improved? Open an issue and we will gladly discuss it
  • You want to contribute something (small or big) to the project? Feel free to fork the repository and open a pull request on this repository. Please provide a clear description of your changes and/or how they affect the codebase. We will review your pull request and provide feedback as needed

Cite

If you use the code in this repository or our work is relevant to your research, please consider citing one or more of the following works:

Adaptive Localization for Autonomous Racing Vehicles with Resource-Constrained Embedded Platforms ```bibtex @inproceedings{10546748, author={Gavioli, Federico and Brilli, Gianluca and Burgio, Paolo and Bertozzi, Davide}, booktitle={2024 Design, Automation & Test in Europe Conference & Exhibition (DATE)}, title={Adaptive Localization for Autonomous Racing Vehicles with Resource-Constrained Embedded Platforms}, year={2024}, doi={10.23919/DATE58400.2024.10546748}} ```
GPU implementation of the Frenet Path Planner for embedded autonomous systems: A case study in the Roboracer scenario ```bibtex @article{MUZZINI2024103239, title = {GPU implementation of the Frenet Path Planner for embedded autonomous systems: A case study in the F1tenth scenario}, journal = {Journal of Systems Architecture}, volume = {154}, pages = {103239}, year = {2024}, issn = {1383-7621}, doi = {https://doi.org/10.1016/j.sysarc.2024.103239}, author = {Filippo Muzzini and Nicola Capodieci and Federico Ramanzin and Paolo Burgio}, } ```
An FPGA Overlay for Efficient Real-Time Localization in 1/10th Scale Autonomous Vehicles ```bibtex @INPROCEEDINGS{9774517, author={Bernardi, Andrea and Brilli, Gianluca and Capotondi, Alessandro and Marongiu, Andrea and Burgio, Paolo}, booktitle={2022 Design, Automation & Test in Europe Conference & Exhibition (DATE)}, title={An FPGA Overlay for Efficient Real-Time Localization in 1/10th Scale Autonomous Vehicles}, year={2022}, doi={10.23919/DATE54114.2022.9774517}} ```

License

This repository is licensed under the Apache License, Version 2.0.

CONTRIBUTING

No CONTRIBUTING.md found.

unimore_roboracer repository

unimore_roboracer repository

unimore_roboracer repository

unimore_roboracer repository

unimore_roboracer repository

unimore_roboracer repository

unimore_roboracer repository

unimore_roboracer repository

unimore_roboracer repository

unimore_roboracer repository

unimore_roboracer repository

unimore_roboracer repository

unimore_roboracer repository

unimore_roboracer repository

unimore_roboracer repository