Implement new prim exec logic using motion controllers#3760
Merged
Conversation
this is removed even thought is technically used now cause future changes will get rid of it
This was referenced Jun 4, 2026
835883c to
b5ac171
Compare
b5ac171 to
bc2f713
Compare
This reverts commit 1fe5a67.
5f96ef5 to
e7bb4a3
Compare
Andrewyx
approved these changes
Jun 10, 2026
GrayHoang
approved these changes
Jun 11, 2026
GrayHoang
left a comment
Contributor
There was a problem hiding this comment.
I'm excited to see the effects of this on the field
| return std::make_unique<TbotsProto::DirectControlPrimitive>(); | ||
| } | ||
|
|
||
| void PrimitiveExecutor::sendLinearMotionToPlotJuggler(const Vector& target_local_velocity, |
Contributor
There was a problem hiding this comment.
Should we move this to another pr? It feels out of place here.
Member
Author
There was a problem hiding this comment.
It was useful for debugging the new behaviour of the primitive executor, I feel like its useful. Perhaps will move it somewhere else later
Andrewyx
added a commit
to Andrewyx/Software
that referenced
this pull request
Jun 12, 2026
Resolve conflicts from master's UBC-Thunderbots#3760 (new prim-exec logic using motion controllers), UBC-Thunderbots#3769, and the field renames, which overlapped with this branch's own controller/prim-exec rework. Resolution: - Adopt master's UBC-Thunderbots#3760 implementation for primitive_executor, thunderloop, and the motion controllers (PositionController/OrientationController, non-templated PidController + pid_controller.cpp). Drops the branch's parallel close-PID / start_angle / stall-detection variant. - Take master's robot_constants field names (robot_trajectory_max_* ) and 2026 tuning values (trajectory speed 2.5, decel 2.0). - Take master's tbots_protobuf createAngularTrajectoryFromParams signature (uses params.start_angle()) and master's move_primitive.cpp. - Keep robot_localizer.cpp/.h as a standalone library for separate re-integration; removed the now-unused thunderloop -> robot_localizer dep. Verified building: proto translation, move_primitive, motion_control/..., robot_localizer, primitive_executor, thunderloop. Co-Authored-By: Claude Opus 4.8 <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.
Description
This PR implements using the new motion controllers to get target velocities in the primitive executor. While the responsibility of getting target velocity shifts more to the motion controllers, most of the actual logic is the same with a few additions:
There are some necessary changes in this PR that are not in prim exec:
Testing Done
New test was made to check robot movement in straight line. There are still issues with too large of acceleration.
Resolved Issues
Length Justification and Key Files to Review
Review Checklist
It is the reviewers responsibility to also make sure every item here has been covered
.hfile) should have a javadoc style comment at the start of them. For examples, see the functions defined inthunderbots/software/geom. Similarly, all classes should have an associated Javadoc comment explaining the purpose of the class.TODO(or similar) statements should either be completed or associated with a github issue