==================================================== Reference Implementation: ``group0_final`` ==================================================== This page is an **API reference** for the reference implementation in ``~/enpm605_ws/src/final_project/group0_final/``. It is provided as an example of: * The level of **docstring detail** expected for the final project (Google-style, parsed by `napoleon `_). * How to **organize a ROS 2 Python package** that combines a behavior tree (``py_trees`` / ``py_trees_ros``), Nav2 action clients, custom services, TF broadcasting, and YAML-driven parameters. * The recommended **module layout** that separates pure mission state (``ZoneManager``), behavior-tree leaves (``bt_nodes/``), service servers (``service_servers/``), and the entry-point script (``scripts/``). Use this as a *style and structure reference*, not a copy-paste template. Your own package will share the same shape but should be written in your own words. .. note:: The behavior tree assembled by the entry point is:: Selector "Mission" (memory=False) <- root |-- Sequence "Patrol" (memory=True) | |-- ZonesRemaining? (condition) | |-- NavigateToZone (action) | |-- DetectSurvivor (action) | |-- Selector "HandleDetection" (memory=False) | | |-- Sequence "SurvivorFound" (memory=False) | | | |-- IsSurvivorDetected? (condition) | | | |-- BroadcastSurvivorTF (action) | | | |-- NotifyBase (action) | | |-- LogNoDetection (action) | |-- AdvanceZone (action) |-- NavigateToBase (action) .. The block below embeds a pre-rendered HTML fragment generated by tools/render_api.py running against the maintainer's local copy of group0_final. This avoids having to publish the source to RTD. .. raw:: html :file: _code_api.html