{"id":28247143,"url":"https://github.com/amock/mbf_deliberation","last_synced_at":"2025-06-15T04:31:32.684Z","repository":{"id":288349860,"uuid":"966984829","full_name":"amock/mbf_deliberation","owner":"amock","description":"ROS 2 examples showing how to use Move Base Flex (MBF) with well-known robotics deliberation libraries","archived":false,"fork":false,"pushed_at":"2025-04-17T00:18:43.000Z","size":320,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-19T10:08:46.256Z","etag":null,"topics":["behavior-tree","deliberation","mbf","planning","ros2","state-machine"],"latest_commit_sha":null,"homepage":"https://github.com/naturerobots/move_base_flex","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amock.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-15T18:43:48.000Z","updated_at":"2025-04-17T00:18:46.000Z","dependencies_parsed_at":"2025-04-17T13:21:23.621Z","dependency_job_id":"29b864db-70a7-40bf-9cb4-5462bb88490d","html_url":"https://github.com/amock/mbf_deliberation","commit_stats":null,"previous_names":["amock/mbf_deliberation"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/amock/mbf_deliberation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amock%2Fmbf_deliberation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amock%2Fmbf_deliberation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amock%2Fmbf_deliberation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amock%2Fmbf_deliberation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amock","download_url":"https://codeload.github.com/amock/mbf_deliberation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amock%2Fmbf_deliberation/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259922335,"owners_count":22932489,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["behavior-tree","deliberation","mbf","planning","ros2","state-machine"],"created_at":"2025-05-19T10:08:46.081Z","updated_at":"2025-06-15T04:31:32.676Z","avatar_url":"https://github.com/amock.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mbf_deliberation\n\nThis repository provides a collection of examples for calling [move_base_flex (MBF)](https://github.com/naturerobots/move_base_flex) actions, ranging from simple Python and C++ nodes to more sophisticated deliberation libraries, see [awesome-ros-deliberation](https://github.com/ros-wg-delib/awesome-ros-deliberation). All packages in this repository are compatible with any implementation that inherits from MBF, such as [mesh_navigation](https://github.com/naturerobots/mesh_navigation). Each package includes examples showing how MBF can be integrated into the respective framework across different use cases.\n\nFor consistency, all packages include a minimalistic node named `navigate_to_pose` which:\n\n1. waits for a goal pose on the `/goal_pose` topic (the default topic to use with RViz),\n2. uses a global planner implementation of MBF to plan a path from the robot's pose to the given goal pose. The planner name must be set via the `planner` parameter and must exist in your MBF config,\n3. uses a controller implementation of MBF to move the robot along the computed path until it reaches the goal. The controller name must be set via the `controller` parameter and must also exist in your MBF config.\n\nThis node does not handle any edge cases and therefore does not trigger recovery behaviors. For more robust edge-case handling, refer to the more advanced examples in each package.\n\n## MBF Simple Nav\n\n### [Python Nodes](mbf_simple_client/mbf_simple_client_py)\n\nCalling MBF actions from plain Python ROS 2 nodes.\n\n```bash\nros2 run mbf_simple_client_py navigate_to_pose --ros-args -p planner:=\"mesh_planner\" -p controller:=\"mesh_controller\"\n```\n\n\u003c!-- ### CPP Nodes\n\nTODO --\u003e\n\n## [SMACH](mbf_smach)\n\nRequirements: \n- [executive_smach](https://github.com/ros/executive_smach), available in official apt repositories. *Warning*: Unless PR [#129](https://github.com/ros/executive_smach/pull/129) is not merged use [this](https://github.com/amock/executive_smach/tree/remove-done-cond) on branch `remove-done-cond` and compile from source. Otherwise it will not work (tested for ROS 2 humble).\n\n```bash\nros2 run mbf_smach navigate_to_pose --ros-args -p planner:=\"mesh_planner\" -p controller:=\"mesh_controller\"\n```\n\n## [BT.CPP](mbf_btcpp)\n\nRequirements:\n- [BT.CPP](https://www.behaviortree.dev/), available in official apt repositories\n- [BehaviorTree.ROS2](https://github.com/BehaviorTree/BehaviorTree.ROS2), on humble you have to compile this from source\n\n```bash\nros2 run mbf_btcpp navigate_to_pose --ros-args -p planner:=\"mesh_planner\" -p controller:=\"mesh_controller\"\n```\n\n## Yasmin\n\nRequirements: \n- [Yasmin](https://github.com/uleroboticsgroup/yasmin), available in official apt repositories\n\n### [Yasmin, Python API](mbf_yasmin/mbf_yasmin_py)\n\n```bash\nros2 run mbf_yasmin_py navigate_to_pose --ros-args -p planner:=\"mesh_planner\" -p controller:=\"mesh_controller\"\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eVisualization\u003c/summary\u003e\n\nRun visualization server of Yasmin:\n\n```bash\nros2 run yasmin_viewer yasmin_viewer_node\n```\n\nOpen your web-browser on http://localhost:5000 . For mesh navigation the result should look like this:\n\n![MBF Yasmin](./mbf_yasmin/mbf_yasmin_py/.media/mbf_yasmin.png)\n\nSet a goal via RViz 2D Goal Pose tool and you'll see the state machine transitions in your browser.\n\n\u003c/details\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famock%2Fmbf_deliberation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famock%2Fmbf_deliberation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famock%2Fmbf_deliberation/lists"}