Institute for Personal Robots in Education Blog

Calico 2.0.4: Control real robots with Logo

There is a new version of Calico, version 2.0.4, ready for download. This version fixes a few bugs, new examples (such as accessing the Arduino), and adds a new language (Logo) for Calico. Additions to this version include:

  1. Robot simulator fixed on Mac (issue with Cairo.Context) (Reported by Keith O'Hara)
  2. Select languages to load at startup time from menu (need to restart Calico)
  3. Icons on toolbar are now smaller to allow more room on screen (suggested by Mark Russo)
  4. Added zoom in, zoom out, and default zoom to toolbar (suggested by Mark Russo)
  5. Added ability to define languages in terms of other languages
  6. Added Logo, the language, to Calico; fully integrated
  7. Fixed bug in showing proper title when switching languages
  8. Added Arduino example and DLLs (see Calico Nifty Projects)
  9. Added animated "flapping butterfly" to indicate running program (suggested by Jennie Kay)
  10. Fixed a pixel's alpha value issue in Graphics when reading jpg's on Mac/Linux (Windows can't read jpgs) (fixed by Keith O'Hara)

The biggest difference in this version of Calico is that we added the ability to add new Calico languages which are written in other Calico languages. As a test of this ability, we added Logo, which is written in Calico Python. However, you can't tell that Logo is written in Python... it appears just like any other Calico language. (To add it, go to menu -> Calico -> Languages, select Logo and restart Calico).

Calico Logo is based on PyLogo, an old, not fully developed nor tested version of the language, but is largely complete. We tweaked it just slightly to make it a full citizen in the Calico world: it is cases sensitive, and you can import any of the Calico modules and they appear as native Logo code. That means that most anything that you can do in Calico Python, Jigsaw, or Scheme, you can do in Logo.

For example, here are a couple of short Logo Myro programs:

;; Import Myro and show a picture:
import "Myro Myro.makePicture Myro.pickAFile


;; Import Myro and control a simulated or real robot:
import "Myro
Myro.init "sim 0
Myro.forward 1 2
Myro.turnLeft 1 3

There are many things that can be refined with Calico Logo (currently can't call all versions of a function, can't create objects from Python classes yet, little documentation, etc.) But it shows how easy it is to add a new language to Calico to combine it with the existing Calico libraries. (If you are interested in developing Logo, or other languages, let us know).

For more info, including a list of all changes in Calico2, see:

logoexample.gif13.39 KB

Post new comment

  • Lines and paragraphs break automatically.
  • Allowed HTML tags: <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
More information about formatting options