Welcome to my technically oriented blog. Here you can find assorted ramblings on robotics, programming, society and technology etc. Updates are sporadic.
I recently upgraded both my computers from Ubuntu Feisty Faun to 7.10, Gutsy Gibbon. My advice to anyone else running Ubuntu at the moment, don't upgrade. Since upgrading, a few things have worked better, gnome is flashier but so many things are broken that I wind up rebooting several times a day because I don't have time to try and fix them correctly. Among other things: the sound system hangs every few hours, it takes about 5 minutes for the logout menu to appear, no USB peripherals work reliably and the new "Screens and Graphics" application does not work remotely as advertised. If I could downgrade back to Feisty I would do so and wait a few months for them to iron out the bugs. I'm really curious to know how Gutsy got released in this state, it reminds me of Safari 1.0. Would have made a good alpha release, an OK beta but definitely not full release.
Here is another video and article from the Robo-Development conference.
This past week I took a break from graduate school to go back to Anybots to help prepare for and run our booth at the Robo-Development Expo in San Jose California. We showed both Monty's manipulation ability including handing out business cards and interacting with the crowd and Dexter's brand new gait. The security attendants and the show told me that we were the most popular booth there which was very gratifying to hear along with many of the comments from the conference attendees. For our very first conference it went amazingly well. We almost made it through without a single technical failure, only having a component fail in Monty's right hand 3 hours before the end. It was also a good learning experience of what it takes to deploy our robots out of the lab and run Monty full blast all for two days.
There was a fare amount of press at the show and having the only full sized humanoid robots we attracted a lot of attention there too. Much of the press was nice, some not as much, since this is my blog though I'd like to make a couple of points from the insider's perspective. Of course a number of people were disappointed that Monty was tele-operated, a fact we never tried to hide, "man behind the curtain" jokes aside. I would have been disappointed and even disinterested because of that when I was focused on autonomy myself. Spending a lot of time on tele-operation, I really think that our incremental autonomy approach is the right path for useful robots right now.
Autonomy will be added as the technology to enable it matures. Right now the lowest level walking and two wheeled balancing is automated but the driver tells the robot where to go. The next level of autonomy might be having the robot navigate from place to place and notify the operator when it arrives so they can start work. I believe the iRobot Packbot uses something like this since path planing, obstacle avoidance, etc. are pretty well solved at this point. After that autonomy might assist the user by picking up objects automatically once the user puts the hand near by and signals the command. As the level of autonomy increases the number of robots which a single operator can control will increase. The main point is that we don't have to wait for high level autonomy to mature to develop robotic systems and make them practical.
The other thing I'd like to mention is our new gait for Dexter. A significant hardware and software update enabled us to develop a much more aggressive and robust walking gait. While it is still far from perfect, as Dexter fell down a number of times during the show, this gait takes more advantage of our dynamic walking techniques and our use of pneumatics. Unlike ASIMO or HRP-2 or other robots using ZMP to walk, we don't have to precalculate each step based on complete knowledge of the kinematics of the robot but, like a human, figure out during the step where the foot needs to go to keep from falling over. One advantage to this is that if we get pushed or pulled while walking, we don't just fall over. Dr. Blackwell demonstrated this by pulling Dexter backward while he was trying to walk forward, the result was that he walked backward but didn't fall over. Pneumatics is important for kind of walking for two reasons: first electric motors strong enough to support a robot can't move fast enough unless they are made huge and second because the aggressive motions of this gait would shock any gear train to death in minutes. Finally this new gait is a big step toward jogging or running. I can't wait to see how things have advanced when I come back full time in January.
Anybots will be one of the main exhibitors at the Robot Development Conference in San Jose this October. We will be showing both Dexter and Monty with demos ongoing over the course of the two day event. This will be the first time Dexter and Monty will appear in public and we're doing a great deal to prepare so I'm anticipating a good presentation.
Another robotics event I've been meaning to post about for a while was the Homebrew Robotics Club meeting I attended last month. People brought a wide variety of robots, the most advanced of which were two RoboMagellancontestants from the San Francisco robotics contest. The most interesting thing for me, however, was the kids. A lot of the club members brought their children with them and I was interesting to see these 5-10 year olds who had clearly grown up with robots and enjoyed torturing them by waving sweaters in front of their cameras, running circles around them etc. I was also impressed by a couple of kids who showed a really good level of understanding of how the robots they'd build (presumably with parental help) worked and what they were capable of. Going along with that, there were a good number of parents who were thinking about how to teach their young children about robotics and programming. Doing a little searching, I found a tutorial on Python programming for elementary school aged children which is an awesome thing to have.
The other thing I saw at meeting was the difference between hobby and professional robotics and how lucky I am in my current job. Not to disparage any of the robots there, most of which were built for only tens to hundreds of dollars, but after my robotics projects in college and graduate school and a month working on Dexter and Monty, I was a little nonplused. Once you've gone pro, I guess you can't go back. Daily exposure to the cutting edge is a great inspiration. Right now I'm starting the design work for a new hobby robot of my own but it is going to be quite a cut above what I've done before. It'll be interesting to see how far I actually get and how quickly.
This week I began working at Anybots, a start-up company in Silicon Valley working on humanoid robots. We presently have two robots, Dexter, a bi-pedal robot which is the world's first human sized, fully dynamically balancing bi-pedal robot, and Montey, a two wheeled balancing robot with two dexterous arms. See the official website for more details. I will be working here at least through the end of August.
Anybots being such a small company I was expecting to wind up doing a little bit of everything; my first day typified this idea. In the first 10 hours I: worked on repairing the robot's hand, designed a new circuit board for the next generation hand, started writing firmware for that board and translated research material from Japanese into English. It is hard but exciting work and I have to say it's nice to be in a group where everyone is as passionate about robotics as I am.
The hand I'm working on is Montey's right hand which is operated via a waldo glove and replicates a human hand as closely as possible. It's an impressive piece of complex engineering with 18 degrees of freedom in the fingers alone. The only anthropomorphic hand I am aware of which is more advanced than ours is that of Shadow Robotics in the UK but they lack even a wrist, let alone the rest of the arm. Montey's left hand has a classic robotic claw and just like in the movies, it's grip is far stronger than human hands.
This excellent article by Mary King was recently linked on Robots.net. It is an excellent introduction/summary of how people are thinking about robots in the West and Japan in addition to a comparison of the two. I have met / read books by a number of the notable people quoted in the essay and will have to read the rest of the books mentioned. The article is definitely worth a full read.
When I was in Japan I spent as much time as I could studying Japanese robotics research, attending Robotcup2005, exploring the robotics exhibits at the World's Fair in Aiche, visiting Sony, etc. The article echoes the impression I came to of how robots are viewed in Japan. Japanese culture is so different from that of the USA that it is almost impossible to succinctly translate their ideas. Generally speaking, Japan has a down-to-earth / can-do / craftsman's attitude towards robotics. As opposed to much Western research which is focused much further into the future. As important as I believe it is to consider the consequences of our technological development, I think Japan's view is much more useful. A mix of the two styles of thought is probably the best solution.
One reference which I particularly liked was the World Robot Declaration issued by Japan in 2004, quoted below. It isn't Asimov's 3 laws of robotics but I like this vision of where robotics should be going:
Confident of the future development of robot technology and of the numerous contributions that robots will make to Humankind, this World Robot Declaration is issued on February 25, 2004 from Fukuoka, Japan.
- Expectations for next-generation robots
- Next-generation robots will be partners that coexist with human beings
- Next-generation robots will assist human beings both physically and psychologically
- Next-generation robots will contribute to the realization of a safe and peaceful society
- Toward the creation of new markets through next-generation robot technology
- Resolution of technical issues through the effective use of Special Zones for Robot Development and Test
- Promotion of public acceptability of robots through the establishment of standards and upgrading of the environment
- Stimulation of adoption through promotion of introduction of robots by public organizations
- Dissemination of new technologies related to robots
- Promotion of the development of robot technology by small enterprises, and their entry into the robot business. The government and academia shall provide active support for such efforts.
One hears the term "Generic Programming" every once in a while in computer science or programming circles as a good practice for code reusability or sometimes just as a buzz word. It is often described as "programming with concepts"[1] or software patterns. I tend to think of the process as writing algorithms without applications. That is, when you write the algorithm, you don't include anything which is specific to one application, hence making it generic.
I am not an expert on the topic and this is not a tutorial, though I have collected a few good links below. What I want to do is advocate everyone who does any programming trying it at least once. Recently I created a library implementing generic Markov chains. I did have an application in mind but decided as an exercise to make in as generic as possible because I anticipate having many future uses for this library. It turned out to be a fun challenge and rewarding to have completed something I'll be able to use for other projects. My implementation was in Python which made it slightly easier due to its weak typing, however, even in Python, one needs to be careful not to assume anything about the type being used (numeric, iterable, etc.) anywhere or to assume too much about the application.
Systm is a geek oriented Internet TV show. It only has a few episodes but they are all interesting and have taught me something new. Of particular interest, I was watching this episode and the second or third segment is an interview with Dr. Trevor Blackwell, the founder of Anybots and my new boss, about his self balancing unicycle. Watch it if you want to see who I'll be working for. The episode is about Maker Faire which looks like an amazing event, exemplifying the spirit of creativity and engineering I aspire to. If only this year's were a little bit later. It will be in the Bay Area May 19th & 20th so I will just miss it by a couple of weeks. Well it's something too look forward to as an advantage of moving to the Bay Area. This any many other tech events. Finding time for them will be the hard part.
This evening I attended a talk by B.Gentry Lee, science fiction author and Chief Engineer for the Planetary Flight Systems Directorate at the Jet Propulsion Lab. Science Fiction authors and Futureists often grate on my nerves when they start making predictions because I feel they, more frequently than not, fail to take into account the real complexities required to bring their predictions about. Most of what Mr. Lee had to say, on the other hand, I found insightful. Largely because he has put much more thought into his predictions but probably more honestly because he didn't touch on any topics to close to my heart (robotics, machine intelligence, AI, etc.). As is usually the case when I listen to a talk or read about things on a cosmic scale or predictions for the next hundred years, I was left with a mixed feeling of inspiration and concern. Inspiration at the possibilities ahead and concern about the changes to come. China becoming the dominant world power, energy crisis, climate change, etc. I have to wonder where I and those I care about will wind up in all of this as it will certainly happen in my lifetime.
Tonight's talk was another example of how the talks and seminars at a University are more useful than classes. I make a point of attending as many as I can but next week there are a number of presentations I will be unable to attend because they conflict with classes. In some cases on the same subject as the seminar. Ideally I would like to find an environment where I lectures introducing new ideas or aspects of fields from brilliant scholars regularly without having to worry about classes. I usually find that the details can be more efficiently learned through independent study and experimentation.
Education, particularly science, math and engineering, is a subject close to my heart so I think The Futures Channel is a pretty cool website. They create short documentaries aimed at middle/high school students with interviews from real engineers at NASA among other places. If you have a few minutes it might be worth checking out a few.
Anyone who has studied both linguistics and programming languages will have realized that there are remarkable similarities between the two. Minoring in computer science and Japanese as an undergraduate, the more I learned the more I was struck by the parallels. Much like natural languages, programming languages aren't inherently superior or inferior to one another but differ in how easy it is to express certain concepts and the culture which has grown up around them. Just as a fun exercise I've tried to associate each of the programming languages I'm familiar with to a natural language based on their structure and culture.
Robotics is like taking a piece of abstract imagination. Making it concrete and sending it out to accomplish things on its own.
For as long as I can remember (and I'm told longer), I have been obsessed with robots. I checked out an read over and over again every book on robotics in the local libraries and when I was five I build a "prosthetic arm" from cardboard, paper and string. It had three working fingers that could grip things when operated by strings from the inside. I started learning embedded programming with a game called C-Robots. While no real robots physical robots were involved, it was low level programming and the competitive nature of the game forced me to learn how to write programs which ran fast and efficiently.
Soon I moved on to a more widely accepted robotics prototyping tool used by such prestigious institutions as Cornell, LEGOs. At age 13 I beta tested the LEGO Mindstorms RCX. With the RCX and the backing of my brother and my thousands of LEGOs, I built wall followers, photo-tropes and all-living-room-terrain vehicles. Quickly smashing my head against the limits of the Mindstorms programming environment I switched over to Not Quite C which provided another friendly embedded programming environment for learning.
My next robot was a Sony AIBO ERS-220 which I am still using today. When the first AIBO had been released a few years earlier I was excited and at the end of my freshman year at Lawrence University, I received a scholarship which allowed me to purchase one. I played around with the AIBO for a while, then during my senior year arranged independent studies on AI planning and multi-robot coordination. In the process I helped bring robotics back to Lawrence. After a decade since the last student who had worked with robotics at Lawrence, robotics is now being integrated into the undergraduate computer science curriculum.
Now as a graduate student at the Center for Automation Technologies and Systems at RPI, I am working with distributed mobile sensor networks or swarm robots. It's an exciting field because of the applications from exploration to environmental monitoring to search and rescue to military serveylence . And extremely challenging because of the need to coordinate tens to thousands of individual nodes, with extremely limited capabilities to accomplish large tasks. After seeing a demonstration of the iRobot swarmbots where there were noticeable communication failures, I decided to focus my research on how to coordinate the movement of mobile nodes to ensure that the network remains connected.
Robots are no longer science fiction, the technology to make real robots which make life safer for humans exists, it just needs to be put together. There are very challenging problems yet to be solved but no fundamental reason why they shouldn't be solved in the near future. What bothers me most about the academic environment is the lack of drive to create practical robots. I'm equally disturbed by the reluctance of American companies to invest in anything which won't turn a profit in the next 3 months. My career ambition is to start or join a company to build practical field robotics systems. The robots should be partially or fully autonomous, requiring only high level commands from their operators. I am particularly interested in creating fire-fighting (my inner pyro showing itself) or search and rescue robots.