I've been thinking about how easy it will be to set up complex robotics scenarios with HLL. My focus currently is on bringing HLL to version 1.0. Those of you who've read the blog know that - you can build applications with HLL now - but you'd find yourself writing enough Java that - except for the ability to easily communicate with other HLL units anywhere - and a great start on a browser-based GUI for robots (pushes to SVG dynamic graphics that can show your robots position) .... you might wonder why you're doing it. OK - if you want to control your robot from anywhere through a browser - but maybe you don't need that right now.
Anyway - just wanted to be sure I'm not giving a false impression before I go on - actually have some good thoughts in mind. Version 1.0 isn't that far away - but it's not there yet.
I was thinking about how easy it's going to be - in combination with LeJos, to set up complex scenarios. With HLL, you can do the building from the other direction - i.e. top-down - which should be implied by the title of the software "high level logic."
So, what I have for a demo, is a robot with a High Level Logic (HLL) controller on a computer, and the browser-based GUI Command Center (loosely) connected to its own HLL. A command is issued from the GUI, which is processed by the Command Center HLL and then sent to the robot's HLL. The robot's HLL sends messages via a simple "expert" to the robot itself.
I built this demo while working on the HLL prototype. video:
http://highlevellogic.blogspot.com/2010 ... video.html
It uses a simple robot simulation that sends new position information back. But now that I have a Lego robot built, I want to change the demo so that the robot's HLL uses an "expert" that makes the connection to the LEGO robot using LeJos.
Overly complicated? No, not if you consider what can be done with this set up.
On the robot side, there would be sufficient software to take care of some basic commands like move forward by x meters or continue x operation until. The HLL part would contain the higher level plans. I'm thinking along the lines of setting up a scaled logistics operation of some complexity. The HLL will carry the plan for the robot operating in this environment - carrying out a complex set of tasks.
But wait - there's more.
Let's say that we need to issue a command to the robot that the robot does not know how to carry out. In the real world, this can happen when you have a new robot out of the box, that hasn't been programmed for the activities of the site, or you have a new activity and haven't told all your robots how to do it yet.
You'd issue the command through the Command Center, as usual, and the Command Center's HLL would pass the message to the robot's HLL as usual. But the robot's HLL would check to see if it can carry out the command and respond with a refusal on the grounds that it doesn't know how to do what it's being asked to do.
The Command Center's HLL responds by delivering the needed resources to the robot's HLL.
For a new robot out of the box, so to speak (i.e. only primitive commands supported by its HLL - we assume all robots have HLL right out of the box) the robot will first need Java and HLL components needed to execute whatever will be within its domain (verses a sequence of commands issued by the Command Center HLL), and then it may also need a map (for example) of its new working environment.
There's the sketch - and I'll want to have all of this well supported with version 1.0 of HLL. This is in fact, a primary reference application for HLL.
Since I'm new to LeJos and must spend the bulk of my time working on HLL, I'm wondering if there's anybody out there who might find this interesting enough to consider helping out with LeJos expertise (and perhaps even some coding).
Correlation does not prove causality.