No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.0.0
License TODO
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/fs-feup/autonomous-systems.git
VCS Type git
VCS Version main
Last Updated 2025-01-13
Dev Status UNMAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The pacsim package

Additional Links

No additional links.

Maintainers

  • Alexander Phieler

Authors

No additional authors.

Project logo

PacSim

PacSim (Planning and Controls Simuluator) is a simulator for Formula Student Driverless competitions originally developed at Elbflorace.

Example of a pipeline running in PacSim with visualizations in Foxglove:

Demo gif

Features

  • Closed loop simulation of the autonomous system.
    • Simulation of vehicle dynamics
    • Simulation of all the relevant sensors (except for raw perception data) for autonomous operation. All sensors simulated are specified by at least their rate, dead time (delay), noise and some sensor-specific additional attributes.
      • IMU, wheel speeds, wheel motor torques, steering angle, GNSS
      • Mock model of the detected cones by the perception system
    • Competition logic
      • Track lap times, evaluate penalties and detect DNF
      • Create report at the end of the run
    • Configurable grip map (different friction coefficients for track segments)
  • Additional scripts and tools
    • Track editor (track_editor directory)
    • Converter from FSSIM sdf to our track format.

Prerequisites

This package is developed and tested on Ubuntu 22.04 with ROS2 Iron.

Install dependencies:

sudo apt install ros-iron-desktop ros-iron-xacro

How to get started

To use PacSim with your autonomous system, you need to create a message converter node to match your own interfaces with the simulator.

We provide an example launch file (example.launch.py) which shows an example of how to start the simulator node and the robot_state_publisher for the 3d visualization of the car.

The sensors and vehicle model are configured using config files. Examples are provided in the config folder. Things such as the discipline or the path of the track file or config files are defined using ros2 parameters.

The default vehicle model provided is rather simple and just meant to be a starting point. You are encouraged to integrate your own vehicle model by implementing the IVehicleModel class.

Docker Dev Container

A Dockerfile is configured that already contains all the dependencies. It can be used with a dev container environment or launched independently wiht the docker-compose file. For more info, check the docs folder.

Contributing

Contributions in any form (reports, feedback, requests, submissions) are welcome. Preferably create an Issue or Pull request for that.

The project also has a discord server.

Known issues

  • In Foxglove Studio (in contrast to RViz) the mesh of the car is displayed incorrectly using default settings. To fix this go to the left sidebar of the 3d panel -> Scene -> Mesh up axis and select Z-up. Restart to apply the change.
  • Currently the track editor can’t handle the skidpad and acceleration tracks (lanesFirstWithLastConnected = False) properly.
  • Currently there exists no editor and visualization for the grip map.

Acknowledgements

The initial version was developed at Elbflorace by:

  • Alexander Phieler (Main development)
  • Niklas Leukroth (Track and Config file parser)
  • Sergio Antuna (Artwork)
  • Tim Hanel (3d car model integration)
CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Recent questions tagged pacsim at Robotics Stack Exchange

No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.