All I want for Christmas is a drum kit ballpit

At EMFCamp in 2016 there was a musical ballpit, and ever since having a go in it (which was my first ever ballpit experience) I have wanted to build one.

This has become something of an ongoing project. First, I contacted some soft-play suppliers to find out about the cost of balls, and it turns out that soft-play balls (proper ones for use in commercial soft-play facilities) cost quite a lot. 15p+VAT each. Which doesn’t sound like a lot, but to fill a large paddling pool that was going to be something like £2,000, and even if I tried to bodge it with a smaller paddling pool it was going to be really very expensive indeed.

So plan B was formed. I figured that 5p a ball was OK, and I wasn’t bothered with quality. So for the last 18 months or so, every time I’ve seen kids play balls on special offer (in the supermarket, in B&M, in Lidl…) I’ve bought them as long as they’re £5 or less for 100. They pile up. Slowly, but they pile up.

There’s more to the problem of building a drum-kit-ballpit than just having a lot of balls though. You need to make the balls do something – in particular, motion in the ballpit needs to trigger sounds. I did this through a mixture of OpenCV and pygame, in Python, and if you’re interested you can see my hacky code here: on github. Basically the program runs the webcam and plays a drum sound if it sees motion in specified parts of the image. The readme on that project describes in more depth how the code works, if you’re interested in the details. Point the webcam at a ballpit, set the program running, bang the drums.

At the BCS Mid Wales show and tell last week I put the components together – paddling pool, balls, tripod, and motion detection. I hadn’t actually tested it all together before the evening, although I had got Helen to agree to sit in it. As you can probably guess from this slightly giggly video (thanks Colin):

Ballpits are fun.

Building a retro-games controller

I decided to build a retro games controller based on something I saw on the internet. There are lots of discussions and videos and howtos, but to be honest I’ve never been particularly good at following instructions so I just bought a kit from arcade world (the two-player xin-mo board one – here’s a link) and had a go at bodging it together.

It came with some instructions. Here’s a picture of the instructions, along with a pound coin for scale. I did read these instructions. Then I googled, to find slightly more detailed instructions. Then I went “fuck it” and just got on with the job.

Prototype #1 had 6 buttons per player (with select and start, too). It was based on a plank we found in our garage when we moved in.

The buttons look pretty cool when they’re attached. Nice bright colours. Tidy.

Then I wired it up. The kit came with “easy” clip-together wires which had a jumper at the board end and a metal clip at the microswitch end. I can tell you now that it is remarkably easy to wire a joystick up incorrectly – upside-down is my most common error.

However, this wiring and board had a lot of good properties for a prototype.

  • If I plugged it in to my laptop (running linux, of course), and ran jstest on /dev/js0, and pressed the buttons, they all sent some kind of signal
  • If I plugged it into a Raspberry Pi running Retropie it identified as a controller
  • Plugged into the laptop it could control, badly, a driving game. Accelerate and reverse were unintuitive, but left and right worked
  • The joysticks might have been upside down but they felt really cool to play

There were also a couple of negative aspects, though.

  • I couldn’t get retropie to calibrate the thing as it was expecting more buttons on a xin-mo (I thought)
  • The left and the right joystick both controlled the same character so 2-player didn’t really work
  • The left and right controls were too close together anyway for comfortable play

So I removed the components from the board, smashed it up with a hammer, and put it in the woodpile. Time for a new plank and a new start with a little more understanding. Not too much understanding though. There were a couple of big mistakes left to go.

Removing the components from the board is non-trivial as the metal clip on attachments don’t come off easily – indeed, once they’ve clipped on they’re not supposed to come off at all. So a small screwdriver and a bit of leverage was required every time I wanted to change the wiring. For example, to remove the components from the old board, and then to make sure the joysticks were wired the right way up. Again. Prizing the connectors open was fiddly and slippery and generally not straightforward.

Of course having bent the metal clip open they then started falling off all over the place during testing. So then I had to squeeze them all shut again so that I wasn’t debugging software and hardware at the same time.

Anyway I got it all together on the new board with each button attached to the xin-mo interface on the right pin (eventually). Tested it on the laptop – worked OK. Tested it on the retropie set up and I could navigate menus, select stuff, and even start a game. There is a modification you have to make to some config files to get the controller to identify two joysticks, so I did have to edit some stuff (instructions here: on the retropie site). Getting closer.

Still one big problem though. Some of the buttons were behaving really strangely. Back to jstest to see what’s what…

What jstest gives you is a big table of inputs and when you touch the controls, it shows you what’s coming in for each input. The snippet below shows me moving the joystick (Axes up and down), and pressing button 0, 1, 2, and 3 in turn.

Axes:  0:     0  1:-32767 Buttons:  0:on   1:off  2:on   3:off   ... 
Axes:  0:     0  1:     0 Buttons:  0:on   1:off  2:on   3:off   ... 
Axes:  0:     0  1: 32767 Buttons:  0:on   1:off  2:on   3:off   ... 
Axes:  0:     0  1:     0 Buttons:  0:off  1:off  2:on   3:off   ... 
Axes:  0:     0  1:     0 Buttons:  0:on   1:on   2:on   3:off   ... 
Axes:  0:     0  1:     0 Buttons:  0:on   1:off  2:off  3:off   ... 
Axes:  0:     0  1:     0 Buttons:  0:on   1:off  2:on   3:on    ... 

Now the more observant reader will notice that some of these switches default to on, and others default to off. Whoops. Turns out that microswitches have three prongs to attach wires to and it actually matters which ones you choose. Who knew? On the side of the switch, top prong good, bottom prong bad.

Finally there were a couple of buttons which didn’t have leads (maybe I lost a piece of wire? or maybe they were spare buttons?). I soldered those in with a spare cable I stole from Tom of Sam and Tom industries. Doesn’t everyone do their soldering on the cooker?

Finally tested, I put a base plank on so that you can have the controller on your lap on the sofa as well as on a surface. This is the finished product:

And this is Sonic the Hedgehog II on my nice big telly.

BCSWomen Lovelace Colloquium 2018

The 11th BCSWomen Lovelace Colloquium was held just before Easter, at the University of Sheffield with support from Sheffield Hallam University. Regular followers of this blog will know that the day has a well-defined format, with student posters, speakers, a panel on computing careers, and a social at the end of the day. We also have a cake sponsor, so we also have too much cake.

cake

This was the first colloquium since I started the conference in 2008 where I wasn’t in some sense the conference chair. Cardiff, in 2010, was chaired by Miki Burgess (and I didn’t even make it to the event), but I was still involved in the financial side and the lineup. This year, I handed over properly to Helen Miles and was officially just deputy chair. We had two excellent local chairs in Heidi Christensen (tUoS) and Deborah Adshed (SHU), and our long-term supporter Amanda Clare came to lend a hand too. But Helen was in charge.

Any worries I might have had about the running of the event evaporated on arrival. Due to some bad fog in Aberystwyth I set off much later than anticipated (not wanting to drive with zero visibility), and then we got lost in Stockport just for fun, so I turned up about 4 hours after I had planned to arrive.

On the one hand, whoops!… on the other hand, Heidi, Amanda, Helen and company had managed to do pretty much all the pre-event stuff without me. Magic.

On the day it was actually huge fun helping out without feeling I had to go to every session. So during the afternoon talks I helped tidy up and made sure the sponsors and stallholders knew what was going on, and collected poster contest judging results etc. which helps the day go more smoothly and left Helen to be the figurehead.

Indeed this was, I think, the fourth Lovelace where Helen, Amanda and myself have been on the helper staff together. Between us we are quite good at working out what needs to be done and just getting on with it. To be honest, seeing Helen in the chair was just brilliant. Partly because she did such a great job, and partly because for the first time ever there was someone at the Lovelace more stressed than me (sorry Helen:-).

Here’s me and Helen at the evening social – relaxing at last.

me and helen

Robot club coding project

In Aberystwyth Robotics Club we run after school robot-based activities for local schoolkids. This year we’ve just started a new term, and we decided to take in twice as many new starters as before. We decided it’d be a good idea to try being more open and let more kids have a go; it doesn’t matter if they haven’t been keen enough in the past to try out computing or robotics, what matters is they’re interested now and they want to give it a go. If they drop out at Christmas, that doesn’t matter, they’ve given it a shot.

So we are running two parallel sessions for the complete beginners. Half of them are doing a new “coding taster project” and half are doing the normal robot club starter, which is soldering, circuits, arduino basics and a bit of lego robots, and then we swap. I’ve been running the coding half, and we’ve been hacking around with face controlled games. The rest of this blog post is about the coding stuff – and what it’s like doing computer vision based real-time coding with a bunch of 11-12 year olds.

If you’re just here for the resources to try this yourself they’re linked at the bottom of this post.

What did we do?

I came up with a four week programme of sessions (2h per session) which use the computer vision library OpenCV to animate, read the camera, detect things in the camera and then make a game. Broadly speaking the plan is as follows…

Week 1: animation

The first week was all about simple graphics. Drawing dots, squares and lines on a canvas, having a loop and changing things in the loop, thinking about colours and R,G,B space.

Week 2: video and faces

Next up we looked at video and faces. This involved thinking of a video as a set of still images (get an image from the camera, put it in the window, repeat). Then we tried running the face detector, and working out what the face detector can do. This session was a bit short – we spent some time changing sensitivity settings, and min/max face size settings, and trying to fool the face detector by drawing pictures of faces. I’ve beefed this session up in the worksheets so hopefully next time round (in 2 weeks time) it won’t be short.

Week 3: collision detection (when does the ball hit the face?)

This session involved bringing together week 2 (rectangles around faces) and week 1 (balls moving on the screen) and working out when the rectangle and the ball overlap. This is harder than it sounds.

Week 4: game time

Now we introduce classic game elements, including scores, levels, lives and so on. There was also a lot of changing colours, and using graphics to overwrite the face area (e.g. a smiley face). Customisation was a very popular activity – no two games looked alike.

How did it go?

At the end, everyone had a game working, and a lot of the kids wanted to spend longer on their project. This was not all their own work – we have a lot of volunteers so I think the ratio was about 1:3 helper-to-student, and the project is really ambitious. But I do think all the kids have a fairly solid understanding of how their game fits together, even if they didn’t write all the code themselves.

The code was quite hacky and the entire project was based around getting something working quick rather than coding properly. A lot of them had tried Scratch before, but I think only one or two had looked at any textual programming language, and Python is quite a leap from Scratch. I was keen to keep it fun, so I provided them a lot of code to edit (each week had a starting code file which they had to develop). In this way they got things on the screen and spent their time doing animation rather than doing exercises. Robot club is after all supposed to be fun…

I think that all the kids have learned a few fairly key concepts associated with coding: case sensitivity, indentation, if statements, debugging, comments, the idea of iteration, the idea of a variable, and the general way coding best proceeds by small changes and lots of testing. I don’t think any of them could take an empty file and write a python program, but they could probably look at a simple program with conditionals and so on and have a guess at what it does, and maybe edit some aspects.

In terms of higher level concepts, they have a good idea about what a face detector is, and how it works, they have a grasp of image-based coordinate systems, maths and inequalities in 2d space (collision detection), the idea of a colour being made up of R, G and B, and the idea of a video being a set of images presented quickly in succession.

They’re also all able to tell the difference between different quote marks, and can find the colon symbol on a keyboard, although I die a little every time I hear myself refer to “#” as “hashtag”.

Materials

If anyone wants to try this at home or indeed anywhere else… we ran the workshop on Linux, in a lab with OpenCV and Python installed. You can find the instructions for the kids here: worksheets for kids on Google Docs, and the code samples broken down by week here: https://github.com/handee/ARCfacegame. Let me know if you use them.

Thinking and learning about play

I’ve just finished a MOOC (massive open online course) on play, with Futurelearn and the University of Sheffield: Exploring Play. Ideas about play have been coming up quite a bit in my work in the last few years – both in teaching (gamification, exploration) and in research (particularly in the research I’ve been doing into kids and coding). But I didn’t really know much about theoretical or practical ideas of play, particularly not outside of computing, so I signed up for a MOOC to take the broader look.

I found that earlier on in this course, the readings about play types enriched my conception of what play could be. Thinking about play in terms of taxonomies of play (rough and tumble play, imaginative play, etc.) has helped me break down what we mean when we say play, and I have found it useful to think about the things children do in terms of these taxonomies. I even found myself wondering how many different kinds of play particular activities or equipment affording, and wondering if I could alter activities to include more variety in play type. There’s an implicit assumption here, which is that play is good, and lots of types of play is better than one type of play. This has clear implications for the kinds of work we do with schoolkids (and to a lesser extent with uni students); a lot of our activities have time for exploratory play (“what does this do”). Thinking about play types leads us to try and incorporate other types of play e.g. creative play (“what can i make this do”, “what can I make with this”), mastery play (“can I get better at playing with this”), communication play (“can I use this to communicate?”). This brings more variety into the activity which may well end up with deeper learning.

The course was very broad, which I liked – I did it to get the big picture, and for that it really succeeded. We looked at cross-cultural play, online play, the spaces we play in, historical attitudes to play, disability and play…

Thinking about how those with disabilities can access play turned a lot of my ideas upside down: thinking in terms of play as activities with particular values leads to a normative understanding of play. The taxonomies provide a rich conception of what play could be, but they don’t dictate what it should be. Reading case studies about play and disability showed me that this normative conception (play should be educational, for example), doesn’t have to hold. Play doesn’t have to be something that lets children rehearse ideas for the real world. It can be something for itself – catching a ball repeatedly, fidget spinners, and other repetitive actions can all be playful in some way. These could be seen as mastery play, developing close motor skills, or they could just be play. Allowing people the time, space, and equipment to explore play with whatever actions they are able is something we need to do for our children and for ourselves.

In all I enjoyed the MOOC a lot – I think it will take a while for the ideas to settle in my mind as we touched briefly on a lot of different topics, but I also think that some of the things I’ve learned will be put in to action in my teaching and outreach activities pretty soon.

A tale of 3 engagements

For the last 9 weeks I’ve been visiting the University of Girona (UdG), and working on some research in Vicorob and Udigital. I’ve taken part in three engagement activities whilst I’ve been here – even though I don’t speak the language. It turns out that with colleagues to help translate, it’s possible to be useful even without many words, although in the first two workshops I was more of an observer/helper than a facilitator. The first of these was an underwater robotics workshop, with a visiting class or around 15 teenagers; the second of these was a wheeled robotics workshop with 9 adults in a high security prison; and the third was an “unplugged” activity looking at Artificial Intelligence and Alan Turing with about 150 teenagers in 6 consecutive groups. The rest of this post has a bit more info on each.

Underwater robotics

This workshop took place in CIRS (Centre d’Investigació en Robòtica Submarina) at UdG, and was written and led by Xevi Cufi. The group came from a nearby boys’ school, had been working on their robots back in school for a while, in groups, and had come to CIRS for the final construction and testing. These robots are made out of plumbing pipe, and have three motors. Two of these provide forwards and backwards thrust for the left and right sides of the robot, and the third gives up and down. The basic robots were complete before the workshop, and in this session the participants did final wiring (the controller is attached by a tethered wire) and water tests. Once the wiring was done, the first water test involved getting the robot to have neutral buoyancy by attaching floats to the frame, in a large bucket.

Then they had to try and make the cable neutral too, by attaching bits of float at regular spacing along the tether.

And finally the students got to use their robots in the test pool (CIRS has a massive pool for testing robots). Seeing this come together was great – the students were all fired up to run their contraptions in the water, and they all worked really well.

This project is a big project, and I think the students had been working on their robots for a couple of weeks on and off. I expect a build from scratch would take a few days, as there’s soldering, wiring, building, testing and a lot lot lot of waterproofing (fairly obviously). The payoff is fab though: they clearly got a real sense of achievement piloting their own robots around the pool, picking up objects, and trying not to get their tethers in a knot. With one underwater video camera and a live link to a monitor, which was passed between robots, the workshop really came alive. I’d like to try and run this workshop in Aberystwyth.

Wheeled robots

The second workshop couldn’t have had a more different target audience. Instead of teenage Catholic schoolboys, there were adult prisoners in the Puig de les Basses prison just north of Figueres. In this workshop (also designed and led by Xevi) we used small wheeled Arduino robots, and programmed them in groups to flash lights, display messages, and move backwards and forwards. We have done a lot of wheeled robot workshops as part of the Early Mastery project (and before), and this one followed the general format (get something to run on the robot, modify that code, get the robot to move forwards and backwards). We had about 2 hours, and the participants were working in groups. Here’s a picture of the robot (taken during preparation) – you should be able to make out the display LCD, the LEDs and the wheels in this picture.

In the workshop the participants got to grips with the flashing lights activity very quickly, and the group I was working with seemed to be having fun setting up traffic lights using the R, G and Y LEDs. When the idea of the LCD display screen was introduced, my group decided to get it to give instructions to match the traffic lights (so it said “go” on green, etc.). This was a bit more elaborate than planned – the idea was they were just going to get it to say “hello” or something then move on to the next task – but they were enjoying the coding and working a lot of things out for themselves so we just let them run with it. As soon as one of the other groups got their robot to move, everyone changed their mind and wanted to move on to the next task anyway.

I don’t have any photos of the actual workshop as security was very tight and we weren’t allowed to take in phones, cameras or anything like that. Here’s a picture of the outside of the building though:

It’s amazing how the same thing happens in every robot workshop – whether it’s with 6 year old kids or 50 year old prisoners. As soon as one of the groups gets a robot to actually move, the atmosphere changes and everything moves up a gear. There is something intrinsically motivating about writing a program on a computer, and getting it to move something in the real world. As a programming environment, they used Visualino which provides a block-based interface to Arduino C; I hadn’t seen this before but was very impressed, and I might use it in future.

AI Unplugged

The final engagement activity I have been involved in out here is based upon the AI workshop that we wrote as part of the Technocamps project. This workshop has several components, and UdG were asked to do 6 consecutive 25 minute workshops with schoolkids in the town of Banyoles, as part of their end-of-term robotics project (actually, 3 sets of 6 consecutive workshops). So with a lot of help from Eduard we created some bilingual slides (English/Catalan) and did a double-act. You can see the slides here.

In another room, Marta and Mariona were talking about STEAM and coding, and in yet another room Jordi was talking about various robotics challenges and activities, so the Udigital.edu team was out in force. Here we are having breakfast before the day begins…

The schoolkids had apparently been working on general robotics projects for a couple of weeks at the end of term, so we started by doing a tour of their demos, and saw some lovely little line followers, skittles robots, hill climbers and generally lots of excellent arduino goodies. Here’s one of their projects.

In the workshop Eduard and I ran, we had a set of votes, asking the students if they think computers can think. The way the workshop is structured, we had a vote at the start (to get their initial opinions), then we did an activity which encouraged them to think about what intelligence is, by ordering a load of things (chess computer, sheep, tree, self-driving car, kitten, human… there are about 30 things). This gets them to consider what thinking involves, without actually being explicit or telling them what we think. Then we had another vote. After this we discussed what aspects of intelligence they might think were important, and what aspects computers could do now, then we had a final vote and concluded with some talk about Alan Turing and the Turing Test.

The reason I like to get the participants to vote, repeatedly, on whether they think computers can think, is so that we can see if anyone changes their mind. In my experience (and I’ve run this workshop loads of times – maybe 50 times) people always do change their minds once they’ve thought a bit more about the question; it never ceases to surprise me how different groups can be, too. This time, some groups arrived confident that AI was possible and that computers could think. Some of the others arrived with hardly anybody in the group positive about the potential of AI. We changed some minds though – some in one direction, some in the other.

Here’s a graph of the three vote results, displayed as a proportion of those attending who said “yes” or “maybe” to the question “Can Computers Think?”

This workshop worked well, as you can see from the graph: in every group we managed to get people to think hard enough that some of them changed their minds. It was also great fun, if a bit relentless, running 6 workshops back to back. I think we saw about 150 kids.

Thanks

So thanks, Udigital, for letting me join in and see what you do in terms of outreach. It’s been a great 9 weeks of visit, and I’ve got some ideas that I definitely want to try back in Abersytwyth.

EMRA17

I’m visiting Girona Uni at the moment as part of my sabbatical term, and whilst I’m here I’m trying to expand my horizons a bit academically. SO, this week I attended a workshop on marine robotics, which just happened to be going on whilst I’m here and they let me attend for free. The workshop is for marine robotics, but it is not just a research conference. Attendees come from 30 research centres, and 12 companies. Presentations come from 14 EU projects, 4 national projects, 4 companies. On day one, I saw 16 of the talks and then skipped the rest (including the demo and the dinner) as my folks were visiting and I thought I should probably spend some time with them:-)

Marine robotics is a bit outside my area so it was challenging to sit in and try and follow talks that were at the limits of my knowledge. The conference was also considerably more applied that many of the conferences I go to – companies and researchers working together much more closely, and much more close to product; some of the things presented were research, others were actual pieces of kit that you can buy. The applications varied too from science through to mining. The EU funding that supports these systems is really driving forward innovation in a collaborative way – many of the projects involved tens of institutions, from university research teams through SMEs to big companies.

The keynote came from Lorenzo Brignone, IFREMER lab, which is the French research centre that deals with oceanographic stuff. They have quite a fleet (7 research vessels), with manned submersibles, ROVs (Remote operated vehicles), and AUVs (autonomous underwater vehicles), and a hybrid HROV (AUV/ROV) which is the topic of the keynote. Brignone works in the underwater systems unit, which is mostly made up of engineering. The key problem is that of working reliably underwater near boats which don’t have dynamic positioning – the surface vehicle might move hundreds of metres, so we need to have an ROV that is more independent in order to carry out scientific missions reliably. The design includes the whole system, with on-ship electronics, tether, traction, and a weighted underwater station which includes a fibre-optic link to the HROV. This lets the hybrid system work with vessles of opportunity, rather than waiting for science boats to become ready. Two DVL (doppler velocity log) systems give accurate underwater location. Final output is a semi autonomous vehicle which can be worked by general users (the engineers don’t even have to be on the boat).

The next morning talk covered the DEXrov project, which is looking at systems which can control dextrous robots at a distance (hopefully onshore, removing the cost of hiring a boat). The aim is to get robots that can interact underwater, like divers can. This is controled by an exoskeleton based system – basically, the operator wears an arm and hand exoskeleton which the robot then mimics.

SWARMS – smart and networking underwater robotics in cooperation meshes. 31 partner consortium, looking at networking tech as well as the robotics tech. The project is also developing middleware which will let various heterogenous systems (UAVs, ROVs, misssion control, boats) cooperate. Underwater acoustic network links to wireless on the surface.

Next up Laurent Mortier from the BRIDGES project, which is a big h2020 project (19 partners including 6 SMEs) looking at glider technology. These systems are very low power underwater vehicles which can cover very long journeys, collecting data. Gliders create small changes in buoyancy, using wings to drive themselves forwards. This project looks to increase the depth that gliders can work at, which enables a greater range of scientific questions to be answered. The kind of data they look for depends on the payload, which can be scientific, or commercial (searching for things like leaks from undersea hydrocarbons, finding new oilfields).

Carme Paradeda of Ictineu submarines presented next, on moving from from a manned submarine to underwater robots, in a commercial setting. http://www.ictineu.net/en/ is their website, and they’ve invested 3 million euros, and more than 100,000 hours of R and D went into the creation of their submarine. This is a manned submarine which involved developing new battery technology as part of the project, safer batteries for operating at high pressure.

Marc Tormer of SOCIB (a Balaeric islands research centre) also talked about gliders. Aim is to change the paradigm of ocean observation: from intermittent missions on expensive research vessels, to continuous observations from multiple systems including gliders.

Graham Edwards from TWI (The Welding Institute) talked about ROBUST H2020 project. This project addresses seabed mining. Resources they’re looking for are manganese nodules, which can be found also looking cobalt crusts and sulphide springs. The system uses laser spectrography on an AUV with 3d acoustic mapping tech, to try and get away from the problems associated with dredging.

Pino Casalino, University of Genova (ISME) had the last slot before lunch talking about an Italian national project MARIS working towards robot control systems for marine intervention. This provided another overview of a big multi site project, looking at vision, planning and robot control. I have to admit that at this point my attention was beginning to wander.

One group photo and a very pleasant lunch later (I declined the option of a glass of wine, but did take advantage of the cheesecake and the espresso machine) we were back for an afternoon of talks.

The difficult post-lunch slot fell to Bruno Cardeira, from the Instituto Superior Técnico (Lisbon) talking about the MEDUSA deep sea AUV. This project was joint Portugal-Norway with a lot of partners, looking at deep sea AUVs, in order to survey remote areas up to 3000m depth. They wanted to do data collection and water column profiling, resource exploration, and habitat mapping, with the aim to open up new sea areas for economic exploitation.

Bruno also presented a hybrid AUV/ROV/Diver navigation system, the Fusion ROV which is a commercial product. This talk had a lot of videos with a loud rock soundtrack, which is one way to blow people out of their post-lunch lull, I guess.

The next talk came from Chiara Petroli, of the University of La Sapienza (Rome) talking about the SUNRISE project, working on internet of things wrt underwater robotics. Underwater networking, in a heterogeneous environment. Long distance, low cost, energy efficient, secure comms… underwater. Where of course wifi doesn’t really work. Dynamic, adaptive protocols which use largely acoustic communications have been developed.

Unfortunately by the end of this talk we were already running 15 minutes late (after just two talks). So the desire for coffee was running high in the audience, and I think I detected a snore or two.

Andrea Munafo from the National Oceanography Centre in Southampton, talking about the OCEANIDS project sponsored by the UK’s NERC (natural environment research council). This program is building some new ROVs which will enable long range and autonomous missions. One of these ROVs is called Boaty McBoatface.

The last talk from this session came from Ronald Thenius, of Uni Graz, talking about Subcultron, a learning, self-regulating, self-sustaining underwater culture of robots. 7 partners from 6 countries, aiming to monitor the environment in the Venice lagoon using the worlds’ largest robot swarm using energy autonomy and energy harvesting. Because Venice is big and has a lot of humans, the cultural aspect is quite important. Players: 5 aPads, (inspired by lilies, has solar cells, radio comms), 20 aFish (inspired by fish, moves around, communicates), and 120 aMussels (inspired by clams, many sensors, passive movement, NFC, energy harvesting). I liked this talk a lot.

Post coffee break, it was the turn of Nikola Miskovic, from the University of Zagreb, talking about cooperative AUVs which can communicate with divers using hand gestures and tablets. The project (CADDY – autonomous diving buddy) allowed a number of advances, including the way that the diver could use Google maps underwater. “The biggest challenge when you do experiments with humans and robots is the humans“:-)

Jörg Kalwa, ATLAS ELEKTRONIK GMBH spoke on the SeaCat story – from toy to product. UAV/ROV hybrid with variable payload. This grew out of various precursor systems (experimental and military) – the talk covered the various robots which are ancestors of the current ROV. The current incarnation is a commercial robot which does pretty much everything you might want an ROV to do, but the price point is pretty high.

The penultimate talk is from Eduardo Silva, ISEP / INESC TEC in Porto (Portugal), talking about underwater mining, in flooded opencast mines. Project has a great acronym – Viable Alternative Mine Operating System or VAMOS. Big project (17 partners from 9 countries). This project has a bunch of collaborating robots including UAVs which look like the many of the others (torpedo like), and other underwater vehicles which look a lot more like mining vehicles – tracked tanks, with massive drills and so on.

The day finished with the European Robotics League – a UEFA champions league for robotics. Service robots, industry robots, outdoor robots. This talk came from Gabriele Ferri, CMRE. Emergency robotics, combining ground underwater and air robots cooperating in a disaster response scenario. Mission is to find missing workers (mannequins) and bring them an emergency kit, survey the area, and stem the leak by closing a stop cock.

To be honest, my take home from this workshop is: underwater robots are cool, and brexit is an awesomely stupid idea.

BCSWomen AI Accelerator

BCSWomen Chair Sarah Burnett has had a fab idea, which is to hold a series of webinars that talk about AI and how it is changing the world. In BCSWomen we do a lot of stuff about the women, and a lot of stuff to support women, but we also do a lot of stuff that is useful for tech people in general. The AI Accelerator falls into this category; the idea is that tech is changing and AI is driving that change, so we’re going to try and provide a background and overview of AI to help people get to grips with this. Once I heard the idea I had to put my hand up for a talk, and I grabbed the first slot general intro talk – “What is AI?“. The other speaker in the session was Andrew Anderson of Celaton, who talked about the business side of AI. If you want to join in follow @bcswomen on twitter and I’m sure they’ll tweet about the next one soon.


the talk

As ever I went a bit over the top on the talk prep, but managed to come up with a theme and 45 slides with a bunch of reveals/animations that I thought covered some key concepts quite well. (Yes 45 slides for 20 minutes is a bit much but hey, I rehearsed the timings down to a tee and it was OK.) The live webinar had a few issues with audio, so I re-recorded my talk as a stand-alone youtube presentation; it’s not as good as the original outing (as a bit of time had passed and I hadn’t rehearsed as much) but I think it still works OK. If you want to watch it, here it is:

You can find the slides online here: AI Accelerator talk slides. I am 99% certain that all the images I used were either free for reuse, or created by me, but if it turns out I’ve used a copyright image let me know and I’ll replace it.


the reasoning behind the talk

I’ve been “doing” AI since I first went to uni in 1993, and what people mean when they say AI has changed massively over this time. Things that I read about as science fiction are now everyday, and a lot of this is down to advances in machine learning (ML). So when I started working on the talk I actually asked myself “What do people really mean, when they say AI?”; it turns out that a lot of the time they’re actually talking ML. There are a lot of other questions that need to be raised (if not answered) – the difference between weak AI and strong AI, the concept of embodiment, the way in which some things which we think of as hard (e.g. chess) turned out to be quite easy, and some things we thought would be easy (e.g. vision) turned out to be quite hard. Hopefully in the talk I covered enough of this stuff to introduce the questions.

I decided that for a tech talk there needed to be a bit of tech in it too though, which is why I spent the second half breaking down a bit what we mean by machine learning, and introducing some different subtypes of machine learning. I expect that if you work in the area there’s nothing much new in the talk, but hopefully it gives an overview, and also gives enough depth for people to learn something from it.


so what about the cute robots?

I wanted a visual example for my slides on ML and particularly classification, so I created a robot image, then edited it about a bit to get 16 different variants (different buttons, different numbers of legs, aerials, arm positions). I then wrote a short program to switch the colours around so I got twice as many (just switching the blue and the red channels gives some cyan robots and some yellow robots).

If you want to use them in talks or whatever, feel free. You can get all 32 of the robots, here, along with the python program that switches colours and the gimp file (.xcf) if you want to edit them yourself.

The BCSWomen Lovelace Colloquium 2017

The 10th BCSWomen Lovelace Colloquium was held on April 12th, at Aberystwyth University. Around 200 attendees enjoyed a day of inspiring talks, fascinating student posters, careers advice, employers fair, lots of networking and too much cake. Our headline sponsor this year was Google, who covered loads of the student travel and also sent a speaker along.

As we pay for travel for all the poster contest finalists and as we were in Aberystwyth this year, we paid for 2 nights for everyone. This enabled us to have a social the night before, with Scott Logic providing a hackathon activity which got people talking and coding (and eating pizza).

Our keynote was Dr Sue Black OBE, founder of BCSWomen and general awesome person, who talked about her life and career to date, with PhD, Bletchley Park, Stephen Fry and the Queen. At the end of Sue’s talk she actually had a queue of people waiting for selfies. Then we had Carrie Anne Philbin of Raspberry Pi, who gave a fab talk about using your powers for good. If you haven’t seen her yet check out her youtube channel. Unfortunately she had to dash off which was a shame as people were so inspired by her talk that they kept asking me where she was for pretty much the rest of the day.

As usual the core of the day was an extended lunch and poster session. This year lunch was sponsored by GE, who also had a stand and helped out in lots of other ways.

Best First Year Student, sponsored by Google

1st: Frida Lindblad (Edinburgh Napier) – Making complexity simple in the world of technology

2nd: Aliza Exelby (Bath) – An examination of the effects of growing up in a digital age

Best Second Year Student, sponsored by JP Morgan

1st: Elise Ratcliffe (Bath) – Cryptography for website design

2nd: Rachael Paines (Open) – Where’s all the kit gone? Developing a bespoke equipment management system

Best Final Year Student

1st: Iveta Dulova (St Andrews) – Mobile device based framework for the prediction of early signs of mental health deviations / Hannah Khoo (Greenwich) – Analysing attacks on the CAN bus to determine how they can affect a vehicle

2nd: Louise North (Bath) – Optimising the energy efficiency of code using static program analysis techniques / Anna Rae Hughes (Sussex) – Safeguarding homelessness in a cashless society

Best MSc Student, sponsored by Amazon

1st: Caroline Haigh (Southampton) – Nul points and null values: using machine learning techniques to model Eurovision song contest outcomes

2nd: Isabel Whistlecroft (Southampton) – Can algorithms emulate abstract art?

People’s choice

First year Annette Reid (Bath) – “Ada Loved Lace”: how computer science and the textile industry influence each other

Second year Emma James (Bath) – Can machine learning trump hate?

Final year Rosie Hyde (Middlesex) – Can stress and anxiety be tracked through wearable technology?

MSc Leah Clarke (Durham) – Who will win Wimbledon 2017? Using deep learning to predict tennis matches

After the poster contest we had two more talks. The first was from Milka Horozova, of Google, who’s been in Google for just a few months. She met Google recruiters at the Lovelace in Edinburgh a few years ago so is a real Lovelace Colloquium success story. Our last speaker was Christine Zarges of Aberystwyth Computer Science, who talked about nature-inspired computing – artificial immune systems, neural networks, evolutionary systems. Interesting stuff.

One cake break later (we have a lot of cake, thanks to our CAKE SPONSOR, Bloomberg – yes we have a cake sponsor) and we finished off with the panel session and prizegiving. On the panel was Dominika Bennani of JP Morgan, Carol Long from Warwick and a BCSWomen founder member, Milka Horozova from Google and Claire Knights from UTC Aerospace. And me. The idea of the panel is that all the students can ask any question they like, on anything to do with computing and computing careers, and it’s often my favourite part of the day.

After the close of the panel, we stopped for a group photo on the big steps. Once I get the official photos back I’ll post the big picture, but for now here’s a selfie:

And then the last part of the day was the social, sponsored by ThoughtWorks – with more cake, and some drinks to help the networking go smoothly.

This was my last event as chair: I started it in 2008, and have run it for 10 years, and now it’s time to pass it on. So at the end of the day I handed over to Helen Miles, who’s going to take the Lovelace forward (with me as deputy for a couple of years to ease the transition – I’m still going to be there, whatever!). Helen is also Aberystwyth, and has an office just downstairs from me, which makes the handover easy. Next year, we’re going to Sheffield.

BMVA workshop: plants in computer vision

On Wednesday I hosted my first ever British Machine Vision Association (BMVA) one-day workshop. The BMVA are the organisation which drives forwards computer vision in the UK, and they run a series of one-day technical meetings, usually in London, which are often very informative. In order to run one, you have to first propose it, and then the organisation work with you to pull together dates, program, bookings and so on. If you work in computer vision and haven’t been to one yet, you’re missing out.

I won’t write an overview of the whole day – that’s already been done very well by Geraint from GARNet the Arabidopsis research network. So if you want a really nice blow by blow account pop over to the GARNet blog.

We had some posters, and some talks, and some demos, and around 55 attendees. The quality was good – one of the best plant imaging workshops I have been to, with no dud talks. I think London is an attractive venue, the meetings are cheap (£30 for non-members, £10 for members), and both of these factors contributed. But I suspect the real reason we had such a strong meeting was that we’re becoming quite a strong field.

The questions and challenges that come up will be familiar to people who work in other applied imaging fields, like medical imaging :

  • should we use machine learning? (answer: probably)
  • can we trust expert judgments? (answer: maybe… but not unconditionally!)
  • we need to share data – how can we share data? what data can we share?
  • if we can’t automatically acquire measurements that people understand, can we acquire proxy measurements (things which aren’t the things that people are used to measuring, but which can serve the same purpose)?
  • can deep learning really do everything?
  • if we’re generating thousands of images a day, we have to be fully automatic. this means initialisation stages have to be eliminated somehow.

One of the presenters – Milan Sulc, from the Centre for Machine Perception in Prague – wanted to demo his plant identification app. Unfortunately, we discover that all of the plants at the BCS are plastic. Milan disappears to a nearby florists to get some real plants, at which point, the receptionist arrives with an orchid. Which also turns out to be plastic. The lesson here? Always remember to bring a spare plant.

This workshop was part funded by my EPSRC first grant, number EP/LO17253/1, which enabled me to bring two keynotes to the event and that was another real bonus for me. Hanno Scharr from Jülich and Sotos Tsaftaris from Edinburgh are both guys who I’ve wanted to chat with for some time, and they both gave frankly excellent presentations. It was also very good to catch up with Tony Pridmore and the rest of the Nottingham group; it’s been a while since I made a conference in computer vision / plant science, as I had a diary clash over IAMPS this year.

We’re hoping to put together a special issue of Plant Methods on the meeting.