Skip to content

Update RigidBodySystem and GUI with external force handling and gravity features - #98

Merged
SaltyJoss merged 114 commits into
Devfrom
dsfe_core_system_physics_refactor_and_cleanup
Aug 1, 2026
Merged

Update RigidBodySystem and GUI with external force handling and gravity features#98
SaltyJoss merged 114 commits into
Devfrom
dsfe_core_system_physics_refactor_and_cleanup

Conversation

@SaltyJoss

Copy link
Copy Markdown
Owner

This pull request makes significant structural and naming improvements to the DSFE_Core codebase, focusing on modernising the CMake build system, refactoring the DSL/interpreter subsystem, and updating telemetry and analysis interfaces for greater consistency and clarity. The most important changes are grouped below:

Build System Modernization:

  • Added tinyxml2 as a dependency using CMake's FetchContent and integrated its source directly into the DSFE_Core build, ensuring no external subproject or tests are included.
  • Updated the pxmlib dependency to version v1.0.2 in the top-level CMakeLists.txt.

Subsystem Refactoring and Renaming:

  • Renamed all Interpreter-related files and namespaces to DSL for improved clarity and future extensibility. This includes files such as Command.h, CommandContext.h, and all command implementations, as well as updating all corresponding includes and namespace usages throughout the codebase. [1] [2] [3] [4] [5] [6] [7] [8] [9]
  • Updated the source file organization in CMakeLists.txt to group sources by functional subsystem (SYSTEMS_SRC, LOADING_SRC, PHYSICS_SRC, etc.), and moved DSL/interpreter sources under the src/DSL/ directory. [1] [2]

API and Interface Updates:

  • Standardised command result types and method signatures in all DSL command classes, replacing program_data::CmdResult with CmdResult and updating method signatures for consistency. [1] [2] [3] [4]
  • Updated the CommandContext API to use more general terminology (e.g., loadRigidBody instead of loadSingleBody/loadMultibody, stopAllVel instead of stopAllOmega, and RigidBodySystem instead of RobotSystem). [1] [2]

Telemetry and Analysis Consistency:

  • Changed telemetry and metric logging namespaces from robots to systems and updated method signatures to use RigidBodySystem instead of RobotSystem, ensuring consistency with the rest of the refactor. [1] [2] [3] [4]

Documentation and Metadata:

  • Added or updated file-level documentation headers to most header files, specifying the file name, author, and date for improved maintainability and traceability. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

These changes collectively modernise the codebase, clarify subsystem boundaries, and lay the groundwork for future extensibility and maintainability.

DICLAIMER
These changes were aided by AI, quite a lot of what I am doing at the moment is very difficult for me to learn at the same time as correcting and have found that a using it as a DEBUG tool is very helpful. That being said some snippets were derived from provided code.
Additionally, this merge is not void of issues, but allows me to move onto yet another GUI task in preparation for modelling particles and stellar bodies.
I will be revisiting DSL after this next task is complete, specifically looking at adding standard programming language concepts like operators, operations, storage of variables, variable use and assigments, methods, conditionals, and other items like that.
This is so I can actually design REAL modular scripts that mimic a reduced version of what I would do in C++, making it better (not necessarily easier) for others to do the same.
During this stage I will also look into developing the appropriate DSL documentation to aid others (and myself) when writing DSL scripts.

SaltyJoss added 30 commits July 26, 2026 12:21
… naming format

 * Need to test build, but GUI requires changes first
…nalForces` method to `clearExtForces` in SimulationCore
SaltyJoss added 23 commits July 31, 2026 16:23
…e bodies and converting link names to lowercase
…es and clean up code

 * Commiting due to me taking a break for a few hours, but I wanted to make sure I can access it on my laptop
…, and `computerAccelerations_ABA` to resize qdd using a DOF-Index rather than a joint index
…te method for alignment with rest of code

 * I did some research and realised most engines use linear then angular in storage, I want to make it as easy as possible for anyone to use DSL so I refactored it.
 * Also stupid oversight on my part, it was causing bad transformations.
… constructor for consistency and updated logging format in parseSpatialMask function
…computeSpatialKinematicsAndBias function and removed logging for free joint accelerations
@SaltyJoss SaltyJoss self-assigned this Aug 1, 2026
@SaltyJoss SaltyJoss added feature New feature or request fixes fixing existing issues refactor Core Core specific changes labels Aug 1, 2026
@SaltyJoss
SaltyJoss merged commit d01d204 into Dev Aug 1, 2026
2 checks passed
@SaltyJoss
SaltyJoss deleted the dsfe_core_system_physics_refactor_and_cleanup branch August 1, 2026 11:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Core Core specific changes feature New feature or request fixes fixing existing issues refactor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant