Tuesday, 18 March 2008

First off the production line

Here is a sneak peak of the first of many Nao's to come off the production line.

View the Mov or Wmv.


Friday, 31 August 2007

Devantech Drivers for MSRS 1.5

After an excesive delay, I have finally put up the Devantech drivers for MSRS 1.5 on CodePlex at http://www.codeplex.com/DevantechMSRS.

Not many code changes, just a lot of cleaning up the code and making it live in /Apps instead of /Samples/Platforms so as to keep it seperate from the other MS samples.

One interesting change was made to SonarPan, so that it can deal with multiple sonars, or pretend sonars, take the initial pose presented by the Generic Sonar contract and alter it on the fly relative to the servo that controls the panning and pass this on to any consuming service. This was done, so that my SLAM services can accept the now well-posed sonar readings and chuck them straight into the maps.

I've also put up all my SLAM code to codeplex and will move it out of setup mode in the next couple of weeks. The basic algorythm and test app work fine, but a fair ammount of work is still needed to make the MSRS service which wraps the DLL a pleasure to use. So far I've tested it with the traxster's IR using the DLL, and can get nice non-slam maps from the simulator with the Pioneer's laser.

I have a heavy workload for the near future, so won't be able to devote much time to continuing this - If you think you might be interested in helping complete porting the SLAM to MSRS, please get in touch.

Thursday, 23 August 2007

Kuka Educational Framework

Kuka has released a very thorough collection of tutorials about controlling their industrial robotic arm using MSRS.

It covers many real-world robotics subjects including: forward and inverse kinematics of articulated chains, syncronized velocity / acceleration control, sensor feedback, mobile platforms and task excecution architectures.

This is probably the most advanced collection of services for MSRS so far, complete with clear, detailed documentation. Well done Kuka.

Tuesday, 14 August 2007

Aldebaran's Nao selected for Robocup Standard League

As reported on the Robocup 4 legged league site, the Nao has been selected for the Standard League Robocup 2008 humanoid football competition. I look forward to watching it!

And for full disclosure, I can now happily say that I have taken work with Aldebaran and hope to play a part in bringing the Nao to next years games. May the fun begin...

Saturday, 7 July 2007

Aldebaran Nao MSRS Video

For the last month I have had the pleasure to work with Aldebaran Robotics on bringing their Nao humanoid robot into the Microsoft Robotics Studio simulation engine.

The last few days of work was focused on creating a video of the Nao doing the Haka.

From the outset it was a pleasure working with such a pretty robot and a great team.

I also take my hat off to the MSRS team who have made such a great environment for robotic simulation. Although the learning curve can be pretty steep the end results are well worth the effort.

I hope that in the coming years Nao will play a big part in robotic soccer and many other realms.


Saturday, 26 May 2007

Elephant in the cupboard

The register has good article called "Why do robot experts build such lousy robots?" which explorers some of the less talked about aspects of this "cusp of a revolution", such as why "making and playing with robots evidently beats using and ignoring them" and Thrun's "apparently simple challenge: how a computer vision system might detect moving objects and predict their motion, a task at which frogs are still in the lead".

Most of it is bang on, but there are some hopeful signs out there in machine learning (most of which fall into the overflowing "soon to be released" category.

Sentience stereo vision slam
braintech volts-iq *** ITS ALIVE! ***
SRI Slam as a webservice
Incremental of Linear Model trees PDF

[*** Update June 12th 2007] Volts-IQTM Community Technical Preview
is released. Look forward to checking it out...

Wednesday, 16 May 2007

Map tests with a Traxster using IR

I think most researches would laugh at the idea. Why bother trying IR when you could use a Lidar ? :Budget.

The Traxster is a rugged tracked robot from RoboticsConnection that often comes with a pan-tilt head containing three Sharp IR sensors that have a max range of 80cm.

The image on the left shows a 0.5cm per pixel map of the traxster panning its head and recording the distances from the three IRs and sending it to an occupancy grid using a cone model of width 0.1 radians and an obstacle depth of 2cm.

As none of the IRs are located above the center of rotation, there is a little work needed in order to place them correctly so that when they pan round, the three sets of data point to the right places in the map. Fortunately, I had all that code already, so it was just a question of saying distanceSensor[i].AttachToServo(x,y,theta). Where the x,y and theta are the offsets from the servo's center of rotation. You can see the space left by the head as it turns as a grey area within the robot's rectangle.

However, as with all tracked vehicles with skid steer, the odometry can be pretty misleading when skidding on the spot. The image on the left shows a 2cm per pixel map. The odometry path is shown as a blue line. You can see that odometry would have made the robot go through an obstacle, but once fed into grid slam, the estimated true position has diverged away from the odometry leading to a slightly better map.

The robot was controlled from within Microsoft Robotics Studio using a joystick, sending Pid velocity commands. Only by driving very slowly to avoid skidding, and panning the head continually was it possible to make a consistent map. It might be possible to correct rotational error by fusing the odometry with compass data, but even this is unlikely to work on large scale maps where the IRs often read max range. My next experiments will be with sonar.