robocup-software
robocup-software copied to clipboard
ball placement with ROS2 actions
Description
Title. Supersedes #1904.
Associated Issue
Resolves #1559
Design Documents
TODO: attach that diagram kevin made.
Steps to test
Test Case 1
- Step 1
- Step 2
- Step 3
Expected result: ???
(Optional) Sub-issues (for drafts)
Note: if you find yourself breaking this PR into many smaller features, it may make sense to break up the PR into logical units based on these features.
- [x] Set up action server and client somehow
- [x] make sure gameplay is "turned off temporarily"
- [x] plan in action server
Proof of concept done. Screen recording
This does not handle many edge cases, including:
- when the ball is on the wall and must be dragged backwards
- when the pass is not successful and the receiver must go grab the ball to center it
- when our robots are in the way of proper ball placement (notice my choice to pick the play that moves them all out of the way first)
However, as a proof of concept it shows:
- ball placement is possible with our current planners
- passing may be easier with an agent model
- gameplay would definitely be better with access to the new is_dones from planners.
- (I also modified planner node to handle singular RobotIntents correctly in this PR, instead of expecting them to be sent every tick from gameplay.)
Next step is to figure out how we should change planning/gameplay to account for this new info.