Skip to content

Initial reworked behavior trees#376

Open
jmblixt3 wants to merge 44 commits intomainfrom
behavior-tree-jonathan
Open

Initial reworked behavior trees#376
jmblixt3 wants to merge 44 commits intomainfrom
behavior-tree-jonathan

Conversation

@jmblixt3
Copy link
Copy Markdown
Member

No description provided.

@jmblixt3 jmblixt3 force-pushed the behavior-tree-jonathan branch 4 times, most recently from bd5dacd to e7ca30e Compare April 13, 2025 17:24
@BergerKing333 BergerKing333 marked this pull request as ready for review April 14, 2025 16:10
@BergerKing333 BergerKing333 force-pushed the behavior-tree-jonathan branch from 7819f04 to 785bbca Compare April 14, 2025 16:14
Comment thread src/zed-isaac-sim Outdated
Comment thread src/behaviortree_executor/LICENSE Outdated
@BergerKing333 BergerKing333 force-pushed the behavior-tree-jonathan branch from af54369 to c6fb15b Compare April 18, 2025 00:40
@jmblixt3 jmblixt3 force-pushed the behavior-tree-jonathan branch 3 times, most recently from 31a1b74 to 81b33d2 Compare April 27, 2025 21:43
@jmblixt3 jmblixt3 requested a review from Isopod00 April 28, 2025 00:32
Copy link
Copy Markdown
Member

@Isopod00 Isopod00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left minor comments but otherwise looks good to me.

Comment thread src/rovr_control/rovr_control/controls.txt Outdated
Comment thread src/isaac_ros/isaac_ros_launch/launch/isaac_launch.py
@jmblixt3 jmblixt3 force-pushed the behavior-tree-jonathan branch from 81b33d2 to 5701668 Compare May 1, 2025 21:42
@Isopod00 Isopod00 added the new feature Implementation of a new feature label May 3, 2025
@Isopod00 Isopod00 force-pushed the behavior-tree-jonathan branch 3 times, most recently from a72879d to 0b5f630 Compare May 4, 2025 16:32
@Isopod00 Isopod00 force-pushed the behavior-tree-jonathan branch from 0b5f630 to 3a6cadc Compare May 4, 2025 21:09
Isopod00 and others added 19 commits May 6, 2025 20:20
commit fc3bc12
Author: Anthony Brogni <anthonybrog@gmail.com>
Date:   Tue May 6 14:06:05 2025 -0500

    (Merge this!) Drivetrain Safety Feature (#402)

    * drivetrain safety feature

    * it works!

    ---------

    Co-authored-by: umnrobotics <robotics@umn.edu>

commit 2310108
Author: Isopod00 <anthonybrog@gmail.com>
Date:   Mon May 5 22:55:25 2025 -0500

    Update the default values of ROS params

commit c39292e
Author: Anthony Brogni <anthonybrog@gmail.com>
Date:   Mon May 5 21:03:06 2025 -0500

    Nav2 Autonomy Testing Outside (#398)

    * nav2 config file improvements

    * testing changes

    * Renamed all "zed2i/zed_node/" to "zed2i/zed_node_zed2i/"

    * last fix

    * Squashed commit of the following:

    commit 7dcebf1
    Merge: 3ce4a23 a8b3910
    Author: Anthony Brogni <anthonybrog@gmail.com>
    Date:   Sun May 4 16:22:16 2025 -0500

        Merge remote-tracking branch 'origin/zed-topics-renaming-fix' into calibrate-field-coordinates-testing

    commit 3ce4a23
    Merge: 0364d6b 083fbe5
    Author: Isopod00 <anthonybrog@gmail.com>
    Date:   Sun May 4 15:42:54 2025 -0500

        Merge branch 'main' into calibrate-field-coordinates-testing

    commit 0364d6b
    Merge: e4221d1 4869895
    Author: Anthony Brogni <anthonybrog@gmail.com>
    Date:   Sun May 4 11:32:24 2025 -0500

        Merge branch 'main' into calibrate-field-coordinates-testing

    commit e4221d1
    Merge: 598e23d a8c3822
    Author: Anthony Brogni <anthonybrog@gmail.com>
    Date:   Sun May 4 10:53:23 2025 -0500

        Merge branch 'main' into calibrate-field-coordinates-testing

    commit 598e23d
    Author: Isopod00 <anthonybrog@gmail.com>
    Date:   Sat May 3 14:52:22 2025 -0500

        added an async_sleep

    commit 0526ca9
    Author: Isopod00 <anthonybrog@gmail.com>
    Date:   Sat May 3 10:41:20 2025 -0500

        small calibrate field coordinates accuracy improvements

    * mount the apriltags lower in simulation

    * remove unused import

    * Added RotationShimController and switched from mppi controller to simpler dwb controller

    * small changes

    * auto formatting

    * Added a use_nav2 arg and nav2_launch file for testing

    * testing changes

    * reverted some changes we dont want to merge yet

    * last revert

    ---------

    Co-authored-by: umnrobotics <robotics@umn.edu>

commit 2673e23
Author: Anthony Brogni <anthonybrog@gmail.com>
Date:   Sun May 4 22:53:31 2025 -0500

    ZED Topics Renaming Fix (Fixes Apriltags) (#400)

    * Renamed all "zed2i/zed_node/" to "zed2i/zed_node_zed2i/"

    * last fix
commit d56eb3f
Author: Anthony Brogni <anthonybrog@gmail.com>
Date:   Thu May 8 22:29:46 2025 -0500

    Auto Dig Nav Offload + Cameras (#408)

    * auto dig improvement

    * improvements

    * working caemra compression

    * initial try, will need to be tested

    * small changes

    * added to everything launch

    * added to launch file and whatnot

    * Added a client for the new action server to the main control node

    * it works

    * removed duplicate

    * nav2 and zed config changes

    * Tuned backward_distance

    * disable some everything launch features

    * testing changes

    * decrease global costmap size

    * auto format

    * auto format

    ---------

    Co-authored-by: Alex Berg <56053786+BergerKing333@users.noreply.github.com>
    Co-authored-by: umnrobotics <robotics@umn.edu>
    Co-authored-by: alex berg <ber00221@umn.edu>

commit 224c79c
Author: Anthony Brogni <anthonybrog@gmail.com>
Date:   Tue May 6 23:03:56 2025 -0500

    gazebo driving fix
- Implemented `providedPorts()` in `auto_dig.hpp` and `auto_offload.hpp` to correctly expose input keys to the Behavior Tree Blackboard.
- Updated `onResultReceived()` in all custom Action Nodes to evaluate the `WrappedResult` code. Nodes now return `FAILURE` if the ROS 2 action is aborted or canceled, rather than blindly returning `SUCCESS`.
- Updated `setGoal()` to properly fetch inputs using the registered ports and populate the ROS Action Goal.
-  parameter names NEED TO BE ALIGNED in (e.g., `digger_chain_power`)] `.action` files.
* gazebo driving fix

* Auto Dig Nav Offload + Cameras (#408)

* auto dig improvement

* improvements

* working caemra compression

* initial try, will need to be tested

* small changes

* added to everything launch

* added to launch file and whatnot

* Added a client for the new action server to the main control node

* it works

* removed duplicate

* nav2 and zed config changes

* Tuned backward_distance

* disable some everything launch features

* testing changes

* decrease global costmap size

* auto format

* auto format

---------

Co-authored-by: Alex Berg <56053786+BergerKing333@users.noreply.github.com>
Co-authored-by: umnrobotics <robotics@umn.edu>
Co-authored-by: alex berg <ber00221@umn.edu>

* Agitator Code + Better Auto Digging (#407)

* removed limit switch code because we don't have them

* wrote code for the agitator

* Added missing import

* works

* auto format

* remove cli_motor_toggle from auto_offload_server

* added back "msg/Potentiometers.msg"

* auto dig + offload works !

---------

Co-authored-by: umnrobotics <robotics@umn.edu>

* Deleted TODO comment

* small auto dig nav offload changes

* Smarter digging (#411)

* uh maybe?

* works inside

* changes from yesterday

* small camera_launch changes

* auto format

---------

Co-authored-by: Peter M <pwmarshall@gmail.com>
Co-authored-by: umnrobotics <robotics@umn.edu>

* Fix tasks.json for vscode to work with README.md instructions (#419)

Co-authored-by: Team Laptop 1 <robotics@umn.edu>

* AlexBlox is OP (#406)

* initial

* Outside Testing + Auto Changes (#393)

* digger safety feature

* more changes

* more changes

* make digger power positive

* lower speed

* testing changes

* removed the option to reverse the digger

* tiny changes

* remove log statement

* remove unecessary return

* Added the digger current safety check

* made current_threshold and time_limit into ROS parameters

* improvements using an optional type

* outside testing

* works now!

* auto dig works!

* only works while moving down

* we dont need this anymore

* switch to the faster up speed for the zero_lift service

* auto offload works!

* auto dig works

* auto format

* Remove lift_digging_end_position

* delete todo comment

* commented out logging statement

---------

Co-authored-by: umnrobotics <robotics@umn.edu>

* (Test This!) Digging buckets current spike detection (#395)

* digger safety feature

* more changes

* more changes

* make digger power positive

* lower speed

* testing changes

* removed the option to reverse the digger

* tiny changes

* remove log statement

* remove unecessary return

* Added the digger current safety check

* made current_threshold and time_limit into ROS parameters

* improvements using an optional type

* outside testing

* works now!

* auto dig works!

* only works while moving down

* we dont need this anymore

* switch to the faster up speed for the zero_lift service

* auto offload works!

* auto dig works

* auto format

* Remove lift_digging_end_position

* delete todo comment

* commented out logging statement

* digging buckets current spike detection

* testing changes

---------

Co-authored-by: umnrobotics <robotics@umn.edu>

* fast lift movement in both directions (#399)

* fast lift movement in both directions

* auto format

* fix spelling mistake "zed2ii" to "zed2i"

* ZED Topics Renaming Fix (Fixes Apriltags) (#400)

* Renamed all "zed2i/zed_node/" to "zed2i/zed_node_zed2i/"

* last fix

* Nav2 Autonomy Testing Outside (#398)

* nav2 config file improvements

* testing changes

* Renamed all "zed2i/zed_node/" to "zed2i/zed_node_zed2i/"

* last fix

* Squashed commit of the following:

commit 7dcebf1
Merge: 3ce4a23 a8b3910
Author: Anthony Brogni <anthonybrog@gmail.com>
Date:   Sun May 4 16:22:16 2025 -0500

    Merge remote-tracking branch 'origin/zed-topics-renaming-fix' into calibrate-field-coordinates-testing

commit 3ce4a23
Merge: 0364d6b 083fbe5
Author: Isopod00 <anthonybrog@gmail.com>
Date:   Sun May 4 15:42:54 2025 -0500

    Merge branch 'main' into calibrate-field-coordinates-testing

commit 0364d6b
Merge: e4221d1 4869895
Author: Anthony Brogni <anthonybrog@gmail.com>
Date:   Sun May 4 11:32:24 2025 -0500

    Merge branch 'main' into calibrate-field-coordinates-testing

commit e4221d1
Merge: 598e23d a8c3822
Author: Anthony Brogni <anthonybrog@gmail.com>
Date:   Sun May 4 10:53:23 2025 -0500

    Merge branch 'main' into calibrate-field-coordinates-testing

commit 598e23d
Author: Isopod00 <anthonybrog@gmail.com>
Date:   Sat May 3 14:52:22 2025 -0500

    added an async_sleep

commit 0526ca9
Author: Isopod00 <anthonybrog@gmail.com>
Date:   Sat May 3 10:41:20 2025 -0500

    small calibrate field coordinates accuracy improvements

* mount the apriltags lower in simulation

* remove unused import

* Added RotationShimController and switched from mppi controller to simpler dwb controller

* small changes

* auto formatting

* Added a use_nav2 arg and nav2_launch file for testing

* testing changes

* reverted some changes we dont want to merge yet

* last revert

---------

Co-authored-by: umnrobotics <robotics@umn.edu>

* tuning, rviz fix

* tweaking

* weird merge change fix

* im writing code at 2 am

* changes

* test

* changes

* fix submod ref

* final attempt

* Mess of last few days

* pushed less-logging for can_bridge

* peter changes that work

* cameras work

* Don't fail the whole action if backup fails

* laptop changes

* cleanup changes

* nav2 config changes

* small change

* camera change

* zed point cloud

* pointcloud reading changes

* initial commit

* i love claude

* cleanup part 1

* fixing formatting part 2

* linters are stupid

* more linter changes

* im gonna delete the linter if this fails

---------

Co-authored-by: Anthony Brogni <anthonybrog@gmail.com>
Co-authored-by: umnrobotics <robotics@umn.edu>
Co-authored-by: UMN Robotics <139645809+umnrobotics@users.noreply.github.com>

* Add Stream Deck capability (#422)

* Added stream deck node

* Add working stream deck node

* Callback deosnt like that

* Add topic for stream deck buttons and wait until its connected

* Add stream deck subscription to main control node

* Add stream deck node to laptop launch

* dockerfile updates

* double name and always close

* working

* dockerfile change

* linter go away

* lint??

---------

Co-authored-by: umnrobotics <robotics@umn.edu>
Co-authored-by: alex berg <ber00221@umn.edu>

* delete digger functionality in motor control  node (#424)

* delete unnecessary old functionality

* more updates to motor_control

* final updates

---------

Co-authored-by: Victor Tipkemper <tipke001@umn.edu>
Co-authored-by: hdjwis <adarshyraju@gmail.com>

* Main control cleanup (#425)

* Added stream deck node

* Add working stream deck node

* Callback deosnt like that

* Add topic for stream deck buttons and wait until its connected

* Add stream deck subscription to main control node

* Add stream deck node to laptop launch

* dockerfile updates

* double name and always close

* working

* dockerfile change

* linter go away

* lint??

* stream deck pictures and stuf

* streamdeck in main control node

* linter

* i dont know what the linter wants from me

* the linter gonna die

---------

Co-authored-by: root <wispysparks@gmail.com>
Co-authored-by: umnrobotics <robotics@umn.edu>
Co-authored-by: hdjwis <92123937+hdjwis@users.noreply.github.com>

* potential fix for devcontainer

* Updated dumper (auger) (#428)

* "Updated dumper conditions for new design based limit switches"

* Created Sub/Pub for Limit Switches  and check if both actuators were retracted for dumping"

* Added Conditionals to Extend Dumper and changed constant values

* updated struct.unpack

* updated limit switch msg type

* Change limit switch types from int to bool

* Reset pulled_state in drop_dumper

* linter fixes

* linter fixes

* updated auto offload

* Changed to position control in pull and drop dumper function. Removed top kill switch and replaced it with degree conditional in while loop instead

* commented auger checks from dumper node, for now

* Changed names in autoOffLoad to match dumper_node server nodes

* Final updates for dumper

* renamed dumper services to dump and store

* inlcuded Bool std_msg

---------

Co-authored-by: Team Laptop 1 <robotics@umn.edu>
Co-authored-by: zheng271 <brendonzheng57@gmail.com>
Co-authored-by: alex berg <ber00221@umn.edu>

* Auger node (#435)

* created auger_node file

* Implement basic functionality of auger_node, rough structure.

* Minimal changes

* introduce set methods, stop method

* naming clarifications and adjust to new todo description.

* minor changes

* basically just added potentiometer subscriber

* Basic services made for auger node, no failsafes for controlling motors

* move actuator at a constant velocity

* Arduino auger (#426)

* Theoretical Auger Sub/Pub stuff

* updated potentiometers for auger

---------

Co-authored-by: Zheng271 <brendonzheng57@gmail.com>

* Added some basic motor configurable motor id constants

* Added configurable class variables for auger along with fixing some motor set calls

* Added in limits to the push actuator's position and speed. Got rid of the digger node and tried to replace all instances on launch with the auger node instead.

* Work in progress code

* Fixed some simple mistakes that caused code to crash

* added todos

* Made methods fail if their MotorCommandSet and MotorCommandGet requests failed. Added in better checking for tilt actuator set method and made it block until finished. Also made set_motor_push_position block until setpoint is reached.

* Added extend digger callback and retract digger callback. Also made set_motor_push_position take in both a speed and desired position

* renaming some variables for auto dig

* gave the auger services more sensible names

* finished auto dig server

* Fixed dumb auger set srv mistake

* fixed sensor.ino changes

* Fixed some logic in set_actuator_tilt_extension and  set_motor_push_position

* updated read_serial

* ran `autopep8 --in-place --aggressive -r --in-place --aggressive src/auger/ src/rovr_control/`

* Fixed formatting

* fixed auto_dig linter problem

* reformatted with ruff

* fixed the doc strings

* updated auto_dig to include drive backs

* Fixed some mistakes. Added check that confirms screw is spinning before running push motor. Added a stop all service.

* updated main control node to use auger

* added auger stop to main_control_node and multiple screw speeds to auto_dig

* formatted

* linter fixes

* updated controls to fix retract/extend issue

* fixed linter

* final updates

* Dig nav offload (#438)

* updated to use navigation backup wiht nav2.

* updated action to have x and y as inputs

* fixed linter

* linter fixes

---------

Co-authored-by: alex berg <ber00221@umn.edu>

---------

Co-authored-by: akshatarinav <akshatarinav@gmail.com>
Co-authored-by: Victor Tipkemper <tipke001@umn.edu>
Co-authored-by: Sagar <sagartsant@gmail.com>
Co-authored-by: hdjwis <92123937+hdjwis@users.noreply.github.com>
Co-authored-by: Zheng271 <brendonzheng57@gmail.com>
Co-authored-by: Michael Foley <114529526+Michael-Foley@users.noreply.github.com>
Co-authored-by: hdjwis <adarshyraju@gmail.com>
Co-authored-by: umnrobotics <robotics@umn.edu>

* Remove unused imports in main_control_node.py

Removed unused imports to clean up the code.

* Add dig_location_server node to launch file

---------

Co-authored-by: Anthony Brogni <anthonybrog@gmail.com>
Co-authored-by: Alex Berg <56053786+BergerKing333@users.noreply.github.com>
Co-authored-by: umnrobotics <robotics@umn.edu>
Co-authored-by: alex berg <ber00221@umn.edu>
Co-authored-by: Peter M <pwmarshall@gmail.com>
Co-authored-by: CubeToPlay <86120028+CubeToPlay@users.noreply.github.com>
Co-authored-by: UMN Robotics <139645809+umnrobotics@users.noreply.github.com>
Co-authored-by: Wispy <101812473+WispySparks@users.noreply.github.com>
Co-authored-by: Victor Tipkemper <113133273+victortipkemper@users.noreply.github.com>
Co-authored-by: Victor Tipkemper <tipke001@umn.edu>
Co-authored-by: root <wispysparks@gmail.com>
Co-authored-by: zheng271 <brendonzheng57@gmail.com>
Co-authored-by: akshatarinav <akshatarinav@gmail.com>
Co-authored-by: Sagar <sagartsant@gmail.com>
Co-authored-by: Michael Foley <114529526+Michael-Foley@users.noreply.github.com>
…file which is supplied by dig location server i assume
…and y coords from behavior tree first. If invalid (set as 0,0 for now) it will go with normal logic like usual
…ded input target x and y coords for go to dig location
… in behavior tree called return to coordinate
…les + integrated it into button press instead of auto dig nav offload. Also updated behavior tree executor and launch files
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new feature Implementation of a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants