Repository Summary
| Description | |
| Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-13 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| car_keys | 0.0.0 |
| common_lib | 0.0.0 |
| control | 0.0.0 |
| custom_interfaces | 0.0.0 |
| data_infrastructure | 0.0.1 |
| ekf_state_est | 0.0.0 |
| eufs_msgs | 2.0.0 |
| evaluator | 0.0.0 |
| fs_msgs | 0.1.1 |
| inspection | 0.0.0 |
| invictasim | 0.0.0 |
| launcher | 0.0.0 |
| mocker_node | 0.0.0 |
| motion_lib | 0.0.0 |
| pacsim | 0.0.0 |
| pacsim_keys | 0.0.0 |
| perception | 0.0.0 |
| perception_sensor_lib | 0.0.0 |
| planning | 0.0.0 |
| power_log | 0.0.0 |
| slam | 0.0.0 |
| supervisor | 0.0.0 |
| vehicle_dynamics_node | 0.0.0 |
| velocity_estimation | 0.0.0 |
README
FS-FEUP Autonomous Systems
This repository holds most of the data and all the code on the project for Formula Student Autonomous Systems Department. The project being developed is an autonomous driving system.
Starting to Develop
Before starting, check out:
- Project Rules in Notion
- Environment Setup
- Startup Guide
Contributing
To contribute and develop the autonomous systems code, check this guide to compile and commit your work.
Documentation
- Documentation Home
- ROS Communication Table - table with all the topics and message types used in all environments
- Doxygen Code Documentation
CONTRIBUTING
Contributing
This guide aims to clarify the necessary steps for creating code that will result in an accepting pull request following the project’s norms.
You work with your shell always in the root directory. In it, you can find mutiple scripts that will help you on the upcoming tasks. You need to follow the tutorials listed before this one on the Startup Guide.
Compilation
To compile the AS System, start by installing the dependencies:
./dependencies_install.sh
Then you will need to install the dependencies specific to the submodule you want.
After installing the dependencies you need, compile the AS project:
# To compile specific packages
colcon build --packages-select [your_package_name] --cmake-args -G Ninja
# Shortcut to compile all subsystems
./compile.sh
Important: Before running any AS package, you must source the environment:
source install/setup.bash
Natural Workflow
- Set up development environment.
- Run dependencies_install.sh script to make sure everything is installed:
- Pull updates
git pull
- Checkout new branch.
- for new branches:
git checkout -b <branch_name> # for new branhces
or
git branch <branch_name>
git checkout <branch_name>
- for existing branches:
git checkout <branch_name>
- Program
- Compile (see guide at the end of this file)
colcon build
you can and should use bear to update the compile_commands.json file for Sonarlint to be kept up to date, especially if you have added new files
bear -- colcon build
- Source the packages:
source install/setup.bash
- Run code (
ros-argsare optional) (see guide at the end of this file)
ros2 run [package_name] [node_name] (--ros-args -p [param_name]:=[param_value])
Alternatively, packages contain launch files, which can be used for running multiple nodes at a time or running a node with preset parameters:
ros2 launch [package_name] [launch_file_name]
- Run tests
colcon test --packages-select [your package and others necessary] [--event-handler=console_direct+] #last part for verbose
- Finally push changes to repository
git add -A
git commit -m "feat(<package>): <description>"
git push
Note that the commit message should more or less follow the Conventional Commits norms
- Create a Pull Request to the main branch, assigning yourself and selecting reviewers
- Verify successfull workflows
Notes on Nodes, Packages, Compiling, Executing and Dependencies
Compile and Run Extended
If you only wish to compile specific packages, you can use the following command:
colcon build --packages-select [your package and others necessary]
Alternatively, to compile everything, execute:
colcon build
If the compilation is successful, you will see a success message.
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-13 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| car_keys | 0.0.0 |
| common_lib | 0.0.0 |
| control | 0.0.0 |
| custom_interfaces | 0.0.0 |
| data_infrastructure | 0.0.1 |
| ekf_state_est | 0.0.0 |
| eufs_msgs | 2.0.0 |
| evaluator | 0.0.0 |
| fs_msgs | 0.1.1 |
| inspection | 0.0.0 |
| invictasim | 0.0.0 |
| launcher | 0.0.0 |
| mocker_node | 0.0.0 |
| motion_lib | 0.0.0 |
| pacsim | 0.0.0 |
| pacsim_keys | 0.0.0 |
| perception | 0.0.0 |
| perception_sensor_lib | 0.0.0 |
| planning | 0.0.0 |
| power_log | 0.0.0 |
| slam | 0.0.0 |
| supervisor | 0.0.0 |
| vehicle_dynamics_node | 0.0.0 |
| velocity_estimation | 0.0.0 |
README
FS-FEUP Autonomous Systems
This repository holds most of the data and all the code on the project for Formula Student Autonomous Systems Department. The project being developed is an autonomous driving system.
Starting to Develop
Before starting, check out:
- Project Rules in Notion
- Environment Setup
- Startup Guide
Contributing
To contribute and develop the autonomous systems code, check this guide to compile and commit your work.
Documentation
- Documentation Home
- ROS Communication Table - table with all the topics and message types used in all environments
- Doxygen Code Documentation
CONTRIBUTING
Contributing
This guide aims to clarify the necessary steps for creating code that will result in an accepting pull request following the project’s norms.
You work with your shell always in the root directory. In it, you can find mutiple scripts that will help you on the upcoming tasks. You need to follow the tutorials listed before this one on the Startup Guide.
Compilation
To compile the AS System, start by installing the dependencies:
./dependencies_install.sh
Then you will need to install the dependencies specific to the submodule you want.
After installing the dependencies you need, compile the AS project:
# To compile specific packages
colcon build --packages-select [your_package_name] --cmake-args -G Ninja
# Shortcut to compile all subsystems
./compile.sh
Important: Before running any AS package, you must source the environment:
source install/setup.bash
Natural Workflow
- Set up development environment.
- Run dependencies_install.sh script to make sure everything is installed:
- Pull updates
git pull
- Checkout new branch.
- for new branches:
git checkout -b <branch_name> # for new branhces
or
git branch <branch_name>
git checkout <branch_name>
- for existing branches:
git checkout <branch_name>
- Program
- Compile (see guide at the end of this file)
colcon build
you can and should use bear to update the compile_commands.json file for Sonarlint to be kept up to date, especially if you have added new files
bear -- colcon build
- Source the packages:
source install/setup.bash
- Run code (
ros-argsare optional) (see guide at the end of this file)
ros2 run [package_name] [node_name] (--ros-args -p [param_name]:=[param_value])
Alternatively, packages contain launch files, which can be used for running multiple nodes at a time or running a node with preset parameters:
ros2 launch [package_name] [launch_file_name]
- Run tests
colcon test --packages-select [your package and others necessary] [--event-handler=console_direct+] #last part for verbose
- Finally push changes to repository
git add -A
git commit -m "feat(<package>): <description>"
git push
Note that the commit message should more or less follow the Conventional Commits norms
- Create a Pull Request to the main branch, assigning yourself and selecting reviewers
- Verify successfull workflows
Notes on Nodes, Packages, Compiling, Executing and Dependencies
Compile and Run Extended
If you only wish to compile specific packages, you can use the following command:
colcon build --packages-select [your package and others necessary]
Alternatively, to compile everything, execute:
colcon build
If the compilation is successful, you will see a success message.
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-13 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| car_keys | 0.0.0 |
| common_lib | 0.0.0 |
| control | 0.0.0 |
| custom_interfaces | 0.0.0 |
| data_infrastructure | 0.0.1 |
| ekf_state_est | 0.0.0 |
| eufs_msgs | 2.0.0 |
| evaluator | 0.0.0 |
| fs_msgs | 0.1.1 |
| inspection | 0.0.0 |
| invictasim | 0.0.0 |
| launcher | 0.0.0 |
| mocker_node | 0.0.0 |
| motion_lib | 0.0.0 |
| pacsim | 0.0.0 |
| pacsim_keys | 0.0.0 |
| perception | 0.0.0 |
| perception_sensor_lib | 0.0.0 |
| planning | 0.0.0 |
| power_log | 0.0.0 |
| slam | 0.0.0 |
| supervisor | 0.0.0 |
| vehicle_dynamics_node | 0.0.0 |
| velocity_estimation | 0.0.0 |
README
FS-FEUP Autonomous Systems
This repository holds most of the data and all the code on the project for Formula Student Autonomous Systems Department. The project being developed is an autonomous driving system.
Starting to Develop
Before starting, check out:
- Project Rules in Notion
- Environment Setup
- Startup Guide
Contributing
To contribute and develop the autonomous systems code, check this guide to compile and commit your work.
Documentation
- Documentation Home
- ROS Communication Table - table with all the topics and message types used in all environments
- Doxygen Code Documentation
CONTRIBUTING
Contributing
This guide aims to clarify the necessary steps for creating code that will result in an accepting pull request following the project’s norms.
You work with your shell always in the root directory. In it, you can find mutiple scripts that will help you on the upcoming tasks. You need to follow the tutorials listed before this one on the Startup Guide.
Compilation
To compile the AS System, start by installing the dependencies:
./dependencies_install.sh
Then you will need to install the dependencies specific to the submodule you want.
After installing the dependencies you need, compile the AS project:
# To compile specific packages
colcon build --packages-select [your_package_name] --cmake-args -G Ninja
# Shortcut to compile all subsystems
./compile.sh
Important: Before running any AS package, you must source the environment:
source install/setup.bash
Natural Workflow
- Set up development environment.
- Run dependencies_install.sh script to make sure everything is installed:
- Pull updates
git pull
- Checkout new branch.
- for new branches:
git checkout -b <branch_name> # for new branhces
or
git branch <branch_name>
git checkout <branch_name>
- for existing branches:
git checkout <branch_name>
- Program
- Compile (see guide at the end of this file)
colcon build
you can and should use bear to update the compile_commands.json file for Sonarlint to be kept up to date, especially if you have added new files
bear -- colcon build
- Source the packages:
source install/setup.bash
- Run code (
ros-argsare optional) (see guide at the end of this file)
ros2 run [package_name] [node_name] (--ros-args -p [param_name]:=[param_value])
Alternatively, packages contain launch files, which can be used for running multiple nodes at a time or running a node with preset parameters:
ros2 launch [package_name] [launch_file_name]
- Run tests
colcon test --packages-select [your package and others necessary] [--event-handler=console_direct+] #last part for verbose
- Finally push changes to repository
git add -A
git commit -m "feat(<package>): <description>"
git push
Note that the commit message should more or less follow the Conventional Commits norms
- Create a Pull Request to the main branch, assigning yourself and selecting reviewers
- Verify successfull workflows
Notes on Nodes, Packages, Compiling, Executing and Dependencies
Compile and Run Extended
If you only wish to compile specific packages, you can use the following command:
colcon build --packages-select [your package and others necessary]
Alternatively, to compile everything, execute:
colcon build
If the compilation is successful, you will see a success message.
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-13 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| car_keys | 0.0.0 |
| common_lib | 0.0.0 |
| control | 0.0.0 |
| custom_interfaces | 0.0.0 |
| data_infrastructure | 0.0.1 |
| ekf_state_est | 0.0.0 |
| eufs_msgs | 2.0.0 |
| evaluator | 0.0.0 |
| fs_msgs | 0.1.1 |
| inspection | 0.0.0 |
| invictasim | 0.0.0 |
| launcher | 0.0.0 |
| mocker_node | 0.0.0 |
| motion_lib | 0.0.0 |
| pacsim | 0.0.0 |
| pacsim_keys | 0.0.0 |
| perception | 0.0.0 |
| perception_sensor_lib | 0.0.0 |
| planning | 0.0.0 |
| power_log | 0.0.0 |
| slam | 0.0.0 |
| supervisor | 0.0.0 |
| vehicle_dynamics_node | 0.0.0 |
| velocity_estimation | 0.0.0 |
README
FS-FEUP Autonomous Systems
This repository holds most of the data and all the code on the project for Formula Student Autonomous Systems Department. The project being developed is an autonomous driving system.
Starting to Develop
Before starting, check out:
- Project Rules in Notion
- Environment Setup
- Startup Guide
Contributing
To contribute and develop the autonomous systems code, check this guide to compile and commit your work.
Documentation
- Documentation Home
- ROS Communication Table - table with all the topics and message types used in all environments
- Doxygen Code Documentation
CONTRIBUTING
Contributing
This guide aims to clarify the necessary steps for creating code that will result in an accepting pull request following the project’s norms.
You work with your shell always in the root directory. In it, you can find mutiple scripts that will help you on the upcoming tasks. You need to follow the tutorials listed before this one on the Startup Guide.
Compilation
To compile the AS System, start by installing the dependencies:
./dependencies_install.sh
Then you will need to install the dependencies specific to the submodule you want.
After installing the dependencies you need, compile the AS project:
# To compile specific packages
colcon build --packages-select [your_package_name] --cmake-args -G Ninja
# Shortcut to compile all subsystems
./compile.sh
Important: Before running any AS package, you must source the environment:
source install/setup.bash
Natural Workflow
- Set up development environment.
- Run dependencies_install.sh script to make sure everything is installed:
- Pull updates
git pull
- Checkout new branch.
- for new branches:
git checkout -b <branch_name> # for new branhces
or
git branch <branch_name>
git checkout <branch_name>
- for existing branches:
git checkout <branch_name>
- Program
- Compile (see guide at the end of this file)
colcon build
you can and should use bear to update the compile_commands.json file for Sonarlint to be kept up to date, especially if you have added new files
bear -- colcon build
- Source the packages:
source install/setup.bash
- Run code (
ros-argsare optional) (see guide at the end of this file)
ros2 run [package_name] [node_name] (--ros-args -p [param_name]:=[param_value])
Alternatively, packages contain launch files, which can be used for running multiple nodes at a time or running a node with preset parameters:
ros2 launch [package_name] [launch_file_name]
- Run tests
colcon test --packages-select [your package and others necessary] [--event-handler=console_direct+] #last part for verbose
- Finally push changes to repository
git add -A
git commit -m "feat(<package>): <description>"
git push
Note that the commit message should more or less follow the Conventional Commits norms
- Create a Pull Request to the main branch, assigning yourself and selecting reviewers
- Verify successfull workflows
Notes on Nodes, Packages, Compiling, Executing and Dependencies
Compile and Run Extended
If you only wish to compile specific packages, you can use the following command:
colcon build --packages-select [your package and others necessary]
Alternatively, to compile everything, execute:
colcon build
If the compilation is successful, you will see a success message.
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-13 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| car_keys | 0.0.0 |
| common_lib | 0.0.0 |
| control | 0.0.0 |
| custom_interfaces | 0.0.0 |
| data_infrastructure | 0.0.1 |
| ekf_state_est | 0.0.0 |
| eufs_msgs | 2.0.0 |
| evaluator | 0.0.0 |
| fs_msgs | 0.1.1 |
| inspection | 0.0.0 |
| invictasim | 0.0.0 |
| launcher | 0.0.0 |
| mocker_node | 0.0.0 |
| motion_lib | 0.0.0 |
| pacsim | 0.0.0 |
| pacsim_keys | 0.0.0 |
| perception | 0.0.0 |
| perception_sensor_lib | 0.0.0 |
| planning | 0.0.0 |
| power_log | 0.0.0 |
| slam | 0.0.0 |
| supervisor | 0.0.0 |
| vehicle_dynamics_node | 0.0.0 |
| velocity_estimation | 0.0.0 |
README
FS-FEUP Autonomous Systems
This repository holds most of the data and all the code on the project for Formula Student Autonomous Systems Department. The project being developed is an autonomous driving system.
Starting to Develop
Before starting, check out:
- Project Rules in Notion
- Environment Setup
- Startup Guide
Contributing
To contribute and develop the autonomous systems code, check this guide to compile and commit your work.
Documentation
- Documentation Home
- ROS Communication Table - table with all the topics and message types used in all environments
- Doxygen Code Documentation
CONTRIBUTING
Contributing
This guide aims to clarify the necessary steps for creating code that will result in an accepting pull request following the project’s norms.
You work with your shell always in the root directory. In it, you can find mutiple scripts that will help you on the upcoming tasks. You need to follow the tutorials listed before this one on the Startup Guide.
Compilation
To compile the AS System, start by installing the dependencies:
./dependencies_install.sh
Then you will need to install the dependencies specific to the submodule you want.
After installing the dependencies you need, compile the AS project:
# To compile specific packages
colcon build --packages-select [your_package_name] --cmake-args -G Ninja
# Shortcut to compile all subsystems
./compile.sh
Important: Before running any AS package, you must source the environment:
source install/setup.bash
Natural Workflow
- Set up development environment.
- Run dependencies_install.sh script to make sure everything is installed:
- Pull updates
git pull
- Checkout new branch.
- for new branches:
git checkout -b <branch_name> # for new branhces
or
git branch <branch_name>
git checkout <branch_name>
- for existing branches:
git checkout <branch_name>
- Program
- Compile (see guide at the end of this file)
colcon build
you can and should use bear to update the compile_commands.json file for Sonarlint to be kept up to date, especially if you have added new files
bear -- colcon build
- Source the packages:
source install/setup.bash
- Run code (
ros-argsare optional) (see guide at the end of this file)
ros2 run [package_name] [node_name] (--ros-args -p [param_name]:=[param_value])
Alternatively, packages contain launch files, which can be used for running multiple nodes at a time or running a node with preset parameters:
ros2 launch [package_name] [launch_file_name]
- Run tests
colcon test --packages-select [your package and others necessary] [--event-handler=console_direct+] #last part for verbose
- Finally push changes to repository
git add -A
git commit -m "feat(<package>): <description>"
git push
Note that the commit message should more or less follow the Conventional Commits norms
- Create a Pull Request to the main branch, assigning yourself and selecting reviewers
- Verify successfull workflows
Notes on Nodes, Packages, Compiling, Executing and Dependencies
Compile and Run Extended
If you only wish to compile specific packages, you can use the following command:
colcon build --packages-select [your package and others necessary]
Alternatively, to compile everything, execute:
colcon build
If the compilation is successful, you will see a success message.
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-13 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| car_keys | 0.0.0 |
| common_lib | 0.0.0 |
| control | 0.0.0 |
| custom_interfaces | 0.0.0 |
| data_infrastructure | 0.0.1 |
| ekf_state_est | 0.0.0 |
| eufs_msgs | 2.0.0 |
| evaluator | 0.0.0 |
| fs_msgs | 0.1.1 |
| inspection | 0.0.0 |
| invictasim | 0.0.0 |
| launcher | 0.0.0 |
| mocker_node | 0.0.0 |
| motion_lib | 0.0.0 |
| pacsim | 0.0.0 |
| pacsim_keys | 0.0.0 |
| perception | 0.0.0 |
| perception_sensor_lib | 0.0.0 |
| planning | 0.0.0 |
| power_log | 0.0.0 |
| slam | 0.0.0 |
| supervisor | 0.0.0 |
| vehicle_dynamics_node | 0.0.0 |
| velocity_estimation | 0.0.0 |
README
FS-FEUP Autonomous Systems
This repository holds most of the data and all the code on the project for Formula Student Autonomous Systems Department. The project being developed is an autonomous driving system.
Starting to Develop
Before starting, check out:
- Project Rules in Notion
- Environment Setup
- Startup Guide
Contributing
To contribute and develop the autonomous systems code, check this guide to compile and commit your work.
Documentation
- Documentation Home
- ROS Communication Table - table with all the topics and message types used in all environments
- Doxygen Code Documentation
CONTRIBUTING
Contributing
This guide aims to clarify the necessary steps for creating code that will result in an accepting pull request following the project’s norms.
You work with your shell always in the root directory. In it, you can find mutiple scripts that will help you on the upcoming tasks. You need to follow the tutorials listed before this one on the Startup Guide.
Compilation
To compile the AS System, start by installing the dependencies:
./dependencies_install.sh
Then you will need to install the dependencies specific to the submodule you want.
After installing the dependencies you need, compile the AS project:
# To compile specific packages
colcon build --packages-select [your_package_name] --cmake-args -G Ninja
# Shortcut to compile all subsystems
./compile.sh
Important: Before running any AS package, you must source the environment:
source install/setup.bash
Natural Workflow
- Set up development environment.
- Run dependencies_install.sh script to make sure everything is installed:
- Pull updates
git pull
- Checkout new branch.
- for new branches:
git checkout -b <branch_name> # for new branhces
or
git branch <branch_name>
git checkout <branch_name>
- for existing branches:
git checkout <branch_name>
- Program
- Compile (see guide at the end of this file)
colcon build
you can and should use bear to update the compile_commands.json file for Sonarlint to be kept up to date, especially if you have added new files
bear -- colcon build
- Source the packages:
source install/setup.bash
- Run code (
ros-argsare optional) (see guide at the end of this file)
ros2 run [package_name] [node_name] (--ros-args -p [param_name]:=[param_value])
Alternatively, packages contain launch files, which can be used for running multiple nodes at a time or running a node with preset parameters:
ros2 launch [package_name] [launch_file_name]
- Run tests
colcon test --packages-select [your package and others necessary] [--event-handler=console_direct+] #last part for verbose
- Finally push changes to repository
git add -A
git commit -m "feat(<package>): <description>"
git push
Note that the commit message should more or less follow the Conventional Commits norms
- Create a Pull Request to the main branch, assigning yourself and selecting reviewers
- Verify successfull workflows
Notes on Nodes, Packages, Compiling, Executing and Dependencies
Compile and Run Extended
If you only wish to compile specific packages, you can use the following command:
colcon build --packages-select [your package and others necessary]
Alternatively, to compile everything, execute:
colcon build
If the compilation is successful, you will see a success message.
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-13 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| car_keys | 0.0.0 |
| common_lib | 0.0.0 |
| control | 0.0.0 |
| custom_interfaces | 0.0.0 |
| data_infrastructure | 0.0.1 |
| ekf_state_est | 0.0.0 |
| eufs_msgs | 2.0.0 |
| evaluator | 0.0.0 |
| fs_msgs | 0.1.1 |
| inspection | 0.0.0 |
| invictasim | 0.0.0 |
| launcher | 0.0.0 |
| mocker_node | 0.0.0 |
| motion_lib | 0.0.0 |
| pacsim | 0.0.0 |
| pacsim_keys | 0.0.0 |
| perception | 0.0.0 |
| perception_sensor_lib | 0.0.0 |
| planning | 0.0.0 |
| power_log | 0.0.0 |
| slam | 0.0.0 |
| supervisor | 0.0.0 |
| vehicle_dynamics_node | 0.0.0 |
| velocity_estimation | 0.0.0 |
README
FS-FEUP Autonomous Systems
This repository holds most of the data and all the code on the project for Formula Student Autonomous Systems Department. The project being developed is an autonomous driving system.
Starting to Develop
Before starting, check out:
- Project Rules in Notion
- Environment Setup
- Startup Guide
Contributing
To contribute and develop the autonomous systems code, check this guide to compile and commit your work.
Documentation
- Documentation Home
- ROS Communication Table - table with all the topics and message types used in all environments
- Doxygen Code Documentation
CONTRIBUTING
Contributing
This guide aims to clarify the necessary steps for creating code that will result in an accepting pull request following the project’s norms.
You work with your shell always in the root directory. In it, you can find mutiple scripts that will help you on the upcoming tasks. You need to follow the tutorials listed before this one on the Startup Guide.
Compilation
To compile the AS System, start by installing the dependencies:
./dependencies_install.sh
Then you will need to install the dependencies specific to the submodule you want.
After installing the dependencies you need, compile the AS project:
# To compile specific packages
colcon build --packages-select [your_package_name] --cmake-args -G Ninja
# Shortcut to compile all subsystems
./compile.sh
Important: Before running any AS package, you must source the environment:
source install/setup.bash
Natural Workflow
- Set up development environment.
- Run dependencies_install.sh script to make sure everything is installed:
- Pull updates
git pull
- Checkout new branch.
- for new branches:
git checkout -b <branch_name> # for new branhces
or
git branch <branch_name>
git checkout <branch_name>
- for existing branches:
git checkout <branch_name>
- Program
- Compile (see guide at the end of this file)
colcon build
you can and should use bear to update the compile_commands.json file for Sonarlint to be kept up to date, especially if you have added new files
bear -- colcon build
- Source the packages:
source install/setup.bash
- Run code (
ros-argsare optional) (see guide at the end of this file)
ros2 run [package_name] [node_name] (--ros-args -p [param_name]:=[param_value])
Alternatively, packages contain launch files, which can be used for running multiple nodes at a time or running a node with preset parameters:
ros2 launch [package_name] [launch_file_name]
- Run tests
colcon test --packages-select [your package and others necessary] [--event-handler=console_direct+] #last part for verbose
- Finally push changes to repository
git add -A
git commit -m "feat(<package>): <description>"
git push
Note that the commit message should more or less follow the Conventional Commits norms
- Create a Pull Request to the main branch, assigning yourself and selecting reviewers
- Verify successfull workflows
Notes on Nodes, Packages, Compiling, Executing and Dependencies
Compile and Run Extended
If you only wish to compile specific packages, you can use the following command:
colcon build --packages-select [your package and others necessary]
Alternatively, to compile everything, execute:
colcon build
If the compilation is successful, you will see a success message.
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-13 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| car_keys | 0.0.0 |
| common_lib | 0.0.0 |
| control | 0.0.0 |
| custom_interfaces | 0.0.0 |
| data_infrastructure | 0.0.1 |
| ekf_state_est | 0.0.0 |
| eufs_msgs | 2.0.0 |
| evaluator | 0.0.0 |
| fs_msgs | 0.1.1 |
| inspection | 0.0.0 |
| invictasim | 0.0.0 |
| launcher | 0.0.0 |
| mocker_node | 0.0.0 |
| motion_lib | 0.0.0 |
| pacsim | 0.0.0 |
| pacsim_keys | 0.0.0 |
| perception | 0.0.0 |
| perception_sensor_lib | 0.0.0 |
| planning | 0.0.0 |
| power_log | 0.0.0 |
| slam | 0.0.0 |
| supervisor | 0.0.0 |
| vehicle_dynamics_node | 0.0.0 |
| velocity_estimation | 0.0.0 |
README
FS-FEUP Autonomous Systems
This repository holds most of the data and all the code on the project for Formula Student Autonomous Systems Department. The project being developed is an autonomous driving system.
Starting to Develop
Before starting, check out:
- Project Rules in Notion
- Environment Setup
- Startup Guide
Contributing
To contribute and develop the autonomous systems code, check this guide to compile and commit your work.
Documentation
- Documentation Home
- ROS Communication Table - table with all the topics and message types used in all environments
- Doxygen Code Documentation
CONTRIBUTING
Contributing
This guide aims to clarify the necessary steps for creating code that will result in an accepting pull request following the project’s norms.
You work with your shell always in the root directory. In it, you can find mutiple scripts that will help you on the upcoming tasks. You need to follow the tutorials listed before this one on the Startup Guide.
Compilation
To compile the AS System, start by installing the dependencies:
./dependencies_install.sh
Then you will need to install the dependencies specific to the submodule you want.
After installing the dependencies you need, compile the AS project:
# To compile specific packages
colcon build --packages-select [your_package_name] --cmake-args -G Ninja
# Shortcut to compile all subsystems
./compile.sh
Important: Before running any AS package, you must source the environment:
source install/setup.bash
Natural Workflow
- Set up development environment.
- Run dependencies_install.sh script to make sure everything is installed:
- Pull updates
git pull
- Checkout new branch.
- for new branches:
git checkout -b <branch_name> # for new branhces
or
git branch <branch_name>
git checkout <branch_name>
- for existing branches:
git checkout <branch_name>
- Program
- Compile (see guide at the end of this file)
colcon build
you can and should use bear to update the compile_commands.json file for Sonarlint to be kept up to date, especially if you have added new files
bear -- colcon build
- Source the packages:
source install/setup.bash
- Run code (
ros-argsare optional) (see guide at the end of this file)
ros2 run [package_name] [node_name] (--ros-args -p [param_name]:=[param_value])
Alternatively, packages contain launch files, which can be used for running multiple nodes at a time or running a node with preset parameters:
ros2 launch [package_name] [launch_file_name]
- Run tests
colcon test --packages-select [your package and others necessary] [--event-handler=console_direct+] #last part for verbose
- Finally push changes to repository
git add -A
git commit -m "feat(<package>): <description>"
git push
Note that the commit message should more or less follow the Conventional Commits norms
- Create a Pull Request to the main branch, assigning yourself and selecting reviewers
- Verify successfull workflows
Notes on Nodes, Packages, Compiling, Executing and Dependencies
Compile and Run Extended
If you only wish to compile specific packages, you can use the following command:
colcon build --packages-select [your package and others necessary]
Alternatively, to compile everything, execute:
colcon build
If the compilation is successful, you will see a success message.
File truncated at 100 lines see the full file
Repository Summary
| Description | |
| Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-13 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| car_keys | 0.0.0 |
| common_lib | 0.0.0 |
| control | 0.0.0 |
| custom_interfaces | 0.0.0 |
| data_infrastructure | 0.0.1 |
| ekf_state_est | 0.0.0 |
| eufs_msgs | 2.0.0 |
| evaluator | 0.0.0 |
| fs_msgs | 0.1.1 |
| inspection | 0.0.0 |
| invictasim | 0.0.0 |
| launcher | 0.0.0 |
| mocker_node | 0.0.0 |
| motion_lib | 0.0.0 |
| pacsim | 0.0.0 |
| pacsim_keys | 0.0.0 |
| perception | 0.0.0 |
| perception_sensor_lib | 0.0.0 |
| planning | 0.0.0 |
| power_log | 0.0.0 |
| slam | 0.0.0 |
| supervisor | 0.0.0 |
| vehicle_dynamics_node | 0.0.0 |
| velocity_estimation | 0.0.0 |
README
FS-FEUP Autonomous Systems
This repository holds most of the data and all the code on the project for Formula Student Autonomous Systems Department. The project being developed is an autonomous driving system.
Starting to Develop
Before starting, check out:
- Project Rules in Notion
- Environment Setup
- Startup Guide
Contributing
To contribute and develop the autonomous systems code, check this guide to compile and commit your work.
Documentation
- Documentation Home
- ROS Communication Table - table with all the topics and message types used in all environments
- Doxygen Code Documentation
CONTRIBUTING
Contributing
This guide aims to clarify the necessary steps for creating code that will result in an accepting pull request following the project’s norms.
You work with your shell always in the root directory. In it, you can find mutiple scripts that will help you on the upcoming tasks. You need to follow the tutorials listed before this one on the Startup Guide.
Compilation
To compile the AS System, start by installing the dependencies:
./dependencies_install.sh
Then you will need to install the dependencies specific to the submodule you want.
After installing the dependencies you need, compile the AS project:
# To compile specific packages
colcon build --packages-select [your_package_name] --cmake-args -G Ninja
# Shortcut to compile all subsystems
./compile.sh
Important: Before running any AS package, you must source the environment:
source install/setup.bash
Natural Workflow
- Set up development environment.
- Run dependencies_install.sh script to make sure everything is installed:
- Pull updates
git pull
- Checkout new branch.
- for new branches:
git checkout -b <branch_name> # for new branhces
or
git branch <branch_name>
git checkout <branch_name>
- for existing branches:
git checkout <branch_name>
- Program
- Compile (see guide at the end of this file)
colcon build
you can and should use bear to update the compile_commands.json file for Sonarlint to be kept up to date, especially if you have added new files
bear -- colcon build
- Source the packages:
source install/setup.bash
- Run code (
ros-argsare optional) (see guide at the end of this file)
ros2 run [package_name] [node_name] (--ros-args -p [param_name]:=[param_value])
Alternatively, packages contain launch files, which can be used for running multiple nodes at a time or running a node with preset parameters:
ros2 launch [package_name] [launch_file_name]
- Run tests
colcon test --packages-select [your package and others necessary] [--event-handler=console_direct+] #last part for verbose
- Finally push changes to repository
git add -A
git commit -m "feat(<package>): <description>"
git push
Note that the commit message should more or less follow the Conventional Commits norms
- Create a Pull Request to the main branch, assigning yourself and selecting reviewers
- Verify successfull workflows
Notes on Nodes, Packages, Compiling, Executing and Dependencies
Compile and Run Extended
If you only wish to compile specific packages, you can use the following command:
colcon build --packages-select [your package and others necessary]
Alternatively, to compile everything, execute:
colcon build
If the compilation is successful, you will see a success message.
File truncated at 100 lines see the full file