Dr. Mark Read

Research Fellow, Charles Perkins Centre, The University of Sydney
Research Gate
My Research Gate

CoCoRo “excellent”, year 2 GA

Another trip to Pisa, this time for the anual CoCoRo general assembly (GA). For those not familiar with EU projects, this is where the project showcases its progress to a panel of reviewers (two in our case) who evaluate our progress and cast a critical eye to keep things on track. SSSA in Pontedera were hosting us, and the first thing we noticed was the impressive water tank set up:

There was an operational Jeff, controllable over remote, but at least not requiring any power cables. Jeff, the more advanced of the two platforms being developed in CoCoRo, is extremely impressive. Everyone is instantly drawn to the blue-light systems of our AUVs, and they are eye catching. But to watch it move was something else. Its very fast, and very maneuverable. Whereas Lily, being cylindrical, spins easily, Jeff was fast to swim in a straight line and rotation was only achieved when it was desired. A video of Jeff can be found here. Some photos demonstrating…



The reviewers were very impressed with all of this, including the live demos (which worked! Always risky having live demos). They rated the project “Excellent”, which was nice… if you have to leave home for a project meeting you can at least be told you’re excellent :o). James’s work on the operating system and all our work on the simulation received special appraisal with the reviewers noting that these were thankless and unglamorous, but essential, jobs.

And of course no trip to Pisa is complete without a visit to this:

The swarm roboticist-computational immunologist switch.

Emerging out of the underwater swarm robotics tank for a couple of days, I was invited to give a 25min presentation at the BSI Mathematical and Computational Modelling in Immunology meeting by Dr Mark Coles, one of its organizers. The meeting was held at Microsoft Research Cambridge, and I was very impressed with the hosting, it was well organised with very good talks, and the lecture theatre was fantastic to present in.

I decided to present data from the 3-year ongoing paper I’ve been writing, on simulating intervention strategies. It was quite a context switch to suddenly be in a room discussing immunology rather than robots; It had been a while since I last gave a talk like this, and took me a few minutes to find my feet. I’m told that a primary challenge in stepping up from RA to faculty member is the sheer amount of context switching that you have to do. The talk was well received, though I suspect there are aspects of the biology I could have better conveyed, like foreign languages, the subject-specific nomenclature fades if you don’t use it (at least, if you learnt it coming from computer science). People liked the vision of simulating interventions, which is encouraging for the paper. There were some excellent talks, my personal pick was that of Prof David Sansom who presented a really novel and compelling perspective on CTLA-4 negative signalling, suggesting that binding of this receptor with B7 on APCs providing a suppressive signal to the CTLA-4-expressing T cell, the T cell endocytoses the B7 (literally ripping it off the surface of the APC) and as such the negative signalling event is through the decreased ability of APCs to simulate T cells. What made this talk really fun for me was that I understood it, all of it, which rarely happens to me in an immunology lecture.

As for the 3-year paper. Its close, really close. I hope to submit today in fact! Given that the data presented at the meeting hasn’t been published yet, I shall hold off in putting the PDF on here for now, but it will come later.

Robot, I command thee!

A principle challenge in any underwater swarm robotics project (CoCoRo) is collective motion – robots that lose one another can’t act as a swarm, robots that don’t move can’t explore their environments and, whilst not as much of an issue, robots that crash into each other simply don’t inspire confidence. This week Christoph Moeslinger (below left, unpacking boxes of robots in front of a pool), Tobias Dipper and myself met for a 3 day workshop in Graz, Austria, to address exactly this problem. I have simulated various robotic shoaling strategies over the last 6 months and believe that having robots communicate their headings with one another is essential to providing well-aligned shoals. Christoph has a different strategy that relies only on passive observation, and has used heuristic search to find parameters regarding reactions to observing particular relative orientations of neighbouring robots that provide shoaling. This too was in simulation.

The workshop’s purpose was to implement these algorithms on Lily AUVs. This was my first experience of programming actual robots, and it was quite an education. Far different from programming in simulation, programming robotic hardware is comparatively slow and tedious (though still entertaining, when not frustrating). It is difficult to bug check code, there is no convenient debug function for stepping through code and inspecting state. Retrieving debug information from the robots requires something like radio frequency communication, where the length of messages is limited, and where the robot’s ability to send can be interfered with by the very code you are attempting to test. In a word, it is much much harder to write code on a real robot than it is for a simulation. Part of our problem was that we were writing not only the algorithmic code we wished to run, but the operating system that the robot needed to run it! Calibrating bluelight sensor systems to filter out background light, creating controllers that let a robot hold a particular heading, writing code to compensate for magnetic fields within the robot that interfered with the compass when trying to determine a robot’s heading. This is largely taken for granted in simulation, where the environment and simulated hardware is free of noise unless you choose to simulate it. The real-world is a very different place.

The workshop was, sadly, only partially successful in achieving its goals – we were too ambitious in what could be accomplished in the time available. Both Christoph’s and my algorithms were able to provide robot aggregation (bring the robots together in one place). Better yet, our algorithms are compatible, a shoal comprised of robots running both succeeds in aggregating. Alas neither of us got proper shoaling working, that will have to be a workshop for another day… Lastly, Graz university is gorgeous, this is their main building:

Judge for a day

A post later than the event… I had the pleasure of being a judge for the 11th Rotary Technology Tournament. It was covered by the York Press here (with pictures, where the one in this post was taken from). Teams of kids from various schools competed in the day long event to use wood, string, glue, card and a variety of other basic materials to design and build a self-propelled trolley that could ascend a ramp. The trolleys had to use a 200g weight and gravity as their sole methods of propulsion, so pulley systems were the obvious means to accomplish this. I was stunned by the creativity of the children, and the range of designs they came up with. Some were very good at thinking outside of the box, the judges were asked a lot of questions on the edge of what was allowed and what was not (given the remit). In the end only 2 of the 8 teams in the senior category I was judging were able to move at all, but those that did were very impressive. Most of the designs were sound in principle, but reducing friction in the bearings and pulleys was absolutely essential else the weight could not propel the vehicle.

It was a fantastic day, and I really enjoyed myself – I think the competitors did too. It was nice to get some different perspective: my day job entails working at the cutting edge of a very specific simulation-based field, whereas this experience had me to interact with an age group I never really see and observe a nuts and bolts (well, staples and string) real-world engineering problem being solved in just a few hours. I would definitely do this again, and I recommend all academics get out their offices for this sort of event once in a while!

Spartan released!

This week the “Spartan” paper was finally published in PLoS Computational Biology. Its always exciting to see the paper formatted in the journals own style. Its a shame about the layout of the two figures with captions falling on the following page – but never mind. The paper is first authored by one of Jon Timmis‘ past PhD students, Kieran Alden.

Spartan is an R package that encapsulates 4 key statistical analyses that have been of tremendous use in the computational immunology lab for understanding simulation results, revealing when these results are indicative of the biology rather than uncertainty regarding parameter assignments or the exact nature of the biological system itself. There’s a technique for determining how many samples of a stochastic simulation are required in an experiment to bring the effect of random variation down to a certain level of statistical significance (you want variation to be because of the experiment, not because you didn’t take enough samples). There is a robustness analysis that reveals how far simulation parameters can be perturbed before the simulation experiences a significant change in behaviour, and there are two global sensitivity analyses: eFast and a latin hypercube design with correlation measures.

If there’s a key message that has emerged from my own research, and echoed in other works coming from the lab, its that people probably trust simulation results a lot more than they should. The techniques gathered within spartan are a first step to understanding exactly how much you should believe the results coming from a simulation. I have a feeling I might make a career looking at this field, its important and very tricky.

PDF of paper, and the PLoS website.

Chain & Shoal

The CoCoRo project is driven by a ‘big vision’, a search and rescue scenario where a swarm of autonomous underwater vehicles (AUVs) is deployed at the surface of a body of water. Their task is to find something, the black box of a downed plane for instance. As the swarm shoals to the bottom it must leave behind a ‘relay chain’ of AUVs to maintain communication with the surface. The swarm explores the sea bed, and the chain must follow it, always maintaining the communication line. As the swarm shoals further from the origin, where a team of anxious humans awaits the discovery of the black box, the chain must get longer. Hence, AUVs must dynamically re-assign themselves between chain and shoal functions. This can’t go on forever, eventually there won’t be any shoaling AUVs left. At this point the shoal should be informed that it must turn around, and not stretch the chain to breaking point. In this manner, the chain grows (and can also shrink) and moves with the shoal as it tries to locate the black box.

This is a hard problem, directed communication underwater is short range (at least on our robots), they can’t see each other very well, they are trying to navigate a 3D environment, and they have a tendency to float off and lose contact with the group. We’ve been working on shoaling in recent months, and have some solutions – at least in simulation – to this problem. Chain formation, navigation and dynamic reallocation of AUVs is harder still. But we are getting close. Below is a video showing proof of principle that it is possible, again, in simulation at least (it’s 3.7Mb, give it a second to load…)

There are some other assumptions made in the video: we have assumed for now that AUVs can locate one another’s relative position very well. In reality they will have to use bluelight LEDs and sensors, and can only determine the distance to another AUV within a 120 degree cone. But if you can’t make it work using “underwater GPS” then its certainly not going to work using bluelight. Getting this onto real platforms will be challenging, and cracking it will be quite an achievement. Check back here in 6 months!

Oh, in case anyone is interested, here’s a promotional video for CoCoRo with AUVs choreographed to do what we are now creating actual algorithms to accomplish autonomously (its pretty, but remember it’s not real).

CoSMoS book draws closer

The CoSMoS project may have concluded, but its research output certainly has not. Members and affiliates of the project met this week to discuss the current state of the CoSMoS book. CoSMoS is the “complex systems modelling and simulation infrastructure” (the “i” is AWOL), and the years of experience in how (and how not) to create representative simulations of complex systems that CoSMoS supported is now culminating in a book. It’s a patterns book – a familiar computer science concept – where each pattern tries to encapsulate and advise on some key concept or technique relating to the messy endeavour that in silico complex systems research can be. Its in good shape, despite the numerous “text to go here” placeholders: the structure and content seems strong to me. Of course the “stuff here” placeholders persist because the many authors, myself included, have yet to venture that far down the proverbial todo lists. Susan Stepney has done a tremendous job getting the book to where it is now, but we are each responsible for providing text for patterns that we either suggested or hold experience in. We’re all willing participants, yet I don’t envy Susan’s job. Studying the organisation and dynamics of complex systems through simulation is highly challenging, and so too is the job of organising the dynamics of academics tasked with writing about it. The current drive is to have the completed draft by end of summer, and the tweaked and polished final book by Christmas.

NB. CoSMoS does have a webpage, but it currently displays a charming “fatal error” communiqué.

New year, new student

A new year is upon us. We are now 14 months from the end of CoCoRo, not quite time to panic, but not impossibly far off either. Its time to knuckle down to some AIS (artificial immune system)-oriented fault tolerance in our shoals of AUVs.

Over the past year I’ve done some work on shoaling in underwater swarm robotics. Communication and distance sensing underwater is problematic, electromagnetic signals are hugely attenuated. Our robots don’t have the capacity for sophisticated visual processing, so we rely on bluelight systems (blue LEDs and photodiodes) to detect distances between AUVs. The range of bluelight and radio frequency systems underwater will be 50cm at best. This equates to about 5 AUV body lengths. Our studies to date have shown that creating well-aligned shoals without communication of velocities between members of the shoal is incredibly difficult (if not impossible). This work is going to be carried on by Sophie Alexander, an Engineering MEng student who is going to investigate shoaling algorithms in this challenging underwater context. To the left is a nice picture of 15 CoCoRo AUVs, well aligned (but not shoaling) on the table.

I’ve read something. It made me think.

Christmas being time off, I started reading Ben Goldacre’s new book Bad Pharma. I hugely enjoyed Bad Science, which was simultaneously humorous and informative. Bad Pharma concerns bad practice in the pharmaceutical industry, but also highlights problems more general to academia, particularly negative results not being published. This is very common to computer science too, where there is a perception that unless your work demonstrates something new or better than what previously existed, its not worthy of publication (there’s a frustrating personal thread to this, but I’ll keep shut about that). There’s nothing wrong with publishing negative results, it can highlight how not to do something, and can save other people huge amounts of time in not going down dead ends already explored but not published. It can also highlight challenging areas in a field.

Anyway, I digress. Bad Pharma was of particular interest to me because my interest in modelling the immune system could well take me close to the pharma industry. I’m not put off, though I appreciate knowing the sorts of things that go on. As Goldacre highlights near the end, the industry is generally populated with good people, but the industry is structured in such a way that they can collectively do harm. Society sets out the rules of the pharma game, what can and cannot be done. The pharma industry is an industry, and as with many companies their main motivation is to generate profit for their share holders. They shouldn’t do things that are illegal, and if society wants to keep them honest they should police and regulate. Many of the horrors in the book are as much a failing of good regulation (and government) as they are failings of the industry. There are parallels with other industries that have recently come to light. We lambast Starbucks, Google and Amazon for paying almost no tax. But they’ve done nothing illegal, if anything they’ve excelled at what they’re supposed to do: maximize profits for their shareholders. We scowl at the investment banking industry for taking huge risks which culminated in a global financial meltdown (I appreciate this is a complex problem), but again, in most cases they were acting within the law. And where does this pressure to take risks ultimately come from? Who’s money was being invested to generate a return? Pension funds and personal savings. I feel again that a good chunk of the blame can be laid at the regulator’s doors for failing to set appropriate rules for the banking game. The libor-rigging scandal did nothing to make banks more palatable to the general public, but individuals within the banking industry had raised concerns about this system to the regulators years ago. More recently the papers and the Leveson inquiry. Papers are under pressure to invade people’s privacy and get big scoops because that sells papers. We say “bad tabloid!”, but they wouldn’t do this if there wasnt a demand for those sorts of story among the general public in the first place.

Where am I going with all of this? Most of these problems are complex, and there’s plenty of failure to spread around all parties. And if there’s one thing I can be pretty sure of, its that my work is not going to impact any of this. Perhaps I should get back to it… I have my own complex robotics and immune-related problems to solve.

SWIN 2012 Lectures Over

Last year I wrote and delivered a lecture on the use of simulation in swarm robotic systems as part of the swarm intelligence (SWIN) computer science module. It was a valuable experience for a young academic, an insight into what life as a lecturer can be like. Whereas research associates (RAs, me) spend the bulk of their time engaged in research, lecturers have a (if the numbers are to be believed) 20,% 40%, 40% split across admin, research and teaching.

This year I prepared 3 and presented 4 lectures: an introduction to collective behaviour; an overview of simulation in swarm robotics; statistics and sensitivity analysis; and preliminary research on underwater shoaling using no communication. Again the lectures were well received. Even the stats lecture, traditionally a sleep-inducing subject, went better than I expected. The experience of doing all this has been valuable to me, and I would encourage other RAs to try their hand at it. Looking at my possible carear paths, I was unsure whether teaching would be something that drives me. Having done a bit, I enjoyed it more than I expected, however a life in academia will still be mostly research-motivated for me.

I now agree with an estimate I once heard that it takes 20 hours to prepare a lecture. I thought this was an exaggeration, but if you include literature survey, writing the lecture and materials, and reviewing it in restless hours before you deliver it, I suspect it’s about right. It was also fun to develop your presentation style a bit. This is important, and perhaps not always fully appreciated in academia. I have been near sleep in many conferences, where 8 hours of talks is pretty draining. Some physical animation mixed with humour and anecdote (as well as the material) seems to work well for me. And I suspect that students can be even harder to keep attentive than academics who have taken time out of their normal working life to be at a conference. Of course, if you really want to keep the crowd awake, you can try turning up like this guy. I haven’t resorted to this… yet.