Frequently Asked Questions¶
How do I get started creating a model?¶
See Getting Started for instructions on how to create your first model
Where can I find introductory examples?¶
See the demo/ directory for introductory examples.
How would you recommend to handle different rates and possibly lack of exact synchronization for the models which FormaK produces?¶
If you pass in the sensors and control information, the ManagedFilter will
take care of the rest, including synchronizing your sensor readings. This
reduces code complexity for you and opens the opportunity to adopt additional
benefits as well.
In the current version of the library, there is manual work required to perform synchronization. The outline of the algorithm I’d recommend is:
Maintain a clock reference for publishing time
Queue inputs as they arrive (e.g. as ROS messages from subscribers), sorted by time
At the desired output rate, take the front of the message queue that are at or before the desired reference time
Pass that list/vector as input to the FormaK
ManagedFilter.tickmethod (managed.tick(reference_time, list_of_messages)) and theManagedFilterwill process the messages according to their time stamp using the process model to shift in time and align with the stamped timeThe output from the
tickfunction will be the estimate of the filter for all of the messages up to the reference time
Example usage of the ManagedFilter class
If ManagedFilter isn’t serving your use case, please reach out to
formak.open.source@gmail.com or submit an issue via
Github. I’d love to learn more
about your use case and see if it’s something that can be supported by the
library.