Tuesday, December 27, 2011

Trouble with collisions

During the past week Adam worked on implementing a two-dimensional ping-pong game with gravity in FAL, which led him to encounter two problems:
  1. Calculating the speed of the user-controlled paddle.
  2. Simulating the collision between the user-controlled paddle and the ball in a way that prevents the ball from "falling through" the paddle, triggering additional unwanted collision events.
Adam believes he is close to solving 1 but suspects that a solution to 2 will require a more sophisticated model of the collision event. To approach 2 during the upcoming week, he is planning to read "Realtime Rigid Body Simulation Using Impulses" by Scott Lembcke.

Testing a new Acumen version with 3D-visualization functionality

Yingfu has been testing the new Acumen version with Yifei Li and Anil Kothapalli.  It turns out that if the platform is Mac, then the user can run it directly.  However for Windows, the user need to install Java3D to run the programme.

Wednesday, December 21, 2011

Coverage testing for Acumen

Walid and Corky looked into coverage testing under scala.  It was pretty easy, actually!  They were able to set up scct in just a few minutes.  When they ran it on Acumen we get the results shown in the figure shown.  It is not surprising that the GUI and rendering were not getting any testing.  But it's really impressive how well the tests are for the rest of the code.  Great job on writing those test cases, Paul Brauner!

Tuesday, December 20, 2011

Warm Up With Acumen and Ping Pong Game

Anil spent his first week with the warm up activities for boosting his knowledge to work with the Acumen environment. He is observing the modulation and simulation behaviors of Acumen in various aspects and worked with the example problems given in the CoreAcumen, such us Timed Events and notion of parents and child. He observed the Ping Pong Game code (not the latest) sent by the Yingfu and did not get Yingfu's point of view (assumptions made) in designing the game. He thinks a proper documentation of the game design would have saved his time and boosted up his productivity. In the upcoming weeks he is planning to understand the assumptions made by the Yingfu's Ping Pong game design, which could help him to create another player in the Game.

Visualizing an Inverted Pendulum

Yingfu and MingKun developed a visualization for an inverted pendulum stabilized by a LQG controller (See video).  Yingfu is working on a new Acumen version that provides the 3D functionality and that works on different platforms (Windos, Mac, Linux), but is having some problems with creating an executable jar file using sbt. Yingfu is also reading the tutorial of OpenGL, and preparing to write his thesis.

Monday, December 19, 2011

Simulating a Bouncing Ball in FRP

Adam used the FRP animation framework FAL (an extension of the SOE library, which builds upon Fran) to implement a simple simulation of a bouncing ball. To spice things up, he made it into a game, click here to see a video of some in-game action!

He encountered a problem expressing delayed events (gradually introducing new objects into the simulation) in this programing model and plans to spend the coming week implementing another simulation which depends on this ability. 

Thursday, December 15, 2011

PhD and Research Programmer Openings at Rice and Texas A&M

New announcements have just been posted for four PhD positions and one research programer positions funded by a new NSF project lead by Professor Taha.  The positions are hosted by Rice and Texas A&M Universities, but participants will spend significant periods of time at Halmstad University.  Please forward these announcements to strong candidates.  Note that the two deadlines are as early as January 6th.

Productivity Tips

This week, Walid panicked as he discovered that his weekly scheduled does not fit in one week!  Luckily, it turned out that some activities could be cancelled, so, things got back under control.  Later in the week he came across an interesting articles about habbits of productive people.  It was interesting that the first habbit (about keeping your eye on goal) was discussed last meeting.  Essentially all of these habbits are things that help you stay focus, and to pace yourself while working.  He also came across another article that focuses on the point of pacing.

Wednesday, December 14, 2011

Meeting Minutes - 2011/12/14

This week's paragraphs were reviewed, and additional suggestions for format and style were given (see updated guidelines).  Anil's thesis will be on developing an intelligent ping pong player in Acumen.  At the mid January meeting, Anil will present Yingfu's player and at least one new player that he has developed.  Yingfu will email the latest ping pong game to Anil.

Tuesday, December 13, 2011

Inverted Pendulum

Mingkun tried to express the system of equations of inverted pendulum in acumen.  What remains is to calculate a controlling force, F.  Mingkun decided to approach this as a linear-quadratic-Gausian control problem. He has made some progress, is having some difficulty with using Mathematica properly (it's a new tool for him).  We was stuck for a bit because StateSpaceModel was not a function available in the previous version of Mathematic, and so the system was not behaving as he expected.  Now this problem has been resolved, and he is making progress.  Going forward, he will focus more on the modeling and simulation of the robots rather than trying to develop sophisticated controllers (which is best done latter).

Accelerating Robotic Innovation

Ann Larsson from Halmstad University put together a nice article about our new NSF project on accelerating robotic innovation.

Monday, December 12, 2011

Having fun with Functional Reactive Animation

This week I finished reading through the parts of "The Haskell School of Expression" that are relevant to FRP. In summary, it is a good introduction to the topic, with many examples and detailed explanations.
Now I am about to start studying the implementation of Fran, an early FRP library described in this book. I also plan to get my hands dirty and finally start writing some FRP code!

//Adam

Thursday, December 8, 2011

Paragraph Tips

Well done to everyone who has sent in their paragraph for the first week!  One benefit from writing a paragraph each week is that it is great writing practice.  This post collects some tips and resources that you may find helpful when writing your weekly paragraph.

Writing is an iterative process.  It starts with thinking clearly about what you want to say.  Often, it helps to identify the key ideas or points that you want to communicate.  Once you have a reasonably good idea of what you want to say, you can start thinking about how to say it and to think about your paragraph.

It is helpful to always remember the fact that a paragraph is made of sentences, and that sentences are made of words.  A typical length for a paragraph is about three to five sentences.  In addition to this quantitative guideline, there are also other helpful guidelines about paragraph structure that have a huge impact on writing quality.

A typical length for a sentence is 15 to 20 words.  Sentences, too, have structure.  Good structure makes sentences much easier to read and to understand.

While often not a complete sentence, title should also be chosen with care.  Often, you might find it useful to think of your title as a headline.   Think of titles as an advertisement for your work, because many people will only read what you wrote more closely if the title convinces them to do so.

Finally, each word and group of words should also be chosen carefully.  We never stop learning how to write better.  You might enjoy taking this online test.  Checkout their statistics about word knowledge.  The essential advise for improving your word choice, sentences, and paragraph structure is the same:  Keep things simple and short, and remember that your goal is for the reader to understand and enjoy what you are saying.

Tuesday, December 6, 2011

Automatic differentiation

I reviewed the article, "Mathematical Equations as Executable Models of Mechanical Systems", especially the 4.4 Symbolic Differentiation part.

In this part, "Automatic differentiation" is regarded to be superior to naively inlining all definitions. I did a little search, trying to understand what is all about.

My understanding: Technically, it's not Symbolic Differentiation, for it's not doing the symbol manipulation directly. It's more like one innovative method to accomplish Symbolic Differentiation. Since computer is very fast for dealing with elementary arithmetic, the efficiency is pretty high.

The attempt to express the ODEs has no positive result so far.

Mingkun Yang

Property based testing

Reviewing the Book <<programming scala>> with the Chapter "Functional Prgoramming in Scala" and "Domain-Specific Languages in Scala". Also continue studying the ScalaCheck with the Classes and Objects.
And following a tutorial about the ScalaTest which is an open-source test framework for the Java Platform. The property based test could be described at a high level preconditions of the method under test and specify some aspect of the result that should hold no matter what valid list is passed. In the ScalaTest, properties are specified as functions. Tables-driven and generator-driven property checks are introduced. Generator-driven property checks are performed with integration with ScalaCheck.
regards
yifei

3D Syntax

Since last week, Yingfu has been changing the syntax of 3D-visualization. Instead of requiring the user to declare 5 display3d_... variables, now there is only one variable named _3D is required.  It looks like:
     _3D = [["Sphere", [2,0,0], 0.2*2, [2,0,2],[0,0,0]],
                 ["Box", [0,0,2], [0.5,0.5,0.5], [1,1,1],[0,0,0]],
                 ["Sphere", [0,2,0], 0.2*2, [0,2,2],[0,0,0]]]
One can create multiple objects in one class, and the size, color or even type of a object can variate dynamically.

Monday, December 5, 2011

Catching up on FRP

Adam is working his way through "The Haskell School of Expression" in order to gain an understanding of the classical definition of FRP in preparation for tackling newer literature on the topic.

Sunday, December 4, 2011

Welcome to the Weekly Paragraph!

The Weekly Paragraph is a public record of the activities of the Effective Modeling research group.  Group members are encouraged to send in a paragraph summarizing the results of their work during the week by 5:00pm on Monday.  All paragraphs will be collected and make available to everyone before the meeting on Tuesday.  At the meeting, all participants get a chance to summarize their paragraph and answer any questions regarding their work.

Your weekly paragraph should consistent of four distinct elements:
  • Title:  You start selling your idea at the very first point of contact with the reader's eyes.  Often, this is the title.  Invest wisely in choosing an accurate and descriptive title.  It's fun to think about news headlines when thinking of what a good, effective title should be like.  If you think that a title is a simple matter, think again.
  • Your name:  You did the work and you want to get credit.  Mention your name and the names of anyone involved in the work early on in your news entry.
  • Positive news:  You are reporting an achievement, progress towards your goals and the goals of the group, or an attempt you made at solving a problem of interest to the group,
  • The next step:  Include a clear statement of a problem that you have encountered as well as a description of your planned activity for the coming week.
In addition to the following our guidelines for good paragraph writing, your weekly paragraph should also follow some basic conventions:
  • Write in the third person.  This means that instead of saying "I wrote a paper" say "[Your name] wrote a paper".  Don't sign your name at the end.
  • Get directly to the point.  Eliminate any greetings such as "Hello" or "Dear reader".  Your goal is to create one self-contained paragraph.  If necessary for good writing, you can write two paragraphs.  But the goal is to write exactly one paragraph.
  • Pay attention to visual presentation.  Remember that you can send in HTML, and it is a good idea to take advantage of basic features of HTML such as URL links, formatting, the inclusion of pictures or videos, and so on.
  • Make your examples as simple, elegant, and informative as possible.  Examples are your most important tool for communication.  Make the best of them.
  • If you mention the title of a book or a paper, try to include the name of the author(s), and whenever possible provide a link (attached just to the title) with more information about the book.
  • If you mention a person, try to link (to their name) their personal home page.  If such a page is not available, link to a good document that provides more information about that person.
  • If you mention a phrase that you think might not be familiar to some members of the group, put a link to a reference that defines and provides more information about that term.
And finally, when you've made sure that your paragraph is communicating your report effectively, work to make sure that it presents this information as beautifully as possible.  The more aesthetically appealing your communication is, the more people will be interested in reading your work.