Tuesday, May 28, 2013

Modular enclosure interpreter

Last week Jan factored out the time-subdivision strategy, event handlers IVP and solver algorithms from the enclosure interpreter. The restructuring of the interpreter infrastructure makes it easier to plug in alternative solutions for either of these components and, in particular, makes it possible to use them in any combination. Currently, the options available through the Semantics menu are to use the localizing strategy with either the PWL or event tree (EVT) event handling algorithms, with the option to use the Contraction (Lohner) IVP solver.

Monday, May 27, 2013

Autocompletion

The work on improving the graphical user interface of Acumen continues and during the past week Adam merged changes into the development branch that enable autocompletion in Acumen's code editor. What has been implemented so far is a simple kind of context-insensitive completion based on a dictionary of key words – a subset of the Acumen grammar. When the TAB key is pressed, key words matching the initial letters of the current word appear in a pop-up.


Further, work on formally specifying Acumen's syntax is ongoing. The target is to relate the semantics of the language to existing theoretical frameworks and to extend the subset of the language supported by the Enclosure semantics.

Monday, May 13, 2013

Negative logarithmic norm

Since last week Jan has been implementing a version of the Picard IVP solver. The new solver bounds the difference between solutions, starting from an initial condition set, given in terms of the logarithmic norm of the Jacobian of the IVP field. For fields with negative logarithmic norm the difference decreases exponentially with time, counteracting wrapping effects and other information loss errors of the IVP solving scheme. An example of a simulation run for the system x' = -x with x(0) in [-1,1] is shown below. Jan noticed that with larger dimensional systems the simulations slow down and memory usage goes up, indicating an inefficiency in the prototype solver. Going forward Jan will profile and optimize the solver, as well as automating the usage of the new solver for systems with negative logarithmic norm. 

Keyboard shortcuts and an enabled Event Tree

This week Adam has been working on items relating to an upcoming release. Among these was to re-enable the event tree-based enclosure solver as an option in the graphical user interface, and various improvements relating to keyboard-based interaction with Acumen. The File Browser now supports keyboard-based navigation of the tree. When a top-level folder is selected and the left arrow key is pressed, the parent of the current root folder becomes the new root of the tree. When an expanded folder is selected and the right arrow key is pressed, that folder becomes the new root of the file Browser. Keyboard shortcuts have also been aligned and improved throughout the application. Most notably, it is now possible to see the hotkeys associated with menu actions, as can be seen in the screenshot below. These hotkeys also adapt to the given platform that Acumen executes on.



As a lesson learned from implementing the file browser, Adam has concluded that Scala Swing is to be seen more as a complement to- rather than a replacement for using the raw Java Swing APIs. For instance, though a proposal for it exists, no component corresponding to Java Swing's JTree is currently available in Scala Swing. A side effect of dropping down to the raw Java APIs is that much of the code is spent on casting objects into the appropriate type and making sure that such casts are not applied to null references, i.e. far from the elegant code one can normally hope to produce using pure Scala APIs.

Saturday, May 11, 2013

Two Special Guests Visit the NAO Halmstad Group

Two guests who are getting ready to graduate from Kindergarten visited Halmstad University last Friday to meet Jonson and Mörner, two members of the NAO Halmstad Group.  The visit was hosted by Jonas Jonson (no relation), Alexey Taktarov, Yingfu Zeng, Jawad Masood, and Walid Taha.  (See more pictures from visit)

The special guests became interested in meeting the robots after seeing a segment on TV4 about the NAO Halmstad Group.  The visit included showing off some of the capabilities that the NAOs come pre-programmed with (including dancing, Tai Chi, walking, speech synthesis, and speech recognition) and an interactive discussion of how the robots can be programmed by a sequence of basic primitives such as walking, turning, moving hands, closing the grip, and so on.  This was followed by a discussion of what these robots are made of, including cameras, motors, and (as one of our young guests pointed out) microphones.  They were also showed a recording of a recent walk by Jonson using code that was developed by our colleagues at the AMBER lab at Texas A&M.

The guests appeared content with the demonstrations.  Depending on the level of their future interest in this subject, we may have had seven or eight generations of engineers at this meeting.  We will keep our fingers crossed for the next twelve years :-)

Monday, May 6, 2013

Limitations of Taylor method-based elementary function implementation

Since last week's paragraph Jan has continued pondering ways to leverage the Taylor series methods implementation developed for the new IVP solver. An obvious idea is to use Taylor methods to compute polynomial approximations for elementary functions. There are however two possible limitations to this approach, both stemming from the same fundamental compositionality problem, namely that Taylor coefficients need to be available for all parameters of the computed functions. The first case is that of computing, say the cosine of the solution of a differential equation. If the solution is not itself computed using Taylor methods, but rather by a constant or affine approximation method, then at most the first two terms in the series for the solution are available as input to the Taylor method algorithm. The second case is that of approximating insufficiently smooth functions, such as the absolute value. In this case one has to make an approximation of the domain over which the function lacks a continuous derivative, in our case where the parameter is zero, and instead use a smoother approximation, again losing precision in the process. The resulting approximations may very well still be acceptable, but may lead to unpredictable degrees of over-approximation, causing confusion for the end-users. Still, the method seems to Jan as a simple way to implement elementary functions in a rigorous manner.

Aligned enclosure example models and an integrated file browser prototype

Walid and Adam have been working on aligning the example Acumen models for the enclosure interpreter. As part of this, a new series of examples illustrating how events are handled by this interpreter was developed with the help of Jan. To make working with series of examples (and collections of models in general) more convenient, Adam developed a prototype of a file browser integrated into the Acumen main window. When the synchronisation toggle button is pressed, this browser makes it possible to step through models (viewing them in the editor) using the arrow keys of the keyboard. This makes it easy to observe changes between subtly different models.

Sunday, May 5, 2013

NAO Halmstad Group's First Experiment

Jawad, Yingfu, and Ayonga (Texas A&M) worked hard this weekend to carry out a series of experiments based on new control code developed by the AMBER lab at Texas A&M.  The new code, which aims to produce stable human-like walking, was tested on several surfaces both indoors and outdoors.  The following video shows a walk on the asphalt between the F and R buildings:



The NAO Halmstad Group consists of five same-batch NAO robots, and is intended to be used as a common platform for experimentation among four universities, including Rice University, Halmstad University, Texas A&M, and Al-Faisal University. This experiment constitutes the first use of the platform for this purpose.