Segway Racing (building self-balancing Lego robots) at Pushchino Winter School (ZPSH)

Through my involvement with neuron (a maker-space in Moscow) I was invited by one of the founders to teach a robotics course at Pushchino Winter School, often called ZPSH.

Pushchino is a town about one hours drive south of Moscow that was built specifically to house a scientific community for biological research. The Winter School, which now runs in March during school holidays, was created to provide Russian students with extra education beyond what they might get in schools, and to increase their intellect and experience, particularly in the sciences. Some of the students come from Pushchino itself, but many come from Moscow and other places in Russia and CIS countries, such is the reputation of the school. Last year a young boy came from Vladivostok by himself, by train, a journey which is 7 days each way! As it turned out after my week at the school I could understand why it has such a good reputation.

Pushchino church, after the heavy snow that accompanied the school

Pushchino church, after the heavy snow that accompanied the school

There are many courses given during the week covering sciences, the arts, philosophy, languages, literature, technology as well as games and plenty social activities. Most of the courses are delivered in Russian, but given my Russian language is still at the four year old level, then we agreed I could run the course in English, which would also allow the students to practice and learn technical English. There was no real need for them to practice their everyday English as the standard that most of them spoke at was very high, probably better than mine, ahem!

Why a robotics course, when I have a few skills to choose from? 2013 is the year of robots! The technical press, conferences and venture capital firms have a strong interest in the subject this year, and hopefully going forward. Whilst we have heard this before there are a number of fundamental drivers to the current trend including low cost and powerful sensors (dIMU, GPS, vision, signal processing, Kinect, GPUs), low cost and powerful controllers (e.g Arduino and Raspberry Pi), free software tools, collaborative/social tools for sharing designs and knowledge, and 3D printing using a variety of materials. This is already manifesting in a strong trend and hobby interest in drones for example, which is also starting to lead to commercial opportunities and numerous well funded projects on crowd funded sites e.g. the robot DragonFly on IndieGoGo received $1.4m in crowd funding. I helped get it there:-) My course was designed to expose the students to some of the technologies and concepts and to create some interest and enthusiasm for robots in particular, but also in technology sectors which are, like Europe and the US, seeing a decline in student interest.

I wanted to expose the students to a really interesting and inspiring robot, and it took me very little thought to remember the awesome Anyways (a Segway style self balancing robot built with Lego Mindstorms) by Laurens Valk. Laurens had done all the hard work already and provides plans to build a few variants of the robot, as well as open source code to keep the robot vertical.

Lego Anyways wows a young student. She was too young for my course, but I think she liked the robot anyway.

Lego Anyways wows a young student. She was too young for my course, but I think she liked the robot anyway.

With that part already available, all I had to do was construct a course of five one hour sessions to explain about PID (proportional, integral and derivative) control, dIMU (digital inertial measurement units composed of a gyroscope and accelerometer), various other robotics related sensors and how they perform in the real world, essentials of robotics programing, then tie the lot together with a team race at the end of the week for a pile of chocolates. A fairly high level conceptual course! *1

One of the cool things about Pushchino Winter School is that the students are in charge of their own time there, so they choose their own courses, whether they go to them or not, and whether they go to any of the other activities or not. Us teachers are there to run our course if it is chosen, to provide a bit of guidance to a team of students we are responsible for, and to organise things around the students. It’s an empowering idea that made sense to me, and resulted in really motivated students, So, the first thing I had to do was sell my course to the 12 – 17 year olds who might want to attend. Cue the dancing robots! Luckily after my presentation I got enough students to fill my class.

Racing Lego segways

Racing Lego segways

I’ve almost written enough, so I will finish with a few photographs from the week, both from my robotics course and from my Lambda Team who I spent a lot of time with as we kept each other right through the week, played games *2 and had fun.

 

Go Lambda Team at ZPSH

Go Lambda Team at ZPSH

Two of my students at their final presentation

Two of my students at their final presentation

Free range Lego Segway trying not to get in the way!

Free range Lego Segway trying not to get in the way!

Remote control using a body mounted dIMU

Remote control using a body mounted dIMU

Lego Anyways - star of the show!

Lego Anyways – star of the show!

If you are interested in running a similar robotics course please get in touch and I will pass on my notes and code.

Thanks go to:
Laurens Valk for the Anyways
Xander Soldat for the RobotC driver suite
RoboMatter for RobotC
All the students at Pushchino Winter School for their curiosity, enthusiasm and Russian food tips!
All the other volunteer teachers for their interest, helping me out when I got stuck which was often, and for late night vodka and food.

More photographs at vk.com/moosooboo

*1 I make no apologies for delivering such a high level and conceptual course, although I feel that some people were slightly shocked by the lack of in depth theory. We still need theory, and specialists with a deep knowledge of subjects to guide the rest of us and to push the boundaries of the subject. But, the knowledge space is changing, has already changed, thanks to google. In seconds we can find a breadth AND depth of information on any subject. We can find a range of views on subjects. We can find objective and accurate information that is not skewed by memory failure or personal agenda. We can find source code and tools and libraries written by others that we can build on. High level, conceptual and multi-disciplinary education and learning has a real value to me, and I think to us all. Personally I think it is great, thanks Google!

*2 It was interesting watching the ‘games’ that the Russian students played. They were clearly having fun, but the games were structured to build empathy, memory skills, reactions, vocabulary, reflexes, body language or knowledge. e.g. we played charades, called ‘crocodile’ here, a lot, which builds vocabulary, none spoken communication, empathy but still was fun and often had us in stitches at peoples mimes. Sometimes ‘games’ at schools feel more like lessons or extensions of the lessons, but these felt like games with purpose. A subtle difference, but I noticed it, and was told it is deliberately engineered this way by the organisers.

In a spin!

I am proud to announce that today the Wildlife Trusts have launched the virtual tours that I spent 2011 cycling around the UK producing.

UK cycle tour

UK cycle tour

Project homepage: http://www.wildlifetrusts.org/360

Virtual tour directory: http://www.wildlifetrusts.org/node/24992

A bit of a story about the project: http://www.wildlifetrusts.org/news/2013/04/24/remarkable-record-uk-landscapes

The publicity is going well, we were on the homepage of the Guardian website today, with the story at: http://www.guardian.co.uk/environment/gallery/2013/apr/23/mountains-and-rivers

Thank you to all my Twitter friends and those who left me kind comments on my various websites. Your support kept me going.

Status

Not much to report at the moment, hence the lack of posts! I’m finding the demands of being a house husband, adjusting to living in a very different foreign country, learning the Russian language, learning a couple of new programing languages (RobotC and leJOS), applying that to robotics, a few other smaller projects and finding a bit of energy at the end for my wife, friends, family and riding my bike to be hard going! Doing too much, but as my best friend says, very much First World Problems™, so trying to keep in perspective, some days!

A head full of robots

A head full of robots

So, I am mostly concentrating on the Coursera Mobile Robotics course and learning leJOS via a free online course Introduction to Mobile Industrial Robots Fall 2012 at Berkley kindly pointed out by one of the leJOS team members.

Poor Marlon, I might get him finished one day.

1 year living in Moscow – a virtual tour of Moscow

I’ve nearly been living in Moscow for 1 year now, and it’s been quite a time. It’s an incredible city and her people are amazing, nothing like what I had expected at all. I’ve made a lot of photographs in my time here, but also a few handheld panoramas. Here they are woven into a virtual tour, a few of the views of Moscow I have seen by foot and by bike as I explore.

Virtual Tour of Moscow, Russia


 
Use the dashboard at the bottom to go full screen and other things. The menu on the left allows you to pick different views, the menu on the right pulls up a map. These are really cool on an iPad or other tablets where you can navigate round by moving your tablet up, down and all around. Enjoy!

RobotC Sublime Text 2 plugin package

I’ve written a plug-in package for the excellent Sublime Text 2 for creating and editing RoboMatter RobotC code for Lego Mindstorms NXT and other RobotC platforms. Allows you to write RobotC code on Mac OS X, Linux and Windows in a very clean and fast text editor. Does not compile or debug, you still need the IDE for that. It’s only v0-2 so far and a bit rough around the edges, but I’m finding it quick and elegant and it’s great to be able to write code on Mac or Linux as I’m not a Windows fan.

Using Sublime Text 2 to create and edit RobotC files for Lego Mindstorms

Using Sublime Text 2 to create and edit RobotC files for Lego Mindstorms

Download it from my MooSooBoo Github and give it a go. You only need the .sublime-package file. Let me know what you think.

Functionality

The plug-in provides the following functionality:

  1. C syntax color formatting via the Command Palette.
  2. Basic C code snippets via the completions list.
  3. RobotC functions and variables completions via the completions list.
  4. Search for relevant RobotC functions and variables by category via the completions list.

All RobotC platforms are covered including Lego Mindstorms NXT, VEX, Cortex, PIC, Tetrix and Arduino, although there may be emphasis towards Mindstorms NXT as that is my primary platform.

Installation:

  1. Copy RobotC_v*-*.sublime-package to ~/Library/Application Support/Sublime Text 2/Installed Packages on Mac OS X. Here are Linux and Windows installation instructions.
  2. Start Sublime Text and the package should auto-install.

There are a few ways to check this, the easiest is to open the Command Palette and type ‘syntax’ and look for ‘RobotC’ in the list.
Once the code is a bit better I will get it registered to install with the excellent Package Control.

Usage

Once RobotC syntax selected. The main RobotC functionality is in the functions and variables completion list.

  1. To auto-complete a function or variable, start typing a function name, variable name or code snippet name using lower case and access the completions list with CTRL+spacebar. Each value within a function can be jumped between with the TAB key.
  2. To search for all the functions and variables within a RobotC category, start typing a category name in UPPER case e.g. ‘BLUETOOTH’ will list all the commands related to bluetooth. (See the file ‘BuiltInVariables.txt’ included with the RobotC IDE installation, or look at the API titles.)
  3. You can also search in similar way via platform name shortcuts (see the file ‘BuiltInVariables.txt’ included with the RobotC IDE installation) e.g. ‘NT’ for Mindstorms NXT.
  4. To access code snippets start typing their name in the completions list e.g. ‘main’ or ‘for’. Have a look in the RobotC package directory for current snippets.
Using completions for faster RobotC coding

Using completions for faster RobotC coding

Versions:

  • 0.1 – getting something working.
  • 0.2 – full functions and variables completion with TAB between values. Search via category and platform. Descriptions improved.

To do:

  1. Create a RobotC specific version of the .tmLanguage file?
  2. More code snippets e.g. while loops.
  3. Code snippets often come up twice as the scope of RobotC is the same as C ie .c files. Fix this so snippets only come up once. If this bothers you at the moment, delete the .sublime-snippet files in the RobotC package directory.
  4. Figure out a quick way to get the code into the RobotC IDE.
  5. Add support for RobotC Driver Suite from Xander Soldat.
  6. Review changes from RobotC 3.55, and build in.
  7. Test it:-))

Bugs:

Report to ‘moo >-at-< moosooboo >-dot-< com’

Attribution:

  1. RobotC.sublime-completions is built around ‘BuiltInVariables.txt’ provided with the RobotC IDE installation.
  2. RobotC.tmLanguage is currently a lightly edited copy of the file ‘C.tmLanguage’ included with Sublime Text.

License:

Still not figured this out, but use as you like with a link or credit to myself, and also credit to the files listed in Attributions.

Update 06-03-13

The nice guys at Robomatter gave me a mention http://www.robotc.net/blog/2013/03/04/sublimetexteditor/ Thanks guys!