Switch build system to bzlmod, bump all software versions for the FR3#4
Open
wernerpe wants to merge 17 commits into
Open
Switch build system to bzlmod, bump all software versions for the FR3#4wernerpe wants to merge 17 commits into
wernerpe wants to merge 17 commits into
Conversation
- Migrate from WORKSPACE to MODULE.bazel approach using module extensions - Create module extension at tools/workspace/external_repositories.bzl to load repository rules from individual files - Keep all version information in separate repository.bzl files for easy maintenance Upgrade dependencies: - Upgrade libfranka v5 to faaefaa0ff17 (latest version with logging and new API) - Upgrade libfranka-common v5 to cd38d0ec (compatible with new libfranka) - Add pinocchio v2.6.21.bcr.4 from Bazel Central Registry (required by new libfranka for dynamics algorithms) New structure: - MODULE.bazel: Clean module declarations with bazel_dep for pinocchio - tools/workspace/external_repositories.bzl: Module extension loading individual repository rules - tools/workspace/*/repository.bzl: Version information for each dependency - BCR pinocchio automatically pulls in transitive dependencies (Boost, urdfdom, etc.) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit adds comprehensive version documentation for the FR3 robot update and improves the developer experience with buildifier lint failures. Version Documentation: - Added Software Versions section to README listing Drake v1.45.0, libfranka v5 (~0.15.0) for FR3, libfranka v4 (0.9.0) for FE3, Pinocchio 2.6.21, and LCM - Added detailed comments in MODULE.bazel explaining dependencies for FR3 support - Added docstrings to libfranka repository files documenting exact versions - Updated README notes with accurate libfranka version numbers Buildifier Improvements: - Created buildifier.py wrapper script that displays helpful error messages - Updated lint.bzl to use Python wrapper instead of direct shell execution - When buildifier fails, now shows clear instructions on how to fix formatting - Makes it easier for developers to resolve lint failures quickly 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Author
|
@sammy-tri @jwnimmer-tri |
sammy-tri
reviewed
Oct 20, 2025
Collaborator
sammy-tri
left a comment
There was a problem hiding this comment.
+a:@sammy-tri I probably won't get to it immediately but I'l take ownership
Reviewable status: 0 of 23 files reviewed, all discussions resolved
wernerpe
commented
Oct 20, 2025
Author
wernerpe
left a comment
There was a problem hiding this comment.
gotcha, thanks a ton!
Reviewable status: 0 of 23 files reviewed, all discussions resolved (waiting on @sammy-tri)
- Add package.xml to define driver_models package for custom URDFs. This allows users to simply drop URDF files in the models/ folder and reference them via package://driver_models/... in directives without modifying C++ code. - Add panda_hand_frozen.urdf with welded finger joints - Add add_franka_control_with_frozen_hand.yaml directive - Update franka_driver.cc to register driver_models package via AddPackageXml - Update models/BUILD.bazel to include new model files - Fix package path in add_franka_control.yaml (drake -> drake_models) This enables using Drake's inverse dynamics with the hand mass/inertia included in the model while keeping fingers fixed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Add --disable_rate_limiting flag to allow bypassing libfranka's conservative client-side velocity/acceleration limits. When enabled, commands are sent directly to the robot without being clamped by limitRate() calls in libfranka's control loop. This is useful when: - libfranka's zero packet-loss tolerance (kTolNumberPacketsLost=0.0) causes false positive limit violations - Using external dynamics models (Drake MbP) that compute commands near but within actual robot limits - Commands get rejected due to tight velocity limit tolerances The robot firmware still enforces its own safety limits, so this remains safe while providing more flexibility. Also add .claude/* to .gitignore to exclude Claude Code metadata. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Remove wildcards from .so file patterns to be more specific about which shared library files are included. This prevents accidentally including versioned symlinks and ensures only the actual .so files are referenced. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This new control mode accepts both position and velocity commands from Drake, eliminating the phase lag from finite-differencing positions to compute velocity feedforward. Key improvements: - New ControlMode::kPositionVelocity that accepts both q and v commands - Velocity comes from Drake's analytical Bezier derivatives (no lag!) - Only differentiates velocity once to get acceleration (cleaner) - Uses diff_low_pass_freq for velocity filtering (30Hz) - Same PD + dynamics feedforward control law as before Expected benefit: Better tracking on fast trajectories by eliminating the ~30Hz low-pass filter lag in velocity feedforward. 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
401ebf3 to
c574970
Compare
Removes accidentally added position_velocity control mode. Adds command_receipt_utime_ tracking to fix command expiration logic. The previous code checked command age using message timestamps which failed with clock skew. Now tracks receipt time locally (following drake-iiwa-driver pattern). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I switched the build system and updated all of the software versions for the FR3. I am hoping this will help make using the frankas with drake more plug and play. I will be providing code on the drake side of things shortly 👍
This change is