|
EasyFleet
A simple-by-default framework for multi-robot, multi-capability fleets built on ROS 2
|
Functions | |
| main (args=None) | |
The Python-API mission script for this scenario.
Written against easyfleet_mission_manager_py's RobotHandle/
SimpleController -- see
easyfleet_easynav_collaboration_simple_api_deployment/src/main_easynav_collaboration.cpp
for the C++ sibling this is meant to behave identically to (same
robots, same waypoints, same five phases, same status markers). Status
markers above each robot in RViz are not set here explicitly:
RobotHandle.run_capability() publishes them automatically for the life
of each goal.
Mission control demo for this deployment scenario: two robots, both
real-EasyNav-navigating on the same shared map --
- robot_1: navigation (real EasyNav), perception (mock)
- robot_2: navigation (real EasyNav), manipulation (mock)
A five-phase choreography exercising real navigation end to end (goals
are left to actually SUCCEED, not stopped early -- see LONG_TIMEOUT_SEC
below -- except where phase 4 deliberately cancels one):
1. robot_1 -> "kitchen" (perceiving throughout) while robot_2 ->
"dock", simultaneously. Waits for both navigations to actually
finish (not a timeout).
2. robot_1 -> "kitchen_standby" (1m short of "kitchen", still facing
it, perception still running from phase 1) to clear space, while
robot_2 -> "kitchen", simultaneously.
3. Once robot_2 is at "kitchen" (and robot_1's perception is
stopped, its job here done), robot_2 runs manipulation for up to
10s.
4. robot_1 -> "dock" while robot_2 -> "dock" too, simultaneously;
10s into robot_1's navigation it is explicitly stopped and
redirected to "charging_station" instead.
5. Once both navigations from phase 4 finish, both robots return to
their own starting pose ("robot_1_home"/"robot_2_home") and any
still-running capability goal is stopped.