Releases: fs-feup/autonomous-systems
v1.2.0
Fifth Release of the FSFEUP 01 System
The fifth release represents an advancement in the FSFEUP 01 System's development, marking a special achievement: the successful execution of acceleration and zigzag tracks with a real vehicle on the ground. This demonstrates the system's ability to integrate its advanced autonomous driving capabilities into real-world scenarios, highlighting significant progress toward practical deployment. The vehicle's physical model has been fully integrated, enhancing the system's real-world adaptability and precision.
Key highlights of this release include:
- Real-World Testing Milestone: The system has now completed both acceleration and zigzag maneuvers with a real vehicle, demonstrating seamless interaction with real-world dynamics.
- Vehicle Model Integration: The vehicle's physical model has been embedded into the system, ensuring improved handling, response, and system realism during testing.
- Enhanced Path Planning: New fixes and optimizations have improved path planning reliability and responsiveness under diverse driving scenarios.
- Dashboard Improvements: UI/UX enhancements have been made to ensure better usability and system monitoring during tests and operations.
- Control System Updates: Fixed key issues related to steering clamp behavior, ensuring more stable and reliable vehicle control under varying conditions.
- Mono-repo Transition: The system's codebase has been transitioned to a mono-repo structure for streamlined development, testing, and future enhancements.
- On-Ground Evaluation Metrics: New metrics have been introduced to evaluate vehicle performance during real-world testing and refine system analysis.
This fifth release builds on prior achievements while incorporating key improvements and optimizations that expand the FSFEUP 01 System’s capabilities. With these updates and milestones, the system is now better equipped for deployment in increasingly complex and real-world driving scenarios, providing enhanced stability, efficiency, and performance.
What's Changed
- feat: added onground evaluation metrics FSF-4951 by @BrunoDias201907828 in #351
- feat: started mono-repo by @Davide64-dev in #355
- FSF-6493 | Feat/solve as by @Davide64-dev in #362
- fix: removed sudo from pip commands by @BrunoDias201907828 in #361
- FSF-6559 | Feat/more planning fixes by @Davide64-dev in #364
- FSF-6467 | Dashboard improvements by @GoncaloRibeiro1 in #366
- FSF-4929 | launch files + fixed control by @yvesb04 in #365
- fix(control): solved steering clamp by @Davide64-dev in #372
Full Changelog: v1.1.0...v1.2.0
What's Changed
- feat: added onground evaluation metrics FSF-4951 by @BrunoDias201907828 in #351
- feat: started mono-repo by @Davide64-dev in #355
- FSF-6493 | Feat/solve as by @Davide64-dev in #362
- fix: removed sudo from pip commands by @BrunoDias201907828 in #361
- FSF-6559 | Feat/more planning fixes by @Davide64-dev in #364
- FSF-6467 | Dashboard improvements by @GoncaloRibeiro1 in #366
- FSF-4929 | launch files + fixed control by @yvesb04 in #365
- fix(control): solved steering clamp by @Davide64-dev in #372
New Contributors
- @GoncaloRibeiro1 made their first contribution in #366
Full Changelog: v1.1.0...v1.2.0
v1.1.0
Fourth Release of the FSFEUP 01 System
This release marks a significant milestone. It features a fully functional autonomous driving pipeline capable of completing a full lap in simulation, utilizing the LiDAR-based perception pipeline. The first iteration of perception, state estimation, and path planning tests with real-world data has also been implemented.
Key updates include:
- Inspection Script Improvements: Debugging capabilities for real-life testing have been improved.
- Perception Improvements: New heuristics, based on Z-Score analysis and minimum height filtering, have been introduced for more robust object detection.
- Path Planning Enhancements: A memory feature for storing previous iterations has been added, and there is now an option to activate or deactivate outlier removal during planning.
- Control System Updates: The control system can now handle tracks with variable velocity, adapting to different conditions.
- State Estimation: The Extended Kalman Filter (EKF) now boasts improved execution time for faster and more efficient processing.
What's Changed
- FSF-4434 | feat(perception): Standard Devitation and Z-Score Heuristics and FoV trimming update by @Davide64-dev in #335
- FSF-4065 ref: uniformized READMEs structure by @marhcouto in #336
- FSF-4430 tracks with variable speed, tuned pacsim by @yvesb04 in #337
- FSF-4427 feat(planning): optional outlier removal and path smoothing by @lourenco31 in #338
- Se refactor by @Davide64-dev in #345
- Eval flag FSF-4518 by @BrunoDias201907828 in #344
- FSF-4515 Planning evaluation implementation by @lourenco31 in #340
- FSF-4522 Evaluator documentation by @lourenco31 in #346
- FSF-4517 | test(evaluator): created tests for all data association and format functions by @Davide64-dev in #348
- Testing setup by @Davide64-dev in #341
- FSF-4897 feat(ekf_state_est): new state estimation documentation by @lourenco31 in #349
- FSF-4437 Bayesian optimization for Cone Coloring by @lourenco31 in #347
- Autocross by @Davide64-dev in #353
- FSF-4942 | 1/5 of trackdrive by @lourenco31 in #354
Full Changelog: 1.0.0...v1.1.0
v1.0.0
Third release of the FSFEUP 01 system. Features complete and functional autonomous pipeline with full lap in simulation:
- Advancements in the evaluation pipeline, with generation of reports and upload to the cloud
- Path planning deep code refactoring and tuning
- EKF implementation of new data association method using mahalanobis distance (takes covariance into account)
- Control further tuning and smooth lookahead point calculation
- Perception tuning with real data
The pipeline is capable of going around a track multiple times. Improvements need to be made in reliability of state estimation, which renders the pipeline unstable and still not too functional without using simulated perception
What's Changed
- FSF-3621 FSF-3963 Control Refactoring + documentation by @yvesb04 in #312
- FSF-4037: Refactor all adapters to use child nodes instead of adapters by @yvesb04 in #318
- FSF-3367 | fix(perception): Perception Tune + launch file refactoring + Perception fix on evaluator node by @Davide64-dev in #301
- FSF-3925 feat: ci-based analysis first try by @marhcouto in #315
- FSF-3959 feat(mocker_node): path visualization in mocker_node by @andrelds11 in #317
- FSF-3932 | fix: solved control metrics calculation + execution time by @Davide64-dev in #319
- FSF-3935 Pacsim update by @marhcouto in #320
- Dashboard power log FSF-4264 by @BrunoDias201907828 in #326
- FSF-4251 & FSF-4319 | Perception Testing by @Davide64-dev in #325
- FSF-3922 fix(planning): refactored cone coloring, outlier removal and smoothin… by @lourenco31 in #316
- FSF-3928 fix(planning): updated planning diagrams by @lourenco31 in #322
- FSF-3964: Testing_control by @yvesb04 in #324
- FSF-4265 | Fix-feat/evaluator by @Davide64-dev in #327
- Fix/perception tests by @Davide64-dev in #329
- FSF-4429 | System testing by @marhcouto in #333
Full Changelog: v0.3.0...1.0.0
v0.3.0
Second release of the FSFEUP 01 system. Features complete and functional autonomous pipeline:
- EKF refactored and bug free
- Perception improved with stronger cone validation and grid Ransac for ground removal
- Path planning with path coloring, map spline matching, delaunay and smoothing
- Pure Pursuit controller added
- Evaluation tools developed
- EUFS and Pacsim simulators set-up
- Robust code evaluation tools set-up
The pipeline has been shown to work overall, being able to conduct the vehicle in a track. Even so, it is still buggy and many improvement can be made.
What's Changed
- FSF-2206 Fixed static analysis and workflows by @marhcouto in #258
- Docs(Simulation and Infrastructure): added foxglove tutorial FSF-2167 by @BrunoDias201907828 in #259
- fix(LongControl): Fixing PID Unit Test erros by @PedromLBarros in #261
- FSF-2542 FSF-2143 FSF-2163 inspection script by @lourenco31 in #257
- FSF-2752 FSF-2770 Cylinder Validation by @Davide64-dev in #260
- FSF-2598 - Ros 2 can by @PedroRomao3 in #263
- ref(docker-dev): updated docker-dev container files to work on any pc by @marhcouto in #270
- FSF-2975: Python linters by @marhcouto in #272
- FSF-2769-Ekf slam doc by @PedroRomao3 in #267
- FSF-2925 build and test workflow by @marhcouto in #271
- FSF-2597 - Ros node by @PedromLBarros in #262
- FSF-2949 Linter change - sonarcloud by @marhcouto in #275
- FSF-2956 Feat/cone heuristic by @Davide64-dev in #273
- FSF-3213 feat(ros_can): Alive msg by @PedromLBarros in #277
- FSF-2936 feat(mocker_node): node created by @lourenco31 in #268
- FSF-2929 | feat(sim): Created evaluator node with some subscriptions by @Davide64-dev in #265
- FSF-3540 Inspection fix by @lourenco31 in #281
- pc_setup_computer FSF-2924 by @BrunoDias201907828 in #280
- FSF-2926 PacSim tutorial and submodule by @marhcouto in #276
- FSF-2948 Feature/execution time by @Davide64-dev in #269
- Refactor code EVERYWHEREEE by @yvesb04 in #284
- FSF-2928 updated full diagram to include EUFS topics by @lourenco31 in #283
- Refact-long-control by @yvesb04 in #285
- FSF-3352 | Feat/sync inspection by @Davide64-dev in #282
- FSF-3618 refact(control-node): Cache Message Filter by @yvesb04 in #289
- FSF-3583 feat: created launch files package by @marhcouto in #290
- FSF-2970 FSF-3414 - major state estimation refactors by @marhcouto in #287
- FSF-3353 FSF-3354 feat(planning): cone coloring by @lourenco31 in #279
- FSF-2941 feat(evaluator): planning evaluation metrics by @andrelds11 in #292
- FSF-3722 | feat(sim_infr): created adapters for other simulators by @Davide64-dev in #295
- FSF-2938 FSF-3620 State Estimation adapters and evaluation by @marhcouto in #293
- FSF-3814 Mocker node tracks by @andrelds11 in #296
- FSF-3720 beginning of planing adapters by @lourenco31 in #294
- FSF-3411 Power test by @marhcouto in #297
- FSF-3093 & FSF-3367 | feat(perception): added center calculation by @Davide64-dev in #286
- Update installing_wsl.md by @PedromLBarros in #300
- Se simulation testing by @marhcouto in #298
- Create env.example by @PedromLBarros in #303
- Iron trial by @marhcouto in #302
- FSF-3628 Planning fixes after subsystem meeting by @lourenco31 in #304
- FSF-2945 | feat(perception): first iteration of grid ransac finished by @Davide64-dev in #288
- FSF-3912 Update launchfiles; Planning eufs adapter publisher visualization msg by @lourenco31 in #306
- FSF-3585 feat(control):PupePursuit by @PedromLBarros in #291
- FSF-3912 Full system EUFS test by @marhcouto in #308
- FSF-3623 | doc(perception): update documentation by @Davide64-dev in #309
- FSF-3622 State est docs by @marhcouto in #310
- FSF-2943 docs(evaluation): documented evaluator node and other small details by @marhcouto in #311
- FSF-3356 feat(docs): planning documentation updates phase2 by @andrelds11 in #313
- Delaunay distance threshold by @andrelds11 in #307
- FSF-3621 control doc by @yvesb04 in #314
Full Changelog: v0.2.0...v0.3.0
v0.2.0
First release of the FSFEUP 01 system. Big developments, but the release does not contain a fully functional system yet. Major differences:
- EKF improved with sparse matrixes and Eigen multi-thread
- LiDAR Perception complete untuned pipeline
- Path Planning bugs corrections and smoothing applied
- PI-D velocity controller implementation untested
- KISS ICP set up
- Adapter refactor
What's Changed
- Create ros2_docker_vscode_coding_environment.md by @yvesb04 in #233
- Setup fixes by @marhcouto in #239
- feat(perception): Perception node created by @Davide64-dev in #236
- feat (longitudinal control): added new node by @lourenco31 in #237
- Update docs by @marhcouto in #245
- feat(lateral_control): package and node created by @PedromLBarros in #240
- Planning node refactoring/Adding velocity to path points by @lourenco31 in #243
- Added Kiss-ICP and tutorial by @BrunoDias201907828 in #241
- Feature/ground removal by @Davide64-dev in #242
- docs: added simulator tutorial by @marhcouto in #244
- Feature/rs driver by @Davide64-dev in #247
- Feature/clustering by @Davide64-dev in #249
- fix(loc_map): solved Eigen dependencies by @Davide64-dev in #246
- Feature/cone differentiation by @Davide64-dev in #250
- docs(planning):Comments about Delaunay triangulaiton by @PedromLBarros in #254
- Adapters Refactor by @andrelds11 in #252
- Loc map refactor by @PedroRomao3 in #256
- [ FSF-238 ] Pid longi by @PedromLBarros in #253
- ref(planning): refactor outlier removal by @lourenco31 in #248
New Contributors
- @yvesb04 made their first contribution in #233
- @lourenco31 made their first contribution in #237
- @PedromLBarros made their first contribution in #240
- @BrunoDias201907828 made their first contribution in #241
Full Changelog: v0.1.1...v0.2
End of System 0 (22-23 FSFEUP Driverless)
Final release of the first system (System 0). This system contained a full implementation of an AD system. It was however very faulty. It used:
- Camera based perception with ZED2 stereo camera and YOLOv5m6
- EKF SLAM with odometry based localisation
- Delaunay Triangulations middle-path planning
- PID or MPC based control
- EUFS SIM and CAN control
The system competed in FSUK-AI 2023, having managed to complete all inspections, dynamic and static. Despite not having competed in any dynamic event and a mediocre performance overall, the team won the first place for te FS-AI Business Plan presentation.
System developed by the Formula Student FEUP team's Driverless department of 2022-2023:
- @diogohalmeida - Perception
- @TsarkFC - Department Leader
- @andrelds11 - Planning
- @JoaoAMarinho - Control
- @marhcouto - Localisation and Mapping
- @Leonor2004 - Planning
- @vjardimb - Control
- @tomascadete - Perception
- @PedroRomao3 - Recruit / Localisation and Mapping
- @Davide64-dev - Recruit / Perception
- @beamiranda07 - Recruit
System Integration
- First release containing the all the different components integrated
Sprint #3
Sprint #2
First release, containing the code that resulted from the end of the second sprint
- Contains initial repository structure
- Defined automation workflows (testing, code verifications)
Path planning
finding the middle path of a race trackControl
communicating withEUFS
simulator