Lots happened in my blogging hiatus, and I intend to talk more thoroughly on those topics in the near future, but I thought I’d give you a quick bullet-pointed list of things that I’ve done and am interested in at the moment. Enjoy!
Long time no blog! I’ve now finished uni and have graduated, and thought I would put up a reflection on my final year project, entitled Autonomous Robot Operation for Simulated Disaster Environments.
It was a group project which I undertook with 4 other Computer Science students in my year. The five of us worked with the Warwick Mobile Robotics group, who have for some years been developing tele-operated robots as a final year group project for entrance into the RoboCup Rescue competition. The competition tests robots in simulated earthquake damaged buildings, with the aim being to identify “victims” – simulated signs of life that might suggest a human is trapped. The competition has sections tailored for both autonomous and tele-operated robots, and this year WMR wished to compete in both regions. They would design and build a robot using which we would implement algorithms performing Simultaneous Localisation and Mapping (SLAM) and Victim Identification.
I would be working with Jonathan Abbey on the SLAM algorithms – an exciting and difficult set of problems. SLAM is the problem of an autonomous robot navigating an unknown environment whilst simultaneously generating an accurate map of that environment. It’s an unsolved problem – there are many potential solutions, but none are complete. My tasks involved Data Association, the problem of determining which of the features the robot can currently see have been seen before; Occupancy Grid Mapping, which generates a map of the environment by recording what (if anything) occupies each grid location, and can be visualised as a standard map; as well as dealing with low-level device code and porting the code onto the robot. Two other members of the team, Jan Vosecky and Jason Cook, worked on Victim Identification code, which attempted to identify potential victims through vision using both standard and Infra-Red cameras.
As part of the project, I was fortunate enough to travel to Magdeburg, Germany for the RoboCup German Open. There, I was able to observe the solutions put forward by other teams. Of most interest were the entrants by Darmstadt and Koblenz. Both these teams have worked hard for many years on these problems, and have incredible robots which are very impressive to watch (check out Koblenz’s videos on YouTube – particularly the loop closing, which is just phenomenal). Our robot, unfortunately, was significantly less impressive. Infact, if it made a single turn we considered it to be a good run. The project will continue, and has a good team of CS students taking it over next year, so with a bit more development WMR should be very competitive in the autonomous region at future competitions.
More than anything, though, this project has really piqued my interest in autonomous robotics. It’s really interesting to read about the DARPA Grand Challenge, which pits unmanned vehicles against each other. These vehicles are incredibly impressive, with an ability to not only map their environment and complete navigational objectives, but to also observe obstacles in the form of other vehicles and to obey traffic laws.
I was watching the Grand Prix this weekend, and I had a thought: how far can we push autonomous vehicles? Could we, for instance, go so far as to create an autonomous Formula 1 series?
Imagine it: F1 cars, minus the heavy drivers and safety shells, autonomously driving around race tracks at speed. This poses more challenges than it is possible to list here, but amongst the major of those is the sheer speed of motion compared to the speed of computation. Can we process sensor data fast enough to react to the environment? Can we get sensors that feed data fast enough for us to even be able to react in a reasonable time at speed? Real-time SLAM is something no-one seems to worry about at the moment (and perhaps rightly so – if it’s not solved, why make it faster?), but it’s a challenge that needs to be faced sooner or later if autonomous robots are going to fulfill everything researchers are dreaming of.
Another challenge is simply keeping control of the car – F1 drivers can detect and react quickly to understeer, oversteer, tyre graining and a host of other problems that haunt these high performance cars. Can we make a computer that can also deal with all these?
And how about overtaking? Could we design intelligent AI algorithms which would plan and execute maneuvers – and could these algorithms perhaps teach us something, with no fear and the ability to rapidly judge and weigh multiple options?
I, for one, would love to see this. It looks like the University of Essex might be working along these lines, but it’s quite far away. Maybe if I get bored of Web Development I’ll try and start something…
In the meantime, enjoy a lovely video of our robot from our project, along with some fairly horrible music I composed using Garage Band.
Today we’re launching our first product into Beta – DoodleDesk, the whiteboard for your desktop. It’s a small application I’ve been working on for a short while. Basically, it replaces your desktop background with a whiteboard, so you can draw your ideas down and have them in the background while you work. We think it’s pretty cool, we hope you do too!
I’ve been interested today to try and catch up on the whole Apple / Adobe debate regarding Flash, specifically Steve Jobs’ open letter and the WSJ interview with Shantanu Narayen. Let me first get my opinions out the way: people who know me will know that I’m an Apple geek, but I’m also a Web Developer with lots of experience using Adobe products, Flash in particular. For a long while, I really disliked developing in Flash, until I discovered the MC Tween library (now Tweener), which finally let me develop in Flash the way I wanted to. But until this week, when Flash Player 10.1 Gala came out, my experience with Flash in-browser was, as it is for many Mac users (and still is for some), frustrating at best.
I, personally, don’t miss Flash when I’m using my iPhone. If/when I get an iPad, I can’t imagine I’ll miss it all that much on there either.
Jobs vs Narayen
Back to the debate. Is it just me, or are there some mixed messages going on here? Jobs talks a lot about Flash being a closed system, and that Apple are supporting the open community by placing the emphasis on HTML5 and H.264. Narayen then counters that by saying that the iPhone is a closed system, and that they are supporting an open system by creating authoring tools with single-click deployment to a wide number of platforms.
They’re all good points, and all correct. Although the specification for Flash is open (apparently, I didn’t actually know that it was until I heard it from Narayen today), it is still controlled mainly by Adobe since they have the monopoly on the actual Flash player. Jobs 1 – Narayen 0. The iPhone is very similar, in that the code and frameworks are available for everyone to use, but the actual platform is controlled by a single entity. Jobs 1 – Narayen 1. Apple are indeed supporting the open community, I think HTML5 and H.264 are definitely the right way forward, particularly on mobile devices like the iPhone. Jobs 2 – Narayen 1. Adobe are indeed working to create authoring tools with single-click deployment to the web on a large number of devices. Jobs 2 – Narayen 2.
Looks like a tie, right?
Thing is, I can’t help but think that Adobe are fighting a pretty pointless fight with their “single-click cross platform deployment” – what’s wrong with HTML? As far as I’m aware, every mobile device with any market share supports HTML, along with every computer connected to the internet. That seems pretty cross platform to me.
I’m completely with Jobs on this one. Yes, I am an Apple geek, and people will say “well, of course you’re going to side with Apple”, but I really think Adobe are barking up the wrong tree here. Flash is all but dead, Adobe should move on.
A friend linked me to this article this morning, and I think it’s worth a read. I’ve never given Google’s App Engine much of a look, largely because I’ve never gotten around the idea of compiled code running web apps (for some reason interpreted languages just feel right, but then that’s what I’m used to, and this is a post for another day anyway…). But there is something very interesting in that article, and that’s the portability of App Engine applications that would be obtained by having a number of cloud providers running AppScale.
In my time as a web developer I’ve done more than my fair share of server migrations, and each one has been horrible. It’s never an easy task, always fraught with issues, and almost always results in some amount of downtime (partly due to DNS switchover, but often a result of improper config on the new server as well).
Those sites were largely PHP, and only a handful were running Cake (which does make some things easier, but introduces other headaches as well). I’ve yet to do a server migration using Rails, but I can imagine it is a bit easier thanks to gems, capistrano and the like. But I’m sure the multitude of server configurations required – Apache, MySQL, email servers etc – mean that it’s never as easy as it possibly could be.
Wouldn’t it be great if we could abstract all of this? Wouldn’t it be great if I could open an account on a cloud provider, put its details in Capistrano (or whatever), click go and have my app running there instantly. I’m sure there are ways and providers that will do that for you. I’ve not looked incredibly deeply, but Engine Yard might do this, and it doesn’t look particularly cheap (not compared to, say a SliceHost VPS or the MediaTemple GS, both of which I run). It’d be awesome if there were the free quotas that App Engine offers, so that people could get into deploying real web apps without the hassle of manually configuring cheap servers or the cost of affording the top range hosts. Does anyone know of anything that does this?
Unsurprisingly, there’s been a lot of talk about the iPad since its announcement yesterday, the majority of which seems to be very negative. I probably won’t buy an iPad (yet…), because I don’t think the iPad is aimed at me. Infact, it’s probably not aimed at the majority of people who have been slamming it. I do, however, know the perfect customer for it: my mum.
My mum has a Windows-based netbook, which she keeps in the lounge so she can check her emails, eBay, Facebook (or whatever social network she’s keeping tabs on me with this week) and no doubt some other sites she frequents. She loves pictures, she takes crap loads, and shows them to everyone. She also reads A LOT; she’ll get through a few books a week.
Now, although she’s computer literate, she doesn’t want to be worrying about it too much. Infact, not long ago I spent a day removing a virus from her netbook. She’s also not getting any younger, and although the netbook is good for portability, the screen size and resolution isn’t the best for her eyes. It’s these sort of headaches she doesn’t want from a computer. She doesn’t want to be thinking or worrying about using it, she just wants to use it. Enter the iPad – right? She’s the perfect person for the it.
As far as I can see, the iPad is the computer for people who don’t want to worry about computing (at least, not all the time). The market exists, I’m just not in it.
Update: My mum rang me last night to tell me how tempted she was by the iPad, without me even mentioning it to her. Admittedly she decided it’s too expensive at the moment to replace her netbook (which she’s only had less than a year anyway), but when the time comes she will most likely be getting one.
Before I start, I want to make clear that my knowledge of the gaming industry is pretty poor, but I think the assumptions I’ve used in this post are fairly sensible. If not, please let me know!
I want to talk very briefly about Pro Evolution Soccer, a game which I and many others have bought and enjoy playing. I’m sure this game cost a lot of money to develop – most games do. Traditionally, of course, this cost has been recouped by selling high volumes of games at a price which is around the standard for that console. So, for example, I generally expect to pay between £35-40 for a game for the PlayStation 3. This model has been around for a long time, and I’m assuming it works, since the game industry has managed to continue to thrive.
Pro Evolution Soccer appears to be bucking this trend. I don’t know whether or not it is the first, but the game has a hell of a lot of advertising in it. The boards on the side of the pitch change with adverts (for example, we have seen ones relating to upcoming games which are to be shown on ESPN), and on the pause menu there is often a small advert in the top right of the screen (I can understand advertising on the boards, but on the menu?). I can’t be sure, but I think the sponsors on the team shirts change as well (this is an assumption based on seeing a foreign team with a British non-multinational logo on their strip). There may well be other, more subtle advertising that I’m missing.
Don’t get me wrong, this is fine. We’ve learnt to ignore advertising online, we can learn to ignore it on the PlayStation as well. What does annoy me, however, is that this is obviously a second revenue stream for the developers/production house. I’ve already paid £40 for the privilege of playing the game, and as I have said, traditionally this should be enough to keep the game going through to the next version. Had the game been set at a much lower price point, and it was obvious that the advertising was there to ensure the survival of the company, then I wouldn’t mind so much, but since it was priced at the regular level, it seems that the advertising revenue is just a nice added bonus. To me, it seems a bit odd to charge full price for a product, and then make more money by selling advertising space in that product – though it could obviously be a very lucrative model.
Is this the future of gaming? Will we see more and more advertising within games? If we do, are the prices of games going to come down to reflect the reduced need for income from direct sales? Only time will tell.
My housemate and I have just watched Return to Forever: Returns, which he bought me for Christmas. We got into RTF late last year after I discovered Romantic Warrior in my music collection. I thought I’d take a moment to express how incredibly amazing these guys are. The music ranges from the sublime to the mental, and all the while it’s so incredibly complicated and well executed that us mere mortals have no chance. It’s things like this that make me wish I’d spent longer learning guitar properly (why oh why did I choose Computer Science?!).