EasyFleet
A simple-by-default framework for multi-robot, multi-capability fleets built on ROS 2
Loading...
Searching...
No Matches
easyfleet_easynav_collaboration_simple_api_deployment_py.mission Namespace Reference

Functions

 main (args=None)

Variables

str ROBOT_1 = 'robot_1'
str ROBOT_2 = 'robot_2'
str DOCK = 'dock'
str KITCHEN = 'kitchen'
str KITCHEN_STANDBY = 'kitchen_standby'
str CHARGING_STATION = 'charging_station'
str ROBOT_1_HOME = 'robot_1_home'
str ROBOT_2_HOME = 'robot_2_home'
float LONG_TIMEOUT_SEC = 180.0

Detailed Description

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.