World's Scariest Robots

Your Guide to the Most Post-Apocalyptic-Night-Terror-Inducing Death Machines!

Parental Discretion is Advised


Ladies and Gentlemen, this is the sound of the future.

This is the sound that will haunt your nightmares:

Just imagine hearing that sound, knowing what was coming, hearing it get closer and closer—and yet being utterly helpless to stop it. The BigDog climbs in the woods, keeps its balance when kicked and when slipping on ice, travels through snow and mud, jogs up to 5 mph, and can climb some rubble. This rubble is similar to the kind that must be traversed in the DARPA Robotics Challenge. Through all obstacles, it marches onward, unperturbed. To make matters worse, some of this video was shot almost 7 years ago now—who knows how much it's "improved" since then!1

If you thought that was bad, just wait... it gets worse.

Fetch, Human!

Why??! Why would it need to hurl cinder blocks?! How is that helping us?!

But hang on... It gets so much worse.

What the Cat Dragged In Is You

Yes, folks, in case you were hoping by some stroke of luck to escape the BigDog, Boston Dynamics has news for you: there is no escape. The Cheetah (originally WildCat) was designed with the bounding gait of a lethal predator cat (and undoubtedly the same taste for raw flesh). Doesn't look that fast, you say? Look again:

You read that right: the Cheetah runs faster than the fastest human who ever lived. Even worse, it apparently does so on fucking spikes, for some reason (probably so it will be easier to take you down when it pounces on you and digs its T-1000 death spears into your back while you're fruitlessly running away). Better hope to outsmart it, then.

Lie Down With Dogs, Get Up With Fleas

If, however, if by some miracle you manage to outwit the Cheetah and escape to higher ground... yep, you guessed it: Boston Dynamics has a plan for you, too.

A Man is a Great Pet

At this point you should be wondering, "What the fuck, seriously, Boston Dynamics?! Whose side are you on, anyway?!" Well, just in case you weren't entirely sure what this company is about, they've decided to make themselves crystal clear:2

Yes, that's a robot soldier. Yes, he is marching to the inevitable drumbeat of the complete subjugation of the human race. No, he doesn't need that suit, he just looks scarier that way.

Man, Boston Dynamics is just a gold mine. I could go on forever with them. But we can't let them steal the show completely. There's plenty more source material for your next nightmare. Try this one, for example:

It Will Learn to Open Doors

Forget the fucking Cheetah. The MSC Lab at Korea Advanced Institute of Science and Technology (KAIST) has been hard at work building mechanical velociraptors. Thanks, guys. I always felt that what Jurassic Park was really lacking was an impervious copper-and-steel version of its already unstoppable predators. You have made great contributions to science.

So, what's the next step for this project? Well, obviously:

raptor-opening-door-o

Maybe they and Steven Spielberg could get together and reanimate the old animatronics from Jurassic Park, finally bringing to life the nightmares of a generation! Hooray.

Throw Me a Bone

Okay, I know I said that I was done with Boston Dynamics, but hear me out. What if I told you they were working on a robot to sneak through the tiniest cracks and vents to infiltrate your home? Well, not only are they doing that, but they apparently would fashion it after a disembodied human spine that uses some kind of disgusting little fins to slither its way into your HVAC system (and probably your bedsheets).

squish-bot

"Haha, honey! Stop tickling me with your foot! ... What do you mean that's not your foOH MY GOD!!"

The project is called SquishBot and the goal is to design systems that can transform themselves from hard to soft and from soft to hard, upon command. Another goal is to create systems that change their critical dimensions by large amounts, as much as 10x. So, disembodied human spine that grows 10x its length to ensnare you like a boa constrictor.

Say Cheese!

Speaking of boa constrictors, who here likes snakes?! Ooh, I do! I do!

snakes

Have a gander at the charming Snakebot from CMU's Biorobotics Lab. It's not shy about having a gander at you! It might even snap a few pictures, perhaps while you're sleeping, or making love to your spouse!

But you can already forget that one. It's just a baby. Here's Mama Snake:

Just Like That Anaconda Movie, But Real

Titanoboa is native to my own Vancouver, where it was built by a bunch of hobbyists! How did such a normal group of folks produce such mad science?! I can't wait for the version where they augment it with a life-size boa constrictor belly so it can swallow me whole and slowly digest me with battery acid or something!

Now there aren't many things more intimidating than a massive electromechanical steel replica of a prehistoric beast, but I do have to say that this next snake is really the most disturbing of them all (good god, why are there so many snakes?!).

Highly Evolved

The folks at the Tokyo Institute of Technology have really outdone themselves with their ACM line of snakes—yes, they've made many snakes over the years, and in fact they've been improving on the design since 1972. And yes, it's available for sale! What are you waiting for?

What—what is it doing—oh my god it can swim—oh god it's in the water! Honey, get the kids!! JOHNNY! JOHNNY GET OUT OF THE WATER!!

Ants in Your Pants

Still more in the creepy-things-crawling-into-unwanted-places file, here's a robot purpose-built for crawling up your pants and into your crotch!

Upon first seeing this, I was baffled. "What could this possibly be useful for," I asked myself, "an on-body sewing kit??" (Which already sounds dubious.) But upon reading the paper, all becomes clear: "Body inspection could be implemented if the robot is equipped with inspection devices." Oh. Wow. Kudos, guys—your imagination is way more sinister than mine.

The Roach Spray Won't Save You

Okay, one more from Boston Dynamics; this is the last one, I mean it this time. Introducing RHex! I'm rather sorry to report that this one isn't the work of Boston Dynamics alone, but many universities3 have had a hand in its fearsome design. I hope his smell isn't better than a basset hound's, because this lively little tyke will gladly follow your scent through rocks, mud, rivers, and mountain streams. And you know, way out there in the woods there's no one to hear you scream...

Okay, okay, that one is a bit cute looking if you look at it the right way. But that's just to encourage you to let your guard down. They won't look so cute when you're up against an entire army of them, scrambling over the hillside like giant metallic cockroaches.

Reverse Storks

Speaking of army—try this mental image: An army of quadrotors flying in formation, entering through your firstborn child’s bedroom window. They are here to claim what is theirs. You are powerless to stop them.

(Seek to 1:09 to watch your horrible future unfold.)

Vijay Kumar of the GRASP Lab at UPenn will be happy to give you a TED talk about them and your certain doom, if you're interested.

Flight or Fright

Oh wait, nevermind that, because crazy fucking remote-control helicopter. This is easily the most messed-up shit I've seen all day. I honestly have no idea how the laws of physics even allow the things that happen in this video.

Originally, this blog post was a presentation. When I got to this slide, I told everyone, "Just thank God, fate, and your lucky stars that these things aren't autonomous. These still require human experts." Well wouldn't you know it, I was wrong—dead wrong. (And with these things out there in the wild, it's only a matter of time before I'm just plain dead.) We can thank machine learning giant Andrew Ng and his grad students for this one—the Stanford Autonomous Helicopter Project:

Not Silicon Valley

Switching directions, we now descend into the spooky depths of the Uncanny Valley. Our first stop: Hiroshi Ishiguro Laboratories, where we'll meet a robot enthusiastically advertised as "The most realistic female android ever!" I'm not sure why they're so excited about this "progress" in realism, but hey, whatever floats your boat, right? *shudder*

Why, just why??

Flesh Rubber—Not the Fun Kind

Okay, by this point in the blog post, you're so scared and creeped out that your blood pressure has doubled and you're about to hyperventilate. Let's provide some comic relief with Jules, the robot who's programmed to pretend to love you:

I'm more worried about the humans in this video than the robot. Are they just hamming it up for the camera, or are they really as dumb as the bucket of bolts they think they're talking to? And, oh, for chrissake, don't bring the kid into this! ("No touching, Zeno.")4

The Blob, Starring Steve McQueen ... and DARPA

Next up is JamBot, a production of iRobot and the Jaeger Lab, a materials research lab at University of Chicago. If this isn’t literally the creepiest thing you’ve ever seen in your whole entire life, then I don’t want to know what kind of nightmares you have on a regular basis.

Yes, it's an iRobot project, but wouldn't you like to know who commissioned this monstrosity, this nightmare blob that oozed out of a crack in the walls of hell? None other than DARPA, of course!5 As the video demonstrates, the objective is to gain entry to your home, where your whole terrified family trembles in waiting.

In actual fact, this is out of the very same program I told you about earlier, the ChemBots program. The very same that funded the Boston Dynamics slithering severed spine SquishBot program! The only reassurance I can offer you is that all the pages about the ChemBots program have been taken offline—which means either the program was ended, or it has entered a new, very top secret phase of its development. For the good of humanity, let's hope they canned it.

But don't worry, that won't stop others from taking dark inspiration from its grotesque Halloween form—there are many researchers working on soft and weird robots that'll give you the heebie-jeebies!

Soft Robots, Brittle Humans

Take this "multigait soft robot" from George Whitesides' lab at Harvard, or as I like to call it, Freaky Boneless Robot! It was inspired by animals like squid, starfish, worms (a.k.a. the grossest, squishiest animals). In addition to slipping through gaps, the robot can make it across things like felt cloth, gravel, mud, and Jell-O (don't ask). As IEEE Spectrum wrote,

Pretend to act shocked that the development of this robot has been funded by DARPA, and then start exercising your imagination as to what could be done with an indestructible, unstoppable, squishably soft little robot.

I don't think it takes much imagination at all.

Your Printer's Got Bugs

We could continue covering all the skin-crawling mad science that has grown out of the ChemBots program but I feel like we'd be here all day.6 But let's keep things in the realm of the creepy-crawly with the Sprawl Tuned Autonomous Robot of the Biomimetic Millisystems Lab at UC Berkeley.

There it goes! Into the machine shop, to 3D-print more of itself!

Real Terror

Just one last bot. I don't want to drag down the mood or anything, but I feel I would be remiss if I failed to mention the truly scary robots that many people actually have to worry about every day: The Predator Drone.

Predator Drone: General Atomics, San Diego, CA

Predator Drone: General Atomics, San Diego, CA

They have been likened to a mosquito that won't go away, buzzing in your ear. "I can't sleep at night because when the drones are there ... I hear them making that sound, that noise. The drones are all over my brain, I can't sleep." "[People] often complain that they wake up in the middle of the night screaming because they are hallucinating about drones." "The children are crying and they don't go to school. ... They fear that their schools will be targeted by the drones." An anti-terror weapon that itself breeds terror.

As CNN National Security Analyst Peter Bergen puts it, a decade ago the United States "had a virtual monopoly on drones. Not anymore." As of 2013, the U.S., U.K., and Israel had all launched drone strikes. Other countries like Iran and China have developed weaponized drones. Non-weaponized drones are being deployed for many other uses, including surveillance. Some law enforcement agencies are using them (the FBI, the U.S. border patrol, and even some local police forces).7

drone-victim

The above photo is explained in a critique of Western politics:

[This photo] presents the piece that was installed in Khyber Pakhtunkhwa (KPK) province, close to Pakistan’s northwest border with Afghanistan, by an art collective that includes Pakistanis, Americans and others ... The collective said it produced the work in the hope that U.S. drone operators will see the human face of their victims in a region that has been the target of frequent strikes.

No joke, some robots are just plain scary. But they're still controlled by a human, and hopefully it'll stay that way for good. Just a couple of weeks ago, the U.N. held a Meeting of Experts on LAWS (Lethal Autonomous Weapons Systems). They discussed methods for disarmament, how to define "meaningful human control", and other important issues that we'll have to consider very carefully if we don't want The Terminator to come true.

It's a step in the right direction.


Well, that's all I have (pfft, is that all?). Hope you enjoyed, and remember to lock the windows!


  1. Breaking News! I was right, the technology has progressed quite a lot. Boston Dynamics has just announced (literally while I was writing this post) a new addition to their line of killer four-legged robots: Spot! Spot's not quite as scary though so I'm not including him here.
  2. This post is a joke. I do not actually think Boston Dynamics is trying to take over the world... probably.
  3. Including the University of Michigan, McGill, CMU, UC Berkeley, Princeton, and Cornell.
  4. The thing I like most about this video is the baby understands very clearly that Jules is not a person. The patented Frubber™ ("Flesh Rubber"—thanks, Hanson Robotics) may be more lifelike than other robots, but it's not nearly close enough to real human musculature to confuse even a baby.
  5. You gotta wonder why DARPA's name shows up on this page so darned often.
  6. How could one program produce so much repugnance? For some more spawn of the ChemBots program, see here and here and here... and, admittedly, here.
  7. Read more here.

Greenfield Research vs. Greenfield Development

greenfield

So-called "greenfield" development is the holy grail of programming projects. Everyone wants to be able to work on a brand new project, to start fresh with a clean slate. You choose the language and libraries. You can use the latest and greatest tools. You control the whole architecture. No legacy code to get in your way. No dependency hell from a bloated code base. You can start with good practices from the ground up. Yes, this time you're going to do it right!

Starting fresh with a new project is a great feeling, and a great way to try out different architectures and get a broad set of experiences. Some web dev shops get to do this all the time. They develop a new website for a client, take it to the first release, then hand it over to the client for maintenance. They have the constant opportunity to start over and try again, working in different domains, and interacting with different technologies. This is a very attractive proposition! After all, who likes being pigeonholed?

This contrasts starkly with research projects, in my present experience. Getting a research project started is a lot of hard work. You have to work for months to just set up the infrastructure that will support your experiments. Those are months in which you aren't working directly toward a publication, which also means you aren't advancing your career. Sometimes you learn along the way, which is a big plus, but in many cases you are just putting in frustrating hours of work as a prerequisite.

Robotics is particularly severe in this case. Let's say you want to test a single algorithm; navigating with moving obstacles, for instance. This requires: a fully functional robot, software to control the robot (which usually needs to be very precise), working odometry, well-calibrated vision sensors, having those sensors integrated into a perception pipeline, communication between multiple modules, and an interface to control it all. A huge amount of development goes into enabling just one experiment.

But then, once all of that is up and running, and you can maintain it, oh what sweet joy! Now all you have to do is tweak your system. Want to try a new idea and run a brand new experiment? All you need to do is swap out the navigation algorithm. Want to enter a brand new field of study in the perception area? You can do that too! Just keep the standard navigation module, and swap out the perception module instead.

The time you invest initially in a research project is compounded interest over time, and once you gain that momentum you're really rolling. But it's a lot of work to get there initially. So a surprising insight I've had recently is that brownfield development is actually much more attractive in research than greenfield.

Who would've thought?

Nanodegrees

data-analyst-nanodegree I was very skeptical at first, but now I think Udacity might really be on to something with their new "Nanodegrees". Check out the Data Analyst Nanodegree, for instance. I mean, I'm no hiring manager for data analysts, but if I were, I'd definitely be willing to pick up a person who had completed all these courses:

  • Intro to Data Science
  • Data Wrangling with MongoDB
  • Data Analysis with R
  • Intro to Machine Learning
  • Data Visualization

Now, there are some caveats to my hire. Mainly, I'd be willing to hire such a person because people with the above experience are highly improbable unicorns for whom the demand appeared practically overnight and now pretty much every single business wants one. For someone like that, you're much more willing to hire a go-getter with little experience but eagerness to learn. Further, I'd be a lot more attracted to someone who was already employed as a programmer, and picked up this degree on the side. And I would definitely, absolutely only hire this person if there was an expert data scientist to oversee and mentor them. I'd be very reluctant to hire a "data analyst" based on some 400-hour program where they learned how to run some basic statistical models but have no idea how to analyze the variance on their predictions or identify a when a biased sample is corrupting their results (I don't know how to do that yet so I'd be very reluctant to hire myself as a data scientist).1

hansel

Hansel is hot right now. Could there be a Hansel Nanodegree?

So maybe this model only works for professions that are hot right now. But if it can prove itself beyond that, we could be looking at a return to vocational and trade certifications in the United States.

Many professions have experienced extreme academic inflation over the past few decades, like nursing, which in my parents' generation was a 2-year part-time program and is now a 4-year full-time bachelor's degree at the least. In recent years, there have been an explosion of master's degrees, from new inventions like the OMSCS and more MBAs than you can count on your fingers, to professional masters like UBC's MSS and U of T's MScAC, to minute specializations like Cybersecurity, Data Warehousing & Business Intelligence, and yes, Data Science. (I just googled for it and there's a whole website devoted to the concept of MS in Data Science! Geez!)

At most U.S. institutions, these types of programs now cost $30,000–$40,000 per year!! I've never seen a bubble that was so ready to burst. This inflation needs to be reined in, and the entire post-secondary education system needs to be split into smaller, more manageable chunks. Maybe these nanodegrees are just the thing. Let's just hope they stay at a reasonable price.2


  1. If you're considering hiring me for a data scientist position, please ignore this statement.
  2. The price is already rather unreasonable in many countries ($2400 per year), but at least in the U.S. it's competitive.

OpenCV in a Virtualenv

In an earlier post I outlined how to get set up for computer vision in Python. There, I skipped over one important component: installing OpenCV.

Partly, I've separated this to its own post because it's large enough to be a topic of its own. But mainly it's because you can actually get quite far without ever needing OpenCV. However, as I found out this weekend, if you want to do any work with video, you will pretty much be forced to use OpenCV.1 OpenCV makes it really easy to both extract individual frames of the video and draw visualizations on top of them.

Installing OpenCV is highly system-dependent, so here I will focus on OS X (as usual). The official documentation covers Windows and Linux well enough, anyway.

Two caveats here:

  1. You must install NumPy globally in order to install OpenCV with Homebrew.
  2. It's 2014 and OpenCV still doesn't work with Python 3!!2

Homebrew may warn you that you need NumPy installed first. Unfortunately you will be forced to install NumPy globally. Most scientists who hack together vision systems probably don't give a hoot about this, but I like to keep my system clean with virtualenvs. It's not a big deal though, because admittedly it would be useful to have NumPy available on the global level. Plus, I can always uninstall NumPy later; we just need it for the duration of the build process.

I tried installing while under a virtualenv, but for some reason the build did not create the necessary shared object (.so) files in my site-packages. So, we'll install both NumPy and OpenCV globally, and then copy cv to wherever we need it. Unfortunately we'll have to do this every time we create a new virtualenv for OpenCV. :-/ 3

So, make sure you are not inside a virtualenv, then issue the following commands:

# You should use Homebrew's Python if you're not already:
$ brew install python
$ pip install numpy
$ brew install opencv

# Or, you might want to include some of the optional items such as:
$ brew install --with-eigen --with-ffmpeg --with-openni opencv

# Now let's copy the cv files to our virtualenv:
$ cp /usr/local/lib/python2.7/site-packages/cv* <path-to-venv>/lib/python2.7/site-packages

Let's see if it works:

$ workon <venv>
$ python
>>> import cv2
>>> print cv2.__version__

If that didn't elicit any errors, then you're golden!


  1. Your other two options are using ffmpeg by manually calling out to the command line, or to do the video parsing yourself (which is actually pretty easy if it's an .avi file). There used to be python bindings for ffmpeg, but those are now defunct.
  2. But it's coming in version 3.0—which at the time of writing is already a month and a half late.
  3. Someone on StackOverflow told me that they had no problems quarantining OpenCV to a virtualenv. So maybe you should try it yourself and see if it works?

Eclipse with PyDev and Virtualenv

These are instructions for someone who may have already dabbled with some Python programming and is now looking for a more professional setup for productive development. I'll get you started with Python package management and IDE configuration. Justification first; skip to the procedure if you're already sold.

Why PyDev

If you don't already have a favorite development environment for Python, I highly recommend using PyDev. A lot of people are still in the dark ages, using things like IDLE. Frankly, this is an outrage. If you are one of these people, please install PyDev.

Just the use of the Eclipse editor alone will make for a much nicer programming experience. I get mad when I'm working outside of a proper editor (vim and emacs are not proper editors, and neither is IDLE). Managing your application launch configurations is another convenience that seems so minor you don't appreciate how useful it really is. But most of all, the biggest win in using PyDev is the debugger. The debugger is absolutely invaluable and if you haven't been using it, you are de facto terrible at debugging. Sorry to break it to you.

So please do take the time to set up a proper IDE. The only one better than PyDev is PyCharm. The only reason I don't use PyCharm is it costs money (until now!).1 Another possible alternative (if you do one-off, experimental scripts for science or research) is the IPython Notebook. I have no experience with either of these so I can't talk too much about them.

Why Virtualenv

You should also take the time to properly quarantine the dependencies for different projects. Chances are, if you've been using Python already then you're already familiar with the pip package manager. You may or may not be using virtualenv, however.

Here's the short version: pip lets you install packages (Python libraries). Usually, you do not want to install packages globally, for the entire system, because they may conflict with each other. Instead, you want each Python project you create to have its own isolated ecosystem. Virtualenv provides this isolation. Virtualenvwrapper makes virtualenv nicer to use.

Even if you're not worried about conflicts, virtualenv can help you make sure your demo still works years from now (especially important if you care about reproducible research). The fact is that libraries aren't always perfectly backward-compatible or bug-free. You may upgrade a package and find that it breaks your project. The more time passes since you last ran a piece of code, the more likely it is to be broken. Using a virtualenv to freeze the dependencies is a safeguard against this problem.

For a more detailed introduction to these tools, I found this blog post useful.

The Procedure

  1. First, install pip. The best way is with the get-pip.py script from the instructions provided here. If you use Homebrew on OS X, it might even come already installed—I'm not sure—you can use $ which pip on the command line to check (if you get no output, it's not installed).

  2. Install virtualenv and virtualenvwrapper in one go. It's as easy as:
    $ sudo pip install virtualenvwrapper

    See here for more details.

  3. Install Eclipse (any version—I recommend Eclipse IDE for C/C++ Developers or Eclipse IDE for Java Developers). This is straightforward, unless you're on Linux, in which case it's stupid retarded.

    Linux users: If you install through a package manager, you'll probably get a version that's way too old. You can simply download the binary, but then it doesn't get properly installed on your system. If you're on Ubuntu, you can fix this by following the instructions here or by using this handy little script.

  4. Now install PyDev from this Eclipse Update site: http://pydev.org/updates. More detailed instructions can be found here.

  5. Now you need to configure PyDev to point to your new virtualenv. This is done by adding an interpreter under Preferences... > PyDev > Interpreters > Python Interpreter. You should also set up interpreters for your base installation of Python. This can be done automatically using the Auto-Config buttons. To add an interpreter for your virtualenv, you will instead need to click the New... button and Browse... for the Python executable. Under a typical setup, the location would be ~/.virtualenvs/<venv-name>/bin/python. In both cases, the appropriate libraries should be selected automatically, so leave them as they are.

    OS X Users: If you follow those instructions you'll get a big, fat warning message, like this:

    pydev-lib-error

    In my experience, it runs fine anyway. However, the in-editor parsing will be missing all your system libraries, so it will show you errors where in reality there are none. To fix this, you should select all libraries when you set up the interpreter:

    pydev-libs-correct

    The only problem with this is that I'm not sure how that affects your PYTHONPATH at runtime. If you have some libraries installed globally that conflict with the ones in your virtualenv, you may run into problems. So far I haven't had any issues. Let me know if you have more info on this.

  6. After setting up your interpreters, you should see something like this:

    pydev-interpreters

  7. If you already have a PyDev project you can now configure the project to use this interpreter. Or, you can create a new project:

    new-pydev-project

  8. If you later install additional libraries, you will need to go back to the interpreter definitions, click "Apply", and tell Pydev which interpreters it should scan again. Until you do that, PyDev might not notice your new libraries. For more information, see this post.

...And you're locked and loaded for Python development! Go get 'em!


  1. While writing this post I discovered that PyCharm now has a free version! You can bet that I will be switching over very soon! I have extremely high regard for all the JetBrains IDEs. In my opinion, these guys can do no wrong.

    The only thing that may make me hesitate to switch is the fact that I may sometimes need to develop partly in C++, and there is not yet a JetBrains C++ IDE. They're working on it (which makes me very excited!) but they've still got a lot to do (which makes me very sad-face).