Skip to content
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

Creating a simulation programmatically is painful, unwieldy, and incomplete #128

Open
9 tasks
curds01 opened this issue May 8, 2019 · 0 comments
Open
9 tasks

Comments

@curds01
Copy link
Collaborator

curds01 commented May 8, 2019

Problem statement

Menge has been architected, from a very early point in its development, with a configuration-file-centric apporach. Work has been done to make it extensible and streamline the work required to add dynamically defined elements to the XML specification. And it works, but it has done so at the cost of actually building a simulation directly.

This code attempted to recreate the core/headon.xml programmatically. It illustrates many of the issues outlined below.

Items to track

This is a list of observations of pain points that need to be alleviated to better facilitate the workflow.

  • Simulator owns an FSM, but doesn't instantiate automatically.
  • Various important components (e.g., States, Transitions, and probably others) are not exported in the shared library. They need to be.
  • The only way to add an agent to a simulator is via position vector + AgentInitializer. It lacks the very simple "I've created an agent, please take ownership" API.
  • The values of the AgentInitializer can only be set via parsing XML.
  • Although the SimulatorBase ultimately owns an FSM, finalizing is a painful, external process. (Initializing agents in the FSM + finalize sim + finalize FSM.)
  • Ownership of objects is ill-defined; need to use unique_ptr to more definitively declare/manage ownership.
  • The spatial query needs to be added/initialized explicitly.
  • Connecting goals, goal sets, and goal selectors is a fragile endeavor.
  • Awkward mapping from state names to states when constructing and the "finalizing" Transition instances.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant