Python based robotics behavior stack for iMETRO.
This repo uses Pixi to manage the environment, but can be brought into other projects as a regular set of ROS packages.
To get started,
-
Install Pixi: https://pixi.prefix.dev/latest/installation/
-
pixi run build
Then, you can open up a pixi shell and do all your development and testing there!
Once you have your workspace built, you can run the 2 main applications.
ros2 run imetro_behavior run_behavior.py
ros2 run imetro_behavior behavior_gui.pyOr launch them both together!
ros2 launch imetro_behavior run_behavior.launch.xml gui:=trueOne your behavior tree executor is up and running, you can send it an action goal. For example,
ros2 action send_goal /execute_behavior imetro_behavior_msgs/action/ExecuteBehavior '{tree_file_name: nav_tree}'We use pre-commit inside the pixi configuration in this repo.
Rather than running pre-commit yourself, run it as a pixi task as follows.
pixi run lintYou should also run your tests locally before submitting a pull request.
pixi run testInformation on supported behaviors is available in GitHub Pages.
To build the docs locally, use the pixi action:
pixi run -e docs build-docsWhich will drop the compiled pydocs pages into docs/.