-
Notifications
You must be signed in to change notification settings - Fork 0
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
Loadable agents recap and future #416
Comments
How would you write an agent in python? You'd still have to pass a c++ agent to the simulation. Perhaps you're thinking of python-bound c++ blocks that can be composed and configured in python to create an agent that gets passed to the simulation? |
I'm thinking of creating the subclass in python, instantiating it and then calling |
That would be some nice wizardry. |
#417 has a working proof of concept for the trajectory agent. I like it, it's much simpler machinery than the loadable plugins. Please raise any objections if you have them today otherwise I'll push for that PR to go in as a first part of a series of two or three PR's to convert the agent loading logic over. |
@stonier my concerns are not on the approach itself, but more on the side of how much we are stretching Milestone 2. As we are right now both python bindings and loadable agents are working and, after your "has-a" PR, they reuse the Drake's code for the cars. So, if we could focus on the remaining low-hanging fruit, maybe in a week or two from now we could be closing it. How do you feel about reviewing this in our sync tomorrow? |
From the sync yesterday: Finalising how we load agents was probably the primary goal for M2 so I can focus on actually building agents immediately in M3. I don't plan for this to push out M2 any further - #417 gets us very close, the remainder of the work will come in on the weekend. The list in #378 is final, looking forward to nailing the necessary parts of that next week! |
@stonier @clalancette below I'm summarizing what we talk yesterday (Daniel, I had a chat with Chris after we spoke) and a couple of thoughts on the loadable agents concept (please feel free to add/remove stuff here as you see it fits). My intention is to have this mainly as food for thought and discuss it on our Thursday meeting.
Historical context
Considering that, having dynamic loadable agents was the reasonable thing to do, as it would allow us to fulfill those requirements. On top of that the agent developer would be able to just use drake as a library to write the agent-as-a-plugin and later instruct the backend to load it.
Current situation
The original question that came up was "do we actually need loadable agents?" and I think that part of the answer to that comes from another question: Do we want to provide an interactive simulation application or a framework? If the former, I think having agents as plugins makes total sense, as it allows to configure the app from the outside. If the latter, then maybe agents as plugins are not required, as the agent programmer can just import both drake and delphyne backend libraries and write a program that instantiates its custom agents and kicks off the simulation.
Pros and cons
Delphyne as a application
Delphyne as a framework
The text was updated successfully, but these errors were encountered: