Myro3 Development

From IPRE Wiki
Jump to: navigation, search

This page documented our progress towards Myro3 and Pyjama during the Summer of 2008.

Please see PyjamaDevelopment for more recent information.

August 1, 2008

  • Richard
  1. Final check-in for the summer, merged with trunk.
  2. Full Fluke camera support (except blob)
  3. Embedded simulator with mouse controls
  4. Many GUI changes
  5. Installer works properly targetting any directory as long as MSRDS is installed
  6. Set Scribbler COM port as a parameter to init(), like Myro 2

July 7, 2008

  • Richard
  1. IronPython bindings for current C# functions
  2. Python file editor with "run" button
  3. GUI Command line changes (stdout, stderr redirection, command history)
  4. Robot configuration editor, allows friendly names and icons for robots
  5. GUI changes (new interface for toolbar area, about box, and others)
  6. Basic installer
  7. Merged back into trunk (at current alpha release), started new branch "richard-dev-3"
Next:
  1. Fluke camera (with view in GUI)
  2. Simulator view
  3. GUI changes per discussions with Jared and Stewart
  4. Improve installer
  5. Work with Doug to introduce a config file that works with shared computers
  6. Work with Doug on client-server setup
  7. Bluetooth COM port detection

June 27, 2008

  • Richard:
  1. Modified communication backend to work with Fluke-style commands
  2. Added Fluke IR and LED services
  3. Support for "pull" (before was "push" only) in sensor sevices in Vector service
  4. Worked on Simple IDE - manifest loading, embedded control panel and IronPython command window
  5. Latest code is in "Myro-dev/branches/richard-dev-2", follow the instructions in the Myro3 Getting Started Guide, but checkout this branch, not the trunk!
Next:
  1. IronPython Myro bindings
  2. Installer
  3. Continue with Simple IDE (editor, embed simulator)
  4. Fluke camera services

June 23, 2008

  • Richard:
    Since last update:
  1. Many changes to backend and architecture, in service implementation, adapters, runtime service discovery, and configuration
  2. Running on Scribbler, Create, and NXT
  3. Myro 3.0 Developer Manual, contains documentation on backend and "New robot tutorials"
  4. WPF control panel (Demos\MyroControlPanel)
  5. Merged from branch "Myro-dev/branches/richard-dev-1" into trunk "Myro-dev/trunk/IPRE", started new branch "Myro-dev/branches/richard-dev-2".
This and next week:
  1. IronPython bindings
  2. "Mock-up IDE": split view with command line, maybe loaded file, and control panel, with room for integrated simulator window
  3. Start on integrating simulator
  4. Start on installer
  5. Start on Fluke services (start with LEDs, camera afterwards)

May 27, 2008

Ben, Doug and Tucker talked via telephone. Ben said that he would work on three main points this week:

  1. Coming up with Run and Build instructions for Windows and Linux
  2. Incorporating ideas from PythonCommandLine.cs into our PythonShell.cs
  3. Continuing to work on the Text Editor (search, replace, etc), the PythonShell, and integration between the two (such as adding an F5 which will load the file in the Shell)

Doug will continue overall system setup and configuration.

May 19, 2008

  • Richard:

This week:

  1. Created TestPanel project (Demos/SimTestSuite), with displays and controls for drive, IR bumpers, light sensors, IR sensors, line sensors, and tone generator. Currently set up for the real robot (not simulation). This panel will grow into a sensor and control panel that can be embedded in Pyjama.
  2. Unit tested simulation and real robot using SimTestSuite. Fluke IR sensors and line sensors do not work, I will investigate this. Drive, IR bumpers, light sensors, and tone generators work on real robot. LED not tested yet (will add next).
  3. Small change: config.xml files hold only manifest.xml filenames, not full paths.
  4. Started a new page: Writing a Myro3 program

Week after next:

  1. Create VS Pyjama project.
  2. Investigate VS Express problems compiling our code.
  3. Investigate Fluke IR and line sensors (maybe just not implemented yet).
  4. Simulation is still drive and bumper only. It doesn't look like it's possible to add the other sensors and actuators (except camera), so I will implement IR, light, line, LED, and tone using "dummy services" that run when the simulation environment is started.

Doug and Ben discussed this week's goals. We need to get a common base using IP2B2. Currently, IP2B2 won't build on Linux and Mac, and I was having trouble getting the Mono dependencies on Windows setup. Ben will tackle Windows, and Doug Linux. Then we can make more progress on all fronts.

May 12, 2008

We were unable to have a telephone conference, but exchanged email.

Agenda: Update on progress, questions so far.

Present on conference call:

  • Richard (status, and goals for next week):
    1. I modified the VS solution to work with MSRDS 2008 CTP, .NET 3.5, VS 2008. No code changes were required.
    2. Was able to run and modify existing code that hosts a DSS node (no need for dsshost.exe).
    3. Was able to run existing Myro drive control in simulation (Myro interfaces -> MSRDS Services -> Simulator).
    4. Started Myro3 Getting Started Guide

For next week:

By next week, I will try to add as much myro functionality as possible to the simulator, currently only the drive and bumper seem to be working, but it may be possible to add more. I will also unit-test the existing Myro API through MSRDS on the robot and in the simulator, in the process updating the IronPython tutorials to reflect any changes. I will also create a VS2008 project for PyJama.

  • Ben (status, and goals for next week):

Status: I've checked in some improvements to the Python shell, including command history (up and down arrows). IronPython 2.0 needs Microsoft Scripting support and looks like it won't compile under Mono on Linux.

Goals for next week:

    • Continue Python shell work.
    • Get Pyjama to work on Linux with IronPython 2.0 beta 2.
    • Look at communication between Pyjama and MSRDS.
  • Doug (status, and goals for next week):
    1. I was able to get IronPython2b1 (directly, not inside of Pyjama) to talk to the Scribbler robot over a serial port. This uses our old Myro2 Python code to make a direct connection. I had to use a SerialPort C# base that doesn't support much... no flush, for example. But it works!
    2. I've started working on Pyjama/myro/graphics.py to replicate the basic graphics that we had in old Myro2 that were based on Tkinter (Tk graphics in CPython). This looks like it will work.
    3. Made some notes on IP hosting in C# (see previous email)

For next week:

I plan on having a full direct connection to the Fluke over serial over Bluetooth, download images, and display them. I'll be using the old Myro2 Python-only code.

May 8, 2008

Present on conference call: Richard Roberts, Ben Johnson, Jared Jackson, Stewart Tansley, and Doug Blank. Call hosted by MSR.

Our initial kick-off meeting for developing Myro3 and Pyjama.

Decided on weekly meetings on Mondays at noon (EDT), 9am EDT. Will use ConferenceXP for future meetings (if available). Jared said the MSR might have their machine down next week, and Ben will need to check with Keith and Jay to see if GATech's ConferenceXP is available.

Doug started the meeting by targeting the goals of the project to be the students, teachers, and pedagogy. We hope that the codebase will be useful for longterm development on pedagogical and robotics issues.

We discussed versions of current projects and decided on:

  • Mono 1.9
  • IronPython 2.0 beta 2
  • MS Robotics Studio 2.0
  • Visual Studio 2008

Jared mentioned that they will explore MSRS embedding. That would enable us to talk directly to internal parts without starting up separate processes.

We discussed goals for next week, and targeted:

  • Richard
    1. revise the Myro/IPRE C# code to work with current MSRS 2.0
    2. update the IronPython Tutorials to talk to MSRS 2.0
    3. create a solution for Pyjama C# codebase for VS2008 and add to CVS
    4. Future: develop MSRS services and simulations for Fluke, Gyro
  • Ben
    1. move to IronPython 2.0 in Pyjama
      • update hosting interface
      • make exceptions operate at Python level rather than C#
    2. continue to make Pyjama functional as an editor
      • hook up search/replace, prev, next
      • connect up accelerators to menu
    3. shell functionality (history, etc)
    4. IDE/shell integration
  • Doug
    1. add missing modules
      • serial port
      • jpeg/gif/png decode and display (Jared says: see System.Imaging)
      • zelle graphics API support
      • .ini config file for loading/saving defaults

We decided Codeplex would be the place for tracking issues, and releasing packages.

Overall goal for next week: use Pyjama to talk to Fluke through Direct Connection, and to talk to a current MSRS simulation.