Tuesday, 13 December 2011

Installing Player/Stage in Ubuntu 11.10 (Oneiric Ocelot)

This entry is my guide to installing Player/Stage on Ubuntu 11.04 updated for the next version of Ubuntu following what I learnt here.

If you have any problems or questions that aren't addressed here then I recommend you email the playerstage users mailing list.

Friday, 2 December 2011

Upgrading to Ubuntu 11.10 with player/stage

Yesterday I thought it would be a good idea to upgrade my laptop to 64-bit Ubuntu 11.10 (Oneiric Ocelot), this turned out to be a TERRIBLE idea since I've now spent the last 7 hours trying to reinstall Player/Stage. JOY.

In this post I'll quickly go over what I did that was different to the install for Ubuntu 11.04 (a comparative breeze). A more user-friendly guide to installing Player/Stage can be found here.

Let's get to it!

Monday, 3 October 2011

Installing Player/Stage in Ubuntu (Natty Narwhal)

A few months ago I wrote a guide to installing Player/Stage on a clean Natty Narwhal Ubuntu install for the robot lab I work at. This was on a protected wiki, but I think maybe it'd also be beneficial to the world in general, so I'll guide you through the installation process (with pictures!) in this blog entry.

I'm pretty sure this guide will work for any version of Ubuntu that has Ubuntu Software Centre on it, but I've only tested these instructions for Natty. If you followed these instructions to install Player/Stage on a non-Natty version of Ubuntu do leave a comment so that others can know whether it works.

A newer version of these instructions for Ubuntu 11.10 can be found here.

If you have any problems or questions that aren't addressed here then I recommend you email the playerstage users mailing list.

Monday, 26 September 2011

Microphone work: Finding out your sample rate.

Goodness it's been a while since I updated my blog! This is mostly because I've spent the past year or so designing and building a new extension for the epuck robots. Details about that I'll leave for another time, although this blog entry is somewhat related.

I have a circuit which takes a signal from a microphone and feeds it into a PIC microcontroller. This PIC then performs Analogue-to-Digital conversion and stores the data in memory for me to mess with later.
The process of reading in the signal and storing it in memory is known as "sampling". A single piece of recorded data is called a "sample", the rate at which you record the information is called the "sample rate".

Are you following me so far?

The sample rate is super useful to know if you plan on doing anything clever with your data. For my work I need the sample rate to be as fast as possible so I have my PIC recording samples in a loop until its memory gets full. This means I don't actually know how fast this is happening, so I need to measure it.

Read on to find out how I did this, and for some handy MATLAB code!

Wednesday, 21 April 2010

New Edition of the Manual Released!

I'm pleased to announce that the latest version of the Player/Stage tutorial has been released on my website here:
player/stage manual
Hopefully it'll also be appearing on the official Player/Stage website soon.

After far too long I've updated the old manual to include stuff in the errata and I've also cleared up a few problems. Specifically, it has been pointed out that the manual code was crap and didn't actually work properly. Also the old manual was too ambiguous about movable objects.


Wednesday, 14 April 2010

Cross Compilers for the lpuck

Firstly, I should apologise for this blog post because it's not about the usual PlayerStage stuff. It's instead about how I made a cross compiler for a specific bit of hardware that we have in the York robot swarm and at BRL. It's not really useful for anyone but me...

Wednesday, 10 March 2010

Player/Stage on Eclipse

Today I've found myself trying to set up Eclipse as my IDE for Player/Stage after moving some files and somehow deleting all the settings. I'm using an Eclipse specifically for C/C++ development, which you can get here: http://www.eclipse.org/downloads/

This is how I set it up for Player/Stage:

Tuesday, 9 March 2010

Player/Stage API

Now I've finally found time to work on Player/Stage full time I've begun to make a handy API for the E-Puck robots we have here in York. The first part of this has been building a Stage model of the E-Puck and then writing an API to interact with all the device proxies.

The end goal is to have an API which can be used to communicate with simulated robots, but will also work with a real robot. The Player/Stage website is very insistent that this is possible!
Source code

Thursday, 25 February 2010

York Doctoral Symposium

It has been a while since my last blog update. Mostly this is because I've been preparing a paper for the ANTS 2010 conference.
What I want to mention in this blog entry is the symposium I'm helping to run!

It's a conference that's run annually by my department which is organised by the PhD students. The idea is to give us youths and young researchers an idea about what it's like to actually run a conference and review papers and select them to create a program. There's also the organisation of logistical stuff like location, food advertisment which is the side I'm more involved with.

The organisation process has only been going on since February but I've learnt a lot about interacting with people and just plain getting stuff done. Right now I'm having to NETWORK and find people in industry who are able to sponsor the event. If I can get that done well then the conference could be completely free for everybody. I have ideas anyway.

I encourage any PhD students reading this to submit their work to the conference anyway. Last year there were only 10 submissions and 8 presentation slots, I'm hoping this year we can do a bit better. I have plans for getting some really tasty prizes for papers, so it's worth submitting some work, preliminary results totally count as valid research (so long as the science is sound of course)!

Wednesday, 16 December 2009

Differential drive to forward/turnrate conversion

When controlling a differential drive robot like the epuck, I like to be able to control the speeds of the left and right wheel with my code. This allows you to easily program simple things like Braitenberg vehicles because you can directly interact with the wheel speeds.

HOWEVER. With Player/Stage if you're using a differential drive robot you can only interact with the motors using the robot's forward speed (metres/sec) and its turning rate (radians/sec). In order for your left and right wheel speed controller to properly interact with Player/Stage you need to convert between the two. This involves some pretty horrible maths and kinematics type stuff. For the lazy, here is the conversion between differential wheel speeds in metres/sec into forward speed and turn rates for Player/Stage. Instead of left and right speeds though we use inner and outer wheel speeds because the wheel on the inside must be slower than the outer one because it travels less far and this affects the maths.

newspeed = Inner_wheel_speed
newturnrate = (Outer_wheel_speed - Inner_wheel_speed)/distance_between_wheels
All measures are given in metres/sec.