open-rmf / free_fleet

A free fleet management system.
Apache License 2.0
157 stars 65 forks source link

Develop #76

Open aaronchongth opened 3 years ago

aaronchongth commented 3 years ago

This PR introduces a complete overhaul and redesign of free_fleet. This attempts to create multiple layers of abstractions that would accommodate different software configurations, mobile platforms and UIs, in order to be more widely used as a generic fleet management system.

The objective of this PR while development is still underway, is to have the API reviewed and modified if needed, such that further developments that use these new abstractions can be adapted without too many breaking changes.

Inspired and modeled after the fleet adapters from the RMF project, we have added these abstractions,

Other features:

Also fixes:

  1. Reactive message subscriptions - https://github.com/open-rmf/free_fleet/issues/88
  2. Messages are generated during build - https://github.com/open-rmf/free_fleet/issues/90
  3. Code style linting - https://github.com/open-rmf/free_fleet/issues/100
aaronchongth commented 3 years ago

@mxgrey, thanks for the review so far! I have a much better understanding of how a reactive system can be useful in this scenario now, as well as how working towards a feature-based system would be great.

I haven't given much thought about the use of namespaces, other than using them as a way to keep things within categories or subsets (i.e. agv, transport, requests), I'll look into getting them towards component pipeline based as you mentioned. I'll develop these locally for now.

I've addressed most of the design concerns and got to implement what we have discussed previously regarding requests, I'd be keen to get your review again before any new commits. Let me know what you think.