Replies: 1 comment 2 replies
-
It won't be feasible in the current generation to support automatic charging intermissions during an active task. There are many tasks where a robot will be carrying a payload that makes it physically impossible to dock with a charger or tasks where it's crucial for the robot to follow a series of steps without disruption. In the next generation of Open-RMF we'll support workflows which will make it much easier to express when a robot should pause a task in order to charge. Theoretically in the current generation we could support a new type of phase that users can explicitly add to their task description which would check the current battery level and go charge if it falls below a certain threshold. However we are directing all new development efforts towards rolling out the next generation framework. Work on the current generation by the core development team is now limited to bug fixes. I'd be open to reviewing a pull request from an external contributor to add this feature, but I'll note that the C++ code where it would need to be implemented is a wild jungle, especially with the use of rxcpp. If you can elaborate more on the nature of your "continuous tasks" I might be able to recommend a workaround. Most likely what will help you the most is to break the one long continuous task apart into a stream of smaller tasks, which creates opportunities for the task planner to insert charging periods. |
Beta Was this translation helpful? Give feedback.
-
Currently, the system applies a safety factor (e.g., 1.2x the threshold) to trigger a retreat to the charger. However, this behavior only seems to work when the robot is idle. During continuous tasks, the robot may operate until its battery drains to a critical level, as the working area it too far from the charger.
I would like to ensure the safety factor is applied during continuous tasks as well, so that the robot can preemptively retreat to the charger without risking battery depletion.
Beta Was this translation helpful? Give feedback.
All reactions