Skip to content

Initial reworked behavior trees#376

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

Initial reworked behavior trees#376
jmblixt3 wants to merge 43 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 18 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
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