From ec29e629400790b472c6a83ac5b6fb5b985a5a5f Mon Sep 17 00:00:00 2001 From: kjchee Date: Fri, 22 Aug 2025 10:26:05 +0800 Subject: [PATCH 1/4] Add task_assignment_strategy parameter Signed-off-by: kjchee --- rmf_demos/config/office/tinyRobot_config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/rmf_demos/config/office/tinyRobot_config.yaml b/rmf_demos/config/office/tinyRobot_config.yaml index 9f5d741e..d666a869 100644 --- a/rmf_demos/config/office/tinyRobot_config.yaml +++ b/rmf_demos/config/office/tinyRobot_config.yaml @@ -34,6 +34,7 @@ rmf_fleet: responsive_wait: False # Should responsive wait be on/off for the whole fleet by default? False if not specified. use_parking_reservations: True reassign_task_interval: 120 # seconds, specify how often a task reassignment should be triggered in the fleet + task_assignment_strategy: "ShortestFinishTime" # Task planning strategy eg.["ShortestFinishTime", "IdlePreferred"] robots: tinyRobot1: charger: "tinyRobot1_charger" From 6fd41f838d50fbb5c6fcfb51c1926d944e8e9402 Mon Sep 17 00:00:00 2001 From: kjchee Date: Fri, 26 Sep 2025 18:01:07 +0800 Subject: [PATCH 2/4] Add task_assignment_strategy to fleet config Signed-off-by: kjchee --- rmf_demos/config/office/tinyRobot_config.yaml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/rmf_demos/config/office/tinyRobot_config.yaml b/rmf_demos/config/office/tinyRobot_config.yaml index d666a869..76d405fd 100644 --- a/rmf_demos/config/office/tinyRobot_config.yaml +++ b/rmf_demos/config/office/tinyRobot_config.yaml @@ -34,7 +34,19 @@ rmf_fleet: responsive_wait: False # Should responsive wait be on/off for the whole fleet by default? False if not specified. use_parking_reservations: True reassign_task_interval: 120 # seconds, specify how often a task reassignment should be triggered in the fleet - task_assignment_strategy: "ShortestFinishTime" # Task planning strategy eg.["ShortestFinishTime", "IdlePreferred"] + task_assignment_strategy: + profile: "DefaultFastest" # [DefaultFastest, BatteryAware, Custom] + # DefaultFastest: Prioritize task efficiency (fastest finish time) + # BatteryAware: Optimize throughput with battery SoC in mind + # Custom: Use custom weights below + weights: # polynomial coeffs + finish_time: [0.0, 1.0] # task finish time cost + battery_penalty: [0.0, 5.0, 20.0] # battery penalty for low SoC + busy_penalty: [0.0, 60.0] # penalty for assigning tasks to busy robots, 2 modes: + # Binary: penalty applied if robot is busy with any task + # Count: penalty increases with number of tasks assigned to robot + options: + busy_mode: "Binary" # [Binary, Count] robots: tinyRobot1: charger: "tinyRobot1_charger" From c0ff386d13e13d642f36e9249e6838b2ad2fdd8a Mon Sep 17 00:00:00 2001 From: kjchee Date: Mon, 17 Nov 2025 11:21:54 +0800 Subject: [PATCH 3/4] Update coefficient of task_assignment_strategy with constant-offset removed Signed-off-by: kjchee --- rmf_demos/config/office/tinyRobot_config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rmf_demos/config/office/tinyRobot_config.yaml b/rmf_demos/config/office/tinyRobot_config.yaml index 76d405fd..b1cbf129 100644 --- a/rmf_demos/config/office/tinyRobot_config.yaml +++ b/rmf_demos/config/office/tinyRobot_config.yaml @@ -40,9 +40,9 @@ rmf_fleet: # BatteryAware: Optimize throughput with battery SoC in mind # Custom: Use custom weights below weights: # polynomial coeffs - finish_time: [0.0, 1.0] # task finish time cost - battery_penalty: [0.0, 5.0, 20.0] # battery penalty for low SoC - busy_penalty: [0.0, 60.0] # penalty for assigning tasks to busy robots, 2 modes: + finish_time: [1.0] # task finish time cost + battery_penalty: [5.0, 20.0] # battery penalty for low SoC + busy_penalty: [60.0] # penalty for assigning tasks to busy robots, 2 modes: # Binary: penalty applied if robot is busy with any task # Count: penalty increases with number of tasks assigned to robot options: From d0fd8d8f35d7fd091d78d6b35052efec8d9b74b5 Mon Sep 17 00:00:00 2001 From: "Michael X. Grey" Date: Wed, 14 Jan 2026 21:36:06 +0800 Subject: [PATCH 4/4] Explain how the weights in the polynomial are applied Signed-off-by: Michael X. Grey --- rmf_demos/config/office/tinyRobot_config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rmf_demos/config/office/tinyRobot_config.yaml b/rmf_demos/config/office/tinyRobot_config.yaml index b1cbf129..35962492 100644 --- a/rmf_demos/config/office/tinyRobot_config.yaml +++ b/rmf_demos/config/office/tinyRobot_config.yaml @@ -39,7 +39,7 @@ rmf_fleet: # DefaultFastest: Prioritize task efficiency (fastest finish time) # BatteryAware: Optimize throughput with battery SoC in mind # Custom: Use custom weights below - weights: # polynomial coeffs + weights: # Polynomial coefficients in the format [A, B, ..., N] such that cost = Ax + Bx^2 + ... + Nx^N finish_time: [1.0] # task finish time cost battery_penalty: [5.0, 20.0] # battery penalty for low SoC busy_penalty: [60.0] # penalty for assigning tasks to busy robots, 2 modes: