![]() |
velocity_estimation package from autonomous-systems repocar_keys common_lib control custom_interfaces data_infrastructure ekf_state_est eufs_msgs evaluator fs_msgs inspection launcher mocker_node motion_lib pacsim pacsim_keys perception perception_sensor_lib planning power_log slam supervisor vehicle_dynamics_node velocity_estimation |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | TODO: License declaration |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | 🏎️ Formula Student FEUP Autonomous Systems Department Repository |
Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-08 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
Authors
Velocity Estimation Package
Description
This package is responsible for estimating the velocity of the vehicle based on measurements by the sensors. The results of this estimation are meant to be used for SLAM and Control. The package has enough modularity that using different estimators and running it on different environments only requires changing/creating launch files.
Directory Structure
-
include: declarations of all classes and functions, implementations of factories
- include/adapters/parameters.hpp: struct of parameters to use when launching the node
- include/adapters/estimator_factory.hpp: factory to generate estimator based on parameters
- include/adapters/parameters_factory.hpp: load parameters from launch files, and create adapter
- launch: launch configuration files
-
src: implementations of classes and functions
- adapters: adapters for each running environment
- estimators: implementation of each velocity estimator
- node: implementation of VENode
Launch Configurations
- pacsim.launch.py: Launch file for the PacSim simulator
- vehicle.launch.py: Launch file for the vehicle
How to Run
Install Dependencies
./dependencies_install.sh
Compiling
colcon build --packages-up-to velocity_estimation
Running
Use a launch file:
source ./install/setup.bash # If in a new terminal
ros2 launch velocity_estimation pacsim.launch.py
or run directly:
source ./install/setup.bash # If in a new terminal
ros2 run velocity_estimation velocity_estimation
Testing
colcon test --packages-select velocity_estimation # use event-handler=console_direct+ for imediate output
To check test results:
colcon test-result --all --verbose
Estimators
EKF
This estimator is an extension of the Kalman Filter for non-linear models. It’s car model is the kinematic bicycle model, which assumes no-slip in the tires, with lateral dynamics included. The sensors used are an IMU, wheel speed sensors, a steering angle sensor and a motor rpm sensor.
Structure
This UML diagram shows how the classes that compose this package are related to each other. The main takeaway is that there is a main class called VENode, a ROS2 node, which depends on a velocity estimator to do the actual velocity estimation.
Design
Important design decisions:
- The class VENode depends on an abstract estimator to make it easier to implement new estimation methods.
- The parameters in the launch files determine the adapter and the estimator to be used, through corresponding and are created in corresponding factories.
Important Dependencies
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
custom_interfaces | |
eufs_msgs | |
fs_msgs | |
common_lib | |
message_filters | |
pacsim | |
std_srvs | |
visualization_msgs | |
motion_lib | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged velocity_estimation at Robotics Stack Exchange
![]() |
velocity_estimation package from autonomous-systems repocar_keys common_lib control custom_interfaces data_infrastructure ekf_state_est eufs_msgs evaluator fs_msgs inspection launcher mocker_node motion_lib pacsim pacsim_keys perception perception_sensor_lib planning power_log slam supervisor vehicle_dynamics_node velocity_estimation |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | TODO: License declaration |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | 🏎️ Formula Student FEUP Autonomous Systems Department Repository |
Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-08 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
Authors
Velocity Estimation Package
Description
This package is responsible for estimating the velocity of the vehicle based on measurements by the sensors. The results of this estimation are meant to be used for SLAM and Control. The package has enough modularity that using different estimators and running it on different environments only requires changing/creating launch files.
Directory Structure
-
include: declarations of all classes and functions, implementations of factories
- include/adapters/parameters.hpp: struct of parameters to use when launching the node
- include/adapters/estimator_factory.hpp: factory to generate estimator based on parameters
- include/adapters/parameters_factory.hpp: load parameters from launch files, and create adapter
- launch: launch configuration files
-
src: implementations of classes and functions
- adapters: adapters for each running environment
- estimators: implementation of each velocity estimator
- node: implementation of VENode
Launch Configurations
- pacsim.launch.py: Launch file for the PacSim simulator
- vehicle.launch.py: Launch file for the vehicle
How to Run
Install Dependencies
./dependencies_install.sh
Compiling
colcon build --packages-up-to velocity_estimation
Running
Use a launch file:
source ./install/setup.bash # If in a new terminal
ros2 launch velocity_estimation pacsim.launch.py
or run directly:
source ./install/setup.bash # If in a new terminal
ros2 run velocity_estimation velocity_estimation
Testing
colcon test --packages-select velocity_estimation # use event-handler=console_direct+ for imediate output
To check test results:
colcon test-result --all --verbose
Estimators
EKF
This estimator is an extension of the Kalman Filter for non-linear models. It’s car model is the kinematic bicycle model, which assumes no-slip in the tires, with lateral dynamics included. The sensors used are an IMU, wheel speed sensors, a steering angle sensor and a motor rpm sensor.
Structure
This UML diagram shows how the classes that compose this package are related to each other. The main takeaway is that there is a main class called VENode, a ROS2 node, which depends on a velocity estimator to do the actual velocity estimation.
Design
Important design decisions:
- The class VENode depends on an abstract estimator to make it easier to implement new estimation methods.
- The parameters in the launch files determine the adapter and the estimator to be used, through corresponding and are created in corresponding factories.
Important Dependencies
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
custom_interfaces | |
eufs_msgs | |
fs_msgs | |
common_lib | |
message_filters | |
pacsim | |
std_srvs | |
visualization_msgs | |
motion_lib | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged velocity_estimation at Robotics Stack Exchange
![]() |
velocity_estimation package from autonomous-systems repocar_keys common_lib control custom_interfaces data_infrastructure ekf_state_est eufs_msgs evaluator fs_msgs inspection launcher mocker_node motion_lib pacsim pacsim_keys perception perception_sensor_lib planning power_log slam supervisor vehicle_dynamics_node velocity_estimation |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | TODO: License declaration |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | 🏎️ Formula Student FEUP Autonomous Systems Department Repository |
Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-08 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
Authors
Velocity Estimation Package
Description
This package is responsible for estimating the velocity of the vehicle based on measurements by the sensors. The results of this estimation are meant to be used for SLAM and Control. The package has enough modularity that using different estimators and running it on different environments only requires changing/creating launch files.
Directory Structure
-
include: declarations of all classes and functions, implementations of factories
- include/adapters/parameters.hpp: struct of parameters to use when launching the node
- include/adapters/estimator_factory.hpp: factory to generate estimator based on parameters
- include/adapters/parameters_factory.hpp: load parameters from launch files, and create adapter
- launch: launch configuration files
-
src: implementations of classes and functions
- adapters: adapters for each running environment
- estimators: implementation of each velocity estimator
- node: implementation of VENode
Launch Configurations
- pacsim.launch.py: Launch file for the PacSim simulator
- vehicle.launch.py: Launch file for the vehicle
How to Run
Install Dependencies
./dependencies_install.sh
Compiling
colcon build --packages-up-to velocity_estimation
Running
Use a launch file:
source ./install/setup.bash # If in a new terminal
ros2 launch velocity_estimation pacsim.launch.py
or run directly:
source ./install/setup.bash # If in a new terminal
ros2 run velocity_estimation velocity_estimation
Testing
colcon test --packages-select velocity_estimation # use event-handler=console_direct+ for imediate output
To check test results:
colcon test-result --all --verbose
Estimators
EKF
This estimator is an extension of the Kalman Filter for non-linear models. It’s car model is the kinematic bicycle model, which assumes no-slip in the tires, with lateral dynamics included. The sensors used are an IMU, wheel speed sensors, a steering angle sensor and a motor rpm sensor.
Structure
This UML diagram shows how the classes that compose this package are related to each other. The main takeaway is that there is a main class called VENode, a ROS2 node, which depends on a velocity estimator to do the actual velocity estimation.
Design
Important design decisions:
- The class VENode depends on an abstract estimator to make it easier to implement new estimation methods.
- The parameters in the launch files determine the adapter and the estimator to be used, through corresponding and are created in corresponding factories.
Important Dependencies
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
custom_interfaces | |
eufs_msgs | |
fs_msgs | |
common_lib | |
message_filters | |
pacsim | |
std_srvs | |
visualization_msgs | |
motion_lib | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged velocity_estimation at Robotics Stack Exchange
![]() |
velocity_estimation package from autonomous-systems repocar_keys common_lib control custom_interfaces data_infrastructure ekf_state_est eufs_msgs evaluator fs_msgs inspection launcher mocker_node motion_lib pacsim pacsim_keys perception perception_sensor_lib planning power_log slam supervisor vehicle_dynamics_node velocity_estimation |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | TODO: License declaration |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | 🏎️ Formula Student FEUP Autonomous Systems Department Repository |
Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-08 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
Authors
Velocity Estimation Package
Description
This package is responsible for estimating the velocity of the vehicle based on measurements by the sensors. The results of this estimation are meant to be used for SLAM and Control. The package has enough modularity that using different estimators and running it on different environments only requires changing/creating launch files.
Directory Structure
-
include: declarations of all classes and functions, implementations of factories
- include/adapters/parameters.hpp: struct of parameters to use when launching the node
- include/adapters/estimator_factory.hpp: factory to generate estimator based on parameters
- include/adapters/parameters_factory.hpp: load parameters from launch files, and create adapter
- launch: launch configuration files
-
src: implementations of classes and functions
- adapters: adapters for each running environment
- estimators: implementation of each velocity estimator
- node: implementation of VENode
Launch Configurations
- pacsim.launch.py: Launch file for the PacSim simulator
- vehicle.launch.py: Launch file for the vehicle
How to Run
Install Dependencies
./dependencies_install.sh
Compiling
colcon build --packages-up-to velocity_estimation
Running
Use a launch file:
source ./install/setup.bash # If in a new terminal
ros2 launch velocity_estimation pacsim.launch.py
or run directly:
source ./install/setup.bash # If in a new terminal
ros2 run velocity_estimation velocity_estimation
Testing
colcon test --packages-select velocity_estimation # use event-handler=console_direct+ for imediate output
To check test results:
colcon test-result --all --verbose
Estimators
EKF
This estimator is an extension of the Kalman Filter for non-linear models. It’s car model is the kinematic bicycle model, which assumes no-slip in the tires, with lateral dynamics included. The sensors used are an IMU, wheel speed sensors, a steering angle sensor and a motor rpm sensor.
Structure
This UML diagram shows how the classes that compose this package are related to each other. The main takeaway is that there is a main class called VENode, a ROS2 node, which depends on a velocity estimator to do the actual velocity estimation.
Design
Important design decisions:
- The class VENode depends on an abstract estimator to make it easier to implement new estimation methods.
- The parameters in the launch files determine the adapter and the estimator to be used, through corresponding and are created in corresponding factories.
Important Dependencies
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
custom_interfaces | |
eufs_msgs | |
fs_msgs | |
common_lib | |
message_filters | |
pacsim | |
std_srvs | |
visualization_msgs | |
motion_lib | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged velocity_estimation at Robotics Stack Exchange
![]() |
velocity_estimation package from autonomous-systems repocar_keys common_lib control custom_interfaces data_infrastructure ekf_state_est eufs_msgs evaluator fs_msgs inspection launcher mocker_node motion_lib pacsim pacsim_keys perception perception_sensor_lib planning power_log slam supervisor vehicle_dynamics_node velocity_estimation |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | TODO: License declaration |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | 🏎️ Formula Student FEUP Autonomous Systems Department Repository |
Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-08 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
Authors
Velocity Estimation Package
Description
This package is responsible for estimating the velocity of the vehicle based on measurements by the sensors. The results of this estimation are meant to be used for SLAM and Control. The package has enough modularity that using different estimators and running it on different environments only requires changing/creating launch files.
Directory Structure
-
include: declarations of all classes and functions, implementations of factories
- include/adapters/parameters.hpp: struct of parameters to use when launching the node
- include/adapters/estimator_factory.hpp: factory to generate estimator based on parameters
- include/adapters/parameters_factory.hpp: load parameters from launch files, and create adapter
- launch: launch configuration files
-
src: implementations of classes and functions
- adapters: adapters for each running environment
- estimators: implementation of each velocity estimator
- node: implementation of VENode
Launch Configurations
- pacsim.launch.py: Launch file for the PacSim simulator
- vehicle.launch.py: Launch file for the vehicle
How to Run
Install Dependencies
./dependencies_install.sh
Compiling
colcon build --packages-up-to velocity_estimation
Running
Use a launch file:
source ./install/setup.bash # If in a new terminal
ros2 launch velocity_estimation pacsim.launch.py
or run directly:
source ./install/setup.bash # If in a new terminal
ros2 run velocity_estimation velocity_estimation
Testing
colcon test --packages-select velocity_estimation # use event-handler=console_direct+ for imediate output
To check test results:
colcon test-result --all --verbose
Estimators
EKF
This estimator is an extension of the Kalman Filter for non-linear models. It’s car model is the kinematic bicycle model, which assumes no-slip in the tires, with lateral dynamics included. The sensors used are an IMU, wheel speed sensors, a steering angle sensor and a motor rpm sensor.
Structure
This UML diagram shows how the classes that compose this package are related to each other. The main takeaway is that there is a main class called VENode, a ROS2 node, which depends on a velocity estimator to do the actual velocity estimation.
Design
Important design decisions:
- The class VENode depends on an abstract estimator to make it easier to implement new estimation methods.
- The parameters in the launch files determine the adapter and the estimator to be used, through corresponding and are created in corresponding factories.
Important Dependencies
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
custom_interfaces | |
eufs_msgs | |
fs_msgs | |
common_lib | |
message_filters | |
pacsim | |
std_srvs | |
visualization_msgs | |
motion_lib | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged velocity_estimation at Robotics Stack Exchange
![]() |
velocity_estimation package from autonomous-systems repocar_keys common_lib control custom_interfaces data_infrastructure ekf_state_est eufs_msgs evaluator fs_msgs inspection launcher mocker_node motion_lib pacsim pacsim_keys perception perception_sensor_lib planning power_log slam supervisor vehicle_dynamics_node velocity_estimation |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | TODO: License declaration |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | 🏎️ Formula Student FEUP Autonomous Systems Department Repository |
Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-08 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
Authors
Velocity Estimation Package
Description
This package is responsible for estimating the velocity of the vehicle based on measurements by the sensors. The results of this estimation are meant to be used for SLAM and Control. The package has enough modularity that using different estimators and running it on different environments only requires changing/creating launch files.
Directory Structure
-
include: declarations of all classes and functions, implementations of factories
- include/adapters/parameters.hpp: struct of parameters to use when launching the node
- include/adapters/estimator_factory.hpp: factory to generate estimator based on parameters
- include/adapters/parameters_factory.hpp: load parameters from launch files, and create adapter
- launch: launch configuration files
-
src: implementations of classes and functions
- adapters: adapters for each running environment
- estimators: implementation of each velocity estimator
- node: implementation of VENode
Launch Configurations
- pacsim.launch.py: Launch file for the PacSim simulator
- vehicle.launch.py: Launch file for the vehicle
How to Run
Install Dependencies
./dependencies_install.sh
Compiling
colcon build --packages-up-to velocity_estimation
Running
Use a launch file:
source ./install/setup.bash # If in a new terminal
ros2 launch velocity_estimation pacsim.launch.py
or run directly:
source ./install/setup.bash # If in a new terminal
ros2 run velocity_estimation velocity_estimation
Testing
colcon test --packages-select velocity_estimation # use event-handler=console_direct+ for imediate output
To check test results:
colcon test-result --all --verbose
Estimators
EKF
This estimator is an extension of the Kalman Filter for non-linear models. It’s car model is the kinematic bicycle model, which assumes no-slip in the tires, with lateral dynamics included. The sensors used are an IMU, wheel speed sensors, a steering angle sensor and a motor rpm sensor.
Structure
This UML diagram shows how the classes that compose this package are related to each other. The main takeaway is that there is a main class called VENode, a ROS2 node, which depends on a velocity estimator to do the actual velocity estimation.
Design
Important design decisions:
- The class VENode depends on an abstract estimator to make it easier to implement new estimation methods.
- The parameters in the launch files determine the adapter and the estimator to be used, through corresponding and are created in corresponding factories.
Important Dependencies
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
custom_interfaces | |
eufs_msgs | |
fs_msgs | |
common_lib | |
message_filters | |
pacsim | |
std_srvs | |
visualization_msgs | |
motion_lib | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged velocity_estimation at Robotics Stack Exchange
![]() |
velocity_estimation package from autonomous-systems repocar_keys common_lib control custom_interfaces data_infrastructure ekf_state_est eufs_msgs evaluator fs_msgs inspection launcher mocker_node motion_lib pacsim pacsim_keys perception perception_sensor_lib planning power_log slam supervisor vehicle_dynamics_node velocity_estimation |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | TODO: License declaration |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | 🏎️ Formula Student FEUP Autonomous Systems Department Repository |
Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-08 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
Authors
Velocity Estimation Package
Description
This package is responsible for estimating the velocity of the vehicle based on measurements by the sensors. The results of this estimation are meant to be used for SLAM and Control. The package has enough modularity that using different estimators and running it on different environments only requires changing/creating launch files.
Directory Structure
-
include: declarations of all classes and functions, implementations of factories
- include/adapters/parameters.hpp: struct of parameters to use when launching the node
- include/adapters/estimator_factory.hpp: factory to generate estimator based on parameters
- include/adapters/parameters_factory.hpp: load parameters from launch files, and create adapter
- launch: launch configuration files
-
src: implementations of classes and functions
- adapters: adapters for each running environment
- estimators: implementation of each velocity estimator
- node: implementation of VENode
Launch Configurations
- pacsim.launch.py: Launch file for the PacSim simulator
- vehicle.launch.py: Launch file for the vehicle
How to Run
Install Dependencies
./dependencies_install.sh
Compiling
colcon build --packages-up-to velocity_estimation
Running
Use a launch file:
source ./install/setup.bash # If in a new terminal
ros2 launch velocity_estimation pacsim.launch.py
or run directly:
source ./install/setup.bash # If in a new terminal
ros2 run velocity_estimation velocity_estimation
Testing
colcon test --packages-select velocity_estimation # use event-handler=console_direct+ for imediate output
To check test results:
colcon test-result --all --verbose
Estimators
EKF
This estimator is an extension of the Kalman Filter for non-linear models. It’s car model is the kinematic bicycle model, which assumes no-slip in the tires, with lateral dynamics included. The sensors used are an IMU, wheel speed sensors, a steering angle sensor and a motor rpm sensor.
Structure
This UML diagram shows how the classes that compose this package are related to each other. The main takeaway is that there is a main class called VENode, a ROS2 node, which depends on a velocity estimator to do the actual velocity estimation.
Design
Important design decisions:
- The class VENode depends on an abstract estimator to make it easier to implement new estimation methods.
- The parameters in the launch files determine the adapter and the estimator to be used, through corresponding and are created in corresponding factories.
Important Dependencies
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
custom_interfaces | |
eufs_msgs | |
fs_msgs | |
common_lib | |
message_filters | |
pacsim | |
std_srvs | |
visualization_msgs | |
motion_lib | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged velocity_estimation at Robotics Stack Exchange
![]() |
velocity_estimation package from autonomous-systems repocar_keys common_lib control custom_interfaces data_infrastructure ekf_state_est eufs_msgs evaluator fs_msgs inspection launcher mocker_node motion_lib pacsim pacsim_keys perception perception_sensor_lib planning power_log slam supervisor vehicle_dynamics_node velocity_estimation |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | TODO: License declaration |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | 🏎️ Formula Student FEUP Autonomous Systems Department Repository |
Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-08 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
Authors
Velocity Estimation Package
Description
This package is responsible for estimating the velocity of the vehicle based on measurements by the sensors. The results of this estimation are meant to be used for SLAM and Control. The package has enough modularity that using different estimators and running it on different environments only requires changing/creating launch files.
Directory Structure
-
include: declarations of all classes and functions, implementations of factories
- include/adapters/parameters.hpp: struct of parameters to use when launching the node
- include/adapters/estimator_factory.hpp: factory to generate estimator based on parameters
- include/adapters/parameters_factory.hpp: load parameters from launch files, and create adapter
- launch: launch configuration files
-
src: implementations of classes and functions
- adapters: adapters for each running environment
- estimators: implementation of each velocity estimator
- node: implementation of VENode
Launch Configurations
- pacsim.launch.py: Launch file for the PacSim simulator
- vehicle.launch.py: Launch file for the vehicle
How to Run
Install Dependencies
./dependencies_install.sh
Compiling
colcon build --packages-up-to velocity_estimation
Running
Use a launch file:
source ./install/setup.bash # If in a new terminal
ros2 launch velocity_estimation pacsim.launch.py
or run directly:
source ./install/setup.bash # If in a new terminal
ros2 run velocity_estimation velocity_estimation
Testing
colcon test --packages-select velocity_estimation # use event-handler=console_direct+ for imediate output
To check test results:
colcon test-result --all --verbose
Estimators
EKF
This estimator is an extension of the Kalman Filter for non-linear models. It’s car model is the kinematic bicycle model, which assumes no-slip in the tires, with lateral dynamics included. The sensors used are an IMU, wheel speed sensors, a steering angle sensor and a motor rpm sensor.
Structure
This UML diagram shows how the classes that compose this package are related to each other. The main takeaway is that there is a main class called VENode, a ROS2 node, which depends on a velocity estimator to do the actual velocity estimation.
Design
Important design decisions:
- The class VENode depends on an abstract estimator to make it easier to implement new estimation methods.
- The parameters in the launch files determine the adapter and the estimator to be used, through corresponding and are created in corresponding factories.
Important Dependencies
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
custom_interfaces | |
eufs_msgs | |
fs_msgs | |
common_lib | |
message_filters | |
pacsim | |
std_srvs | |
visualization_msgs | |
motion_lib | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged velocity_estimation at Robotics Stack Exchange
![]() |
velocity_estimation package from autonomous-systems repocar_keys common_lib control custom_interfaces data_infrastructure ekf_state_est eufs_msgs evaluator fs_msgs inspection launcher mocker_node motion_lib pacsim pacsim_keys perception perception_sensor_lib planning power_log slam supervisor vehicle_dynamics_node velocity_estimation |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.0.0 |
License | TODO: License declaration |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | 🏎️ Formula Student FEUP Autonomous Systems Department Repository |
Checkout URI | https://github.com/fs-feup/autonomous-systems.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-10-08 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
Authors
Velocity Estimation Package
Description
This package is responsible for estimating the velocity of the vehicle based on measurements by the sensors. The results of this estimation are meant to be used for SLAM and Control. The package has enough modularity that using different estimators and running it on different environments only requires changing/creating launch files.
Directory Structure
-
include: declarations of all classes and functions, implementations of factories
- include/adapters/parameters.hpp: struct of parameters to use when launching the node
- include/adapters/estimator_factory.hpp: factory to generate estimator based on parameters
- include/adapters/parameters_factory.hpp: load parameters from launch files, and create adapter
- launch: launch configuration files
-
src: implementations of classes and functions
- adapters: adapters for each running environment
- estimators: implementation of each velocity estimator
- node: implementation of VENode
Launch Configurations
- pacsim.launch.py: Launch file for the PacSim simulator
- vehicle.launch.py: Launch file for the vehicle
How to Run
Install Dependencies
./dependencies_install.sh
Compiling
colcon build --packages-up-to velocity_estimation
Running
Use a launch file:
source ./install/setup.bash # If in a new terminal
ros2 launch velocity_estimation pacsim.launch.py
or run directly:
source ./install/setup.bash # If in a new terminal
ros2 run velocity_estimation velocity_estimation
Testing
colcon test --packages-select velocity_estimation # use event-handler=console_direct+ for imediate output
To check test results:
colcon test-result --all --verbose
Estimators
EKF
This estimator is an extension of the Kalman Filter for non-linear models. It’s car model is the kinematic bicycle model, which assumes no-slip in the tires, with lateral dynamics included. The sensors used are an IMU, wheel speed sensors, a steering angle sensor and a motor rpm sensor.
Structure
This UML diagram shows how the classes that compose this package are related to each other. The main takeaway is that there is a main class called VENode, a ROS2 node, which depends on a velocity estimator to do the actual velocity estimation.
Design
Important design decisions:
- The class VENode depends on an abstract estimator to make it easier to implement new estimation methods.
- The parameters in the launch files determine the adapter and the estimator to be used, through corresponding and are created in corresponding factories.
Important Dependencies
Package Dependencies
Deps | Name |
---|---|
ament_cmake | |
custom_interfaces | |
eufs_msgs | |
fs_msgs | |
common_lib | |
message_filters | |
pacsim | |
std_srvs | |
visualization_msgs | |
motion_lib | |
ament_lint_auto | |
ament_lint_common |