SOAR Example

77 views
Skip to first unread message

Doug

unread,
Mar 14, 2017, 10:57:46 PM3/14/17
to OpenEaagles
Email from Henrique:

Hi Doug! Is that possible to have a working example with SOAR?
Kind regards,
Henrique


Doug

unread,
Mar 14, 2017, 11:11:53 PM3/14/17
to opene...@googlegroups.com
Hi Henrique,

I've been looking at several things in relation to 'AI' or decision making within OpenEaagles.  To do this right, I really like how (and am following how) the software supplied with the book "Learning Game AI Programming with Lua" organized things.  The book is obviously oriented around using Lua as a scripting system and language to develop different kinds of AI techniques -- great book -- lots to learn from it.

What I really like about the book S/W organization is how Lua is interfaced and leveraged with C++.  Lua provides the 'easy to use' UI for trying things quickly; C++ does the heavy lifting in terms of providing the core infrastructure / environment or world in which agents interact.  It also draws the graphics (using Ogre3D).

As for Soar, I just had a Master's student complete his thesis in extending this book S/W to call Soar for decision making.  Basically what we learned is this:

1. Soar has a weird language in which to describe agent decision making.  I'm not using the word 'weird' to imply something wrong or anything, it's just not familiar.

2. To a new user, it's not obvious as to how to interface Soar to an existing system.  The documentation on the web site is lacking, but at this point we (and I know you) can -- it just took a long time to figure out how to make it interact.

3. Soar seems to be good at making 'high level' decisions -- and no so good at carrying them out.  It can't add 1 + 1, but it can decide, they need to be added.

Given that understanding, we (the student and I) leveraged Lua to do the work to carry out commands issued by a Soar agent.  Basically we used Soar to make a higher level decision as to what to do given a complex situation, then write rather straightforward Lua functions to 'do it.'  This strategy seemed to work well -- each 'agent' was defined by two things, a Soar file (production rules), and Lua script code to be called.

At the moment, no I don't have an OpenEaagles example that 'talks' to Soar.  But the drive to make this reality is going on.

I'm doing some major updates to OpenEaagles to shape into a more flexible form for a wider range of purposes + updating code to move toward Modern C++ coding concepts. This is exciting, as I see the codebase (C++) as a fantastic foundation for doing lots of 'heavy lifting' to support Lua extended functionality.

Soon, I'll be dropping in (i.e., embedding) Lua as a library.  Bindings (software that provides the interface between C++ and Lua) will be developed for three purposes: configuration, testing and AI.

Once that's done, I'll certainly revisit Soar as it should drop into place somewhere that makes sense.

Doug

Henrique

unread,
Mar 15, 2017, 6:58:54 AM3/15/17
to OpenEaagles
Thanks for the answer, Doug!!!
We are starting a project with OE and we are considering to implement the messages through radios and TDL. Again, is there any example using TDL or radio messagens?
OE is a great framework and we are very glad that you are able to support it with such dedication!
Regards, Henrique

Doug

unread,
Mar 16, 2017, 10:34:48 PM3/16/17
to OpenEaagles
I don't have a good answer for the question -- but I will refer it to a friend of mine who might be able to answer.

Attached is something interesting!!  Just about published - using oe to drive real hardware!


Doug

Doug

unread,
Mar 28, 2017, 10:07:34 PM3/28/17
to OpenEaagles
Reply all
Reply to author
Forward
0 new messages