-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/finishing task #28
Conversation
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
Codecov Report
@@ Coverage Diff @@
## main #28 +/- ##
==========================================
- Coverage 38.90% 38.82% -0.08%
==========================================
Files 27 29 +2
Lines 1501 1656 +155
Branches 905 1002 +97
==========================================
+ Hits 584 643 +59
- Misses 221 248 +27
- Partials 696 765 +69
Flags with carried forward coverage won't be shown. Click here to find out more.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The approach and implementation all looks good! I've just left a few comments about places where documentation can be improved or filled in.
rmf_task/include/rmf_task/requests/factory/ChargeBatteryFactory.hpp
Outdated
Show resolved
Hide resolved
rmf_task/include/rmf_task/requests/factory/ReturnToChargerFactory.hpp
Outdated
Show resolved
Hide resolved
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
@mxgrey I've added documentation for the classes introduced here and also for the existing API where lacking. I just noticed that the implementations Secondly, should we replace |
I think it's a good idea to have the namespacing match the file system, but in this case I'd recommend moving the implementations of those classes into
Let's provide some kind of |
Signed-off-by: Yadunund <[email protected]>
rmf_task/include/rmf_task/requests/factory/ChargeBatteryFactory.hpp
Outdated
Show resolved
Hide resolved
Tiny clarification: currently the fleet adapter calls the optimal planner on the main thread. In the future we might want to call the greedy planner on the main thread to quickly respond to bids and have the optimal planner run on a different thread. The results from the optimal planner will be used to update assignments if the bid is awarded. I could be wrong here, but would changing the |
This is something that we need to make sure to implement correctly. But if we implement it following the model of To be clear, each |
ooh so you're suggesting to modify the signature of |
Right, but notice that the constructor of Whether or not you want the constructor of the |
Aah that's cool! Will modify accordingly. |
Does also moving the |
Signed-off-by: Yadunund <[email protected]>
Yeah, that's a great idea. Bundling all of those into |
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
Signed-off-by: Yadunund <[email protected]>
@mxgrey I've added |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great; thanks for iterating!
We should wait until open-rmf/rmf_ros2#108 is fully settled and approved before we merge this one, since the API breakages will have a cascading effect if there's a big gap between merging the PRs.
This PR introduces two features:
bool automatic
parameter toRequest
to discern requests that are user and auto generatedRequestFactory
is introduced with amake_reqeust()
function that returns aConstReqeustPtr
. ThisRequestFactory
can be optionally passed intoTaskPlanner::optimal_plan()
. Once the planner finds an solution for the set of requests, it will append the assignment for theRequestFactory->make_request()
at the end. Requests generated by the factory must haveautomatic == true
so that they are not confused with user submitted ones. This will help downstream fleet adapters ignore such requests when replanning.When the reservation system is completed, we can add a
NavigateToReservedSpot
factory that will always make an agent navigate to its assigned spot.Update:
3. Add
TaskPlanner::Options
class that bundlesgreedy
,interrupter
andfinishing_request
objects.4.
TaskPlanner::optimal_plan()
andTaskPlanner::greedy_plan()
replaced byTaskPlanner::plan()
with an overload that accepts non-default Options.5. Renamed
ReturnToChagerFactory
toParkRobotFactory