Hacker Scouts has an awesome technical program!
 (and needs your help to expand!)


What is Hacker Scouts?

Hacker Scouts is a national non-profit organization that teaches kids about science, technology, engineering, art and math (STEAM). Founded last Fall, Hacker Scouts has grown from a local program to a national organization with over 30 guilds.

Thus far, there have been a number of posts about why Hacker Scouts is great from a childhood development perspective: it offers individualized instruction, self-directed learning, and hands-on experience. From a technical perspective, Hacker Scouts is exciting because of the material it covers, and how in-depth it goes. Scouts are given as much information as they want, which often significantly exceeds what they are “expected” to be capable of learning.


Danny Reichert learns how to weld with an oxy/acetylene torch. Danny plans to use his knowledge to build an autonomous go-cart.

Why Hacker scouts is awesome:

(1) The material!

The Hacker Scout curriculum was laid out by engineers and experts who use these skills every day. They distilled the coolest part of what they do into a tree of skills designed to guide kids to achieve similar goals.

The skills required may take a while to acquire, but unlike the tedium of a forced lecture, kids are excited to learn because they know it will bring them closer to their goal.  The motto of Hacker Scouts is “The Unrelenting Pursuit of Knowledge,” but nothing is taught without a clear purpose or implementation in mind.  Rather, Hacker Scouts builds on one of the basic ideals behind engineering: with the right set of skills, you will be able to do/make anything you want.

(2) Education for All – Hacker Scouts is Open Source.

From the beginning, Hacker Scouts was designed as a program that would be open to everyone, with all the material made open source. Our code is BSD licensed, and our material is Creative Commons: Share-Alike. This has some really powerful implications:hammeringsm

  • We are sticking to our principles. We believe all educational programs, if they are truly interested in furthering knowledge, should be open source. For example, how can you really learn to program if your compiler is closed source? You have no way of accessing the ultimate “truth” – with a black box system you can only guess as to the inner workings. Only in an open source system can the motivated student really pursue her interests in depth and find exactly how things work, down to the smallest detail.
  • The internet needs better educational resources. So many educational programs hold onto their knowledge and expertise as their only asset, which results in a dearth of solid educational resources online. Educational companies come and go, and when they do not release their materials, they do nothing to improve the world.
  • Education is a community effort. Just look at Wikipedia vs. Encarta; the contributions of a learned community can far outpace the efforts of a few paid curators. Further, the type of knowledge curated by Hacker Scouts requires community feedback – how else would we come up with things like: how to solder BGAs with a skillet, or how to build a hydraulic robot powered by syringes? This type of information requires the creativity of a large group of contributors.
  • By offering the information at no cost, Hacker Scouts sets the bar for the rest of the industry. Since Hacker Scouts offers its information freely, any competing agency must offer something more than just the same knowledge reheated. Competitors must add knowledge, or mentorship, or innovation – thus Hacker Scouts improves the whole educational industry.

(3) Hacking, not Making


Whoops! Miranda Wong uses a solder sucker to fix a solder bridge on her Hackerling Circuit.

When we first started out, we discussed the merits of naming the program Maker Scouts instead of Hacker Scouts. One example from our discussions captures the spirit behind our program quite succinctly:

If I told you I was making cookies, it could mean I was using a recipe, or maybe even heating up store-bought cookie dough.

However, if I told you I was hacking cookies, it would tell you that I really knew my stuff! You can imagine me testing out different recipes, thinking outside the box, trying new crazy ideas until I found something really awesome.

That is the idea behind Hacker Scouts. The maker movement is wonderful at getting the common person involved in technology, but Hacker Scouts focuses on taking people much further. Hacker Scouts seeks to get kids deep into technology and science – laying foundations that will last a lifetime.

For example:


  • Rather than playing with snap circuits and little bits, we teach soldering, and circuit design.
  • Rather than programming with Scratch, we teach C++ and Python
  • Rather than Lego Mindstorms, we teach chassis design and motor controllers

Why not? If an 8-year-old is physically able to solder, she should learn! Snap circuits, Lego Mindstorms and Scratch are all great learning tools, but each has their limitations.  We’ve found when kids are exposed to the ‘adult’ tools, they start to realize that their biggest dreams are actually achievable.  When we give a child a hammer, she says “I could build a birdhouse”.  When we give a child a welder, she says “I could build a skyscraper”.

This philosophy is epitomized in the badge tree.  After every badge a scout earns, that scout will be able to design something new. For example, after the microcontroller badge, a scout will be able to make an Arduino from scratch. And if a 10-year-old can design an Arduino, think about what they will do when they are 12, or 16, or 20… And that is why Hacker Scouts was created.

The resources are out there; help make it happen.

Hacker scouts is currently growing like wildfire (the interest from kids has been overwhelming) and needs support from the technical community to keep growing. So far, Hacker Scouts has been run by a small and very dedicated team, but that team will need to grow in order to support a large national program.
Hacker Scouts is the program we all wish we had when we were kids. If you want Hacker Scouts to continue to be around for your kids, now is the time to give your support!
Here’s how you can help:

1) Check out our kickstarter.
Hacker scouts is setting up a national headquarters in the Bay Area. From this base of operations, we will be able to grow the program much faster!

2) Volunteer to mentor. Hacker Scouts is a community that requires technical mentors. Teaching experience is not a requirement!  Children appreciate it when you talk about what you know, and they will  ask you questions that will really challenge the depth of your understanding.  All Hacker Scout mentors are constantly learning new skills, and honing their existing knowledge.


To learn more about Hacker Scouts, go to hacker-scouts.org.


The problems with Bayesian translators

So I was translating the lyrics of the German-dubbed Lion king songs (which is a normal thing that people do in their spare time :)) and I ran into an interesting phenomenon:

So Google believes the phrase means “sounds sordid”, but the actual words mean “stupid critters”
A fairly big mistake.

As it turns out, those are the words _at that point_ in the English version:

Be Prepared” – Original English

Seid Bereit” – German dubbed

Translated German ->English

Hyena: And where do we feature? Und was springt für uns raus? And what is in it for us?
Scar: Just listen to teacher. Ich lass’ euch schon nicht aus I won’t forget about you
I know it sounds sordid, Ihr dämlichen Viecher you stupid critters
but you’ll be rewarded Der Lohn ist euch sicher your wage is safe

So pretty clearly, Google is messing up the translation because people keep “translating it wrong” in the internet, and the translator does not know any better.  Google is upfront about how their translate works:
” By detecting patterns in documents that have already been translated by human translators, Google Translate can make intelligent guesses as to what an appropriate translation should be.”
– from “http://translate.google.com/about”

To get this result, a number of factors seem to have conspired to produce this result:

  1. dämlichen Viecherdoes not appear much on the internet, except in context of the Lion King:


    “dämlichen Viecher”

    “dämlichen Viecher” -Lohn

    # of results



  2. There are few (if any) positive examples of this phrase used in a site that contains the translation.  For an unknown reason, although other Lion King songs are translated in the German->English fashion, Seit Bereit never seems to be translated.  At least not in text; there are a number of videos that contain a correct-ish translation on youtube, (with German and translated English subtitles) but alas El Goog has not managed to pull text from videos (yet).
  3. The sites that do have dämlichen Viecher along with a lot of English text (thus getting flagged as a site that may have translations) are highly correlated.  There are a ton of sites that list (in a very unhelpful manner) the lyrics to these songs in different languages, but only in the language that they are dubbed in.  This promotes the statistical translator’s confidence that it has found the correct match.

The reason I actually took the time to investigate and post about this phenomenon is that it tells us a lot about the underlying algorithms at work in the translator. It tells us:

  1. The way Google finds pages that it should use as translations
  2. That Google probably uses syntax trees to large parts of a document to elsewhere int he document (which is fairly common, so no surprise)
  3. That checking phrases against their components must be weighted very low, or not done at all (since each word is correctly translated)  This would make sense if you were translating a series of chinese characters, but it seems to me that in European languages phrases are strongly correlated with their component words.

Fun stuff.  Also, I’m going to see if this post has any effect on the translation 🙂



No Comments

Factory Visits!

It has only been a 4 days in China, and Huan has already set up a factory visit!   Huan’s fiance’s father’s has 3 cousins (who are siblings), each of whom owns his own factory.  All three brothers were originally factory workers themselves, and saved up enough money to buy some equipment and start producing things on their own.   The trip to the factory was about ~1.5 hours, but it was well worth it.

Factory #1

The first factory we visited was the youngest brother, who had started his factory first.  We talked to the youngest brother for a long time about his capabilities, and about how we could work with him to develop a prototype.  He seemed very interested in working with us, since he makes mostly car parts, and wants to branch into higher tech parts.  Discussing business with him was exciting, but it was also really cool to see how the factory works.

Since making a mold is ~50,000 (I’ve been quoted that price in RMB and USD, so obviously it varies a lot)  you start out by milling a prototype out of plastic/metal, and making sure that is exactly what you want before going to the final version.   Once you have the final version, they have a machine that makes the mold directly from the cad file.  The mold is then used in the injection molding machine (see pics), where plastic or metal is squirted in, and hardens.  Then some guy just grabs it out, and chuck it into a pile, which goes to some other folks who de-burr it and clean it up.   It was Sunday, so the factory was not at full operation, but a number of people were still working, so I got to see the injection molding machine, as well as the de-burring process.


Here is a video of the worker running the injection molding machine:


Factory #2

The next factory we visited was a screw factory.  It seems pretty straightforward, but there are some very interesting processes that go into making screws that I never really thought about.  The metal for screws comes in big rolls of round extruded steel (or other metal).  It is then cut and pressed to make the head.  Then the indentation is made in the head, and the ridges are cut.  Finally, the end is tapered in needed, and then the screw is electroplated, for that nice shiny finish.  The whole process takes 4-5 machines, and only takes two people to run!



The third  factory we vistited also did injection molding.  It was a bit bigger, and newer, but was doing very similiar practices. One cool thing was that we got to see an injection molding machine that was being installed.  There was a large amount of unused space in the factory, which surprised me given how space is at such a premium in china.


After seeing the three factories,we went to the first brother’s house, which he designed, and on which he was finishing construction.  The place had three stories, and he designed the first two floors to act as an assembly area.  His involvement in low level operation is impressive – even though he now manages ~100 people, he still plays a very personal role in production.



No Comments

In China!

So, I’m in China now! (For some explanation, see my Haxlr8r post)

my huge pelican case


Getting to Shenzhen was actually easier than expected – I grabbed a skylimo at the Hong Kong airport, so for ~$20 they took me to the GuangHuang border crossing. Usually, they will take you all the way to where you want to go in China, but they said my suitcase was too big, and too suspicious, so they didn’t want to take it across. (not really the case, they were just taking advantage of me) The border crossing was also very simple, which I though was surprising given my very large pelican case.  (I would have been suspicious if I were a border controller…)

After crossing the border, I took another car to the apartment we rented.  I printed out the address on a slip of paper before hand, so I gave that to the driver.  That was good enough to get him close, but once we were within a block of the apartment, he kept jumping out and asking people where to go (of course I didn’t know we were within a block of the place, so I was getting pretty worried)  Finally he found the apartment, and where I met Huan and Sammi.  Arrival success!

The Apartment

The apartment is kind of small and dirty, but hey, it’s the cheapest we could find, and they are renting to us for just 4 months.

front door

my room

Our Living Room

living room


The Surrounds


I am totally blown away by how many people are here. I don’t actually see that many people, but there are so many apartments everywhere!

This picture is taken from the balcony.  In addition to all the apartment complexes, you can get an idea of the pollution.  The air smells pretty bad, and you can’t see very far.

Update: The pollution actually varies a lot.  Some days, you can see quite clearly.  Also, either the smell has decreased, or I have gotten used to it.





Anyway, I am super excited about being in China!  This is going to be such an amazing opportunity!

No Comments

So you want to burn things…

After a discussion with the wife, it was decided that I not buy any high powered lasers, Fresnel lenses or parabolic mirrors if I could not come up with better uses that to “burn the neighbors”.  Oh reason, you are a harsh mistress.

Anyway, I did a bit of research, and here are some good options for ways to burn the neighbors:


Laser Diodes

Simple and effective, this is a laser pointer on steroids.  Normal laser pointers run at ~5mW, and take several seconds of direct contact to do any damage to your eye.  You can buy diodes all the way to 1W (and possibly higher) , and even pre-assembled  ‘laser pointers’ in the 1W range.  These devices can blind you instantly even from a diffuse reflection.  (note that I don’t have any scientific data to back up these blinding claims)

These are pretty cheap.  you can get the whole setup running for less than $100.  Also, since it is a laser, you don’t have to worry about focal length as much.  The laser will diffuse over distance, but unlike a lens or mirror, there is not one spot where you have to use it.

Laser diodes are capped in the power they can put out – simply by how much light the diode can generate before it melts.  So, whereas these lasers are great for starting fires, they won’t cut through cars anytime soon.  You are probably limited to cutting paper and thin plastic.


    • For the lazy and/or rich, a pre-assembled option exists from wickedlasers.com.  This seems to me scarier than any other option.  If you assemble this yourself, you at least have some idea of what power is involved, and what it can do.  However, this is a ready-to-use, no-knowledge-required, incredibly dangerous item. The Arctic Series laser is $300 for a 1W laser, and can ship today!
    • For the DIY’er, there are a number of good resources:


A laser diode


$11.00 + $4.52 shipping 405nm 150mw High Power Laser Diode
$11.50 + $4.52 shipping 808nm 1000mw High Power Laser Diode
$50 1W 445nm Blue Laser Diode
$10 250mW 650nm Red Laser Diode

You also need something to power the diode. A few people I found built their own regulator, but you can also get them pretty cheap:

Input Voltage Output Voltage Output Power Price Description
2.25V + Diode Forward Voltage (Vf) 1.25V to 9.75V 5mW-400mW $18.00 + $4.52 shipping RKCSTR Constant-Current Micro Drive
3.7-4.2V 4.8V 200mW-1W $15.50 + $4.56 shipping 1W 445nm/405nm laser driver
2.0V-5.5V 2.0V-5.5V >1W $25 Micro Flex Drive

If you follow the links, you can see that the two good places for these parts is the amazon seller Laser Hack and the website lasersurplusparts.com. The latter seems to have more info. Even though their laser diode is more expensive, I would recommend that route.

CO2 Laser (Death Ray)

So if a 1W laser is too puny for your plans, head over to United Nuclear and pick yourself up a Death Ray. These are water cooled CO2 lasers, similar to what is used in a laser cutter, only without the protective enclosure protecting you, your pets and neighbors.
This is powerful and looks amazing.  You can imagine mounting it on a turret and burning all who oppose you.   From my experience with laser cutters, this laser could easily burn through most plastics and thin wood in seconds. The website states that it can also burn through steel and rock.

Unfortunately, you have to pick up the laser tube in person from Laingsburg, MI. This type of laser is also understandably more costly: the 20W version will run you ~$800 and the 100W version costs over $2000, when you buy all the supplies (and good luck building your own 100W power supply)
This type of laser is also less coherent – to achieve the above cutting powers, you will need to use focusing lenses that will limit you to a fixed range. Furthermore, all the focusing lenses I have found for this type of laser are only for short range – oddly enough, cutting steel from across the street is not a big use case for this product.
Finally, this is super powerful. Your eyes, your cats and neighbors are easier to cut than wood. Forget blinding you, this can burn out your whole eye in a matter of seconds! This type of laser is supposed to be used in a room with interlocks to prevent the laser from firing when anyone is in the room. Since this is not provided, you are responsible for not killing yourself.

Using the Sun

OK, lasers are cool, but we already have a large, practically coherent light source that can blind you and set people on fire: the sun! However, to harness its power you need to focus it. You can do this with a lens or a mirror. When considering such an option here are the factors that come into play:

Lens Size

The sun radiates energy at a fairly uniform intensity, which can be measured in Watts/square meter. The larger area you collect light from, the more power you get. The level of radiation at the top of the atmosphere is ~1400W/square meter. Not all of that is visible, and a lot of the UV is blocked by the atmosphere. The radiation at sea level is ~1kW/square meter. Pretty decent – much more powerful than the lasers, if you can get a large lens/mirror!

Focal Length:

For normal images, the focal length of the lens (or mirror) relates the distance between the object imaged and the focused image produced by the lens, and the size of the focused image. To get the most power, we want the smallest focused image. The size of the image is proportional to
(object size)*f/(f-d)
where f is the focal length and d is the distance to the object (in our case the sun). The sun is  far away (10^8 km), but it is also big (10^6 km), so the equation becomes
(object size)*f/d = f/100

A smaller focal length means a smaller image, meaning more intensity. However, the distance to the image is also given by d*f/(f-d), which for the sun becomes just f (actually -f, for the other side of the lens)
so if you want to burn that car across the street, you’ll need a lens with a focal length of ~20m.

Parabolic Mirror

A parabolic mirror focuses light as it reflects, allowing you to direct the sunlight while focusing it, which is important for burning your southern neighbors (for those of us in the northern hemisphere). However, making curved mirrors is a difficult task, and few good mirrors parabolic mirror suppliers exist. One solution is to approximate a parabolic surface with many tiny flat mirrors. Here is the one decent supplier of real parabolic mirrors I found.
Unfortunately, the focal length is very small.

Fresnel Lens

If you have normal mirrors, or are not particular in the direction to which you are burning, a lens works well. However, meter sized glass lenses are incredibly hard to come by. Instead, you can take advantage of a Fresnel Lens, which creates the same first order result at a much cheaper price point.
From the same crazy guy who sells the parabolic mirrors, you can buy a framed Fresnel Lens for $79-$300, depending on size. The biggest focal length is still just 34 inches.

Using Multiple Lenses

The good news on focal lengths is that you can combine multiple lenses to change the focal length:

\frac{1}{f} = \frac{1}{f_1} + \frac{1}{f_2}-\frac{d}{f_1 f_2}.

Where f is the resulting focal length, and d is the distance between the two lenses, with focal lengths f1 and f2.  If  d > f1+f2, your focal length is increased.


So, those are the options as I see them.  The original idea was to put a laser on the Bilibot, so it could burn its way out of a box/past barriers, but after doing the research, I’m pretty sure it would just catch the house on fire.  Oh well.

No Comments

What I’ve been up to…

It’s been a while.  There’s been a lot of change going on, mostly personal, but worth putting down.

There’s the overview:

  • June: quit my job at MIT
  • July: Drove from MA to CA
  • August: Got Married!
  • September: Honeymoon in Italy
  • October:  moved into my new place in Oakland

I suppose I’ll make a post about each month/event.


No Comments

I’m on TV!

The PBS segment with my work with the Kinect finally aired!  It was pushed back a number of weeks, due to other more time sensitive material being aired.

check it out!

Shooting a TV segment was an interesting experience.  There were many takes from various angles, and a lot of back-and-forth between me and the producers during filming.

Since they were producing a show, they wanted me to talk about specific topics, asking me a lot of leading questions, but not everything they wanted me to say was correct so I would constantly stop and correct them.  We went on like this for hours, with them saying things like, “so would you say xxx?”, and I would say “no, actually yyy”, then  finally I would say something I believed, and they would light up, because they finally got something they were happy with.   It’s not that they were trying to get me to lie, but they had a story they wanted to tell.  I think a taught them a great deal about the kinect, and I was really imprtessed with the final result.  Not only did they produce a really cool and proffesional segment, but they were able to explain the kinect really well.  All my non-technical friends said that they finally understood what I do.


No Comments

The Bilibot Project goes public

So I’ve been working a lot on the Bilibot project recently.  A few highlights:

I upgraded the frame, and it looks pretty spiffy:

The sensor that is on the Bilibot is a Prime Sense development sensor, and unfortunately will not be on the final Bilibot.   The computer on this Bilibot is the platform I labeled as Bilibot 5, the DIY solution.

The Bilibot project has also been getting a lot of publicity.

I’ve been communicating with Travis Deyle, a student over at Georgia Tech, who also works on the PR2.  Travis was interested in Bilibot, and he wrote a nice article.  The story has since been picked up by Slashdot, IEEE, Smashing Robots, and some others.  The publicity has been good, albeit overwhelming.   I kow have 50 pre-orders for Bilibots that I (may) have to fill.  So now I’m in the process of hiring help to organize the orders, testing and general work that needs to be done.  Know anyone who is willing to work for cheap?

Most recently, I took Bilibot to BLUR, an HCI conference organized by Eric Norlin.  It was fun – there were ~100 people: investors, startups, students and the like.

As you can see, I walked around most of the conference with no shoes on, and followed buy robots.  I had one robot following me on the first day, and on the second day, I got cocky, and had one robot follow the other.  I put a piece of white paper on the back of the front robot so there would be more points to track, but it never was an issue – it was probably unnecessary.  Trying to get both robots to behave was a chore, though.  If one robot had a problem, I would go to diagnose it, and the other robot would start tracking me, and then they would compete.  The tracking algorithm was really simple – it just looked for whichever points were the closest to the centroid of the last point it was tracking.  In the future, I’ll have some smarter behavior for re-acquiring a target…

Roombas are also really slow, when you compare it with how fast you walk.  I had to meander along, at apace where I would actually have to spend time looking at things around me, as I waited for the robots to catch up.

The sample bias at this conference may have been a bit off, but it seems to me like people really have no idea yet of what the Kinect can do.  I really hope the Bilibot can address that.

So that’s the latest on the Bilibot.  Remember to check out bilibot.com for the latest updates on the Bilibot!

Now to replicate this post on various other forums…

No Comments

I won!

So for those of you who don’t follow every post that comes up on ros.org/news, the kinect 3D contest results came out today, and I won first place!  I’m super stoked, as I am quite happy with the entry that won (I had a few).  I probably spent more time playing with it than I did programming the thing.  Once it works well, it is just so addictive, and so magical!  Well, you should try it.

I think Ken put it very nicely:

We tried it on our own desks, and it just puts a smile on your face: you draw a button whereever you please and press it. It made us feel like we were in a cartoon world where we could bend the rules of the universe.

I’d like to congratulate everyone who entered the ROS 3D contest – There was a lot of great work out there, and I’m very happy that everyone got involved and demonstrated some cool stuff.  I’m personally looking forward to trying  out the RGBD-6D-SLAM demo using the Bilibot.


PR2 Teleoperation

A few of people have been teleoperating robots with a kinect now, so I thought I’d have a go.  The Openni software performs decent skeletal tracking, and so it is easier than ever to wave your arms around and have your robot obey.  Anywho, I realized that the PR2’s design offers me a unique opportunity:  I can control all of PR2’s joints with my own!

Ok, that needs some explanation:  I’ve worked with 3 big fancy arms recently.

The PR2, by Willow Garage, the LWA3, by Schunk, and the WAM, by Barret.  The PR2 and the Schunk have 7 degrees of freedom, the Wam had 6.

Herb's Wam arm

Barret Wam

We technically have a ton of degrees of freedom (DOF)  in our arms, but our range is really limited in most of them.  In fact, If you look at the picture of my arm, you can see that our effective DOFs is ~ 7, and the motion in what I labeled as 6 is about 45 degrees max, and very uncomfortable.  Now, we have joints in very nice places which, along with the other limited degrees of freedom (like being able to shrug)  give us a large workspace (volume our arm can reach)  But we still only have about 6 main DOFs.

Spankybot's Schunk arm

Schunk LWA3

Unfortunately, our joints don’t usually map well to robot joints.  Take the Schunk arm, for example.  My arm’s joint 2 looks like it is the Schunk’s joint 2, and my joint 3 looks like the schunk’s joint 1.  But where is  my joint 1?  There isn’t any equivalent on the Schunk.


It gets to places by assuming joint angles I cannot reach, and visa versa.  The Wam arm is a little better, but it still has the same problem.  The PR2, however, is a great match for the human arm.  Up to joint 5, our arms match very well.  It even has similar joint limits – Just like our elbow, the PR2’s joint 4 does not bend more than 10 degrees past horizontal.  The only real limitation that I see is that the PR2’s joint 2 does not go up very high.  As for the other two DOFs, Our joint 7 is basically the PR2’s joint 6.  Our joint 6 (which is not so useful) is replaced by the PR2’s joint 7, which can spin continuously, which is great for screwing things in.

Now, because robot arms are often very different from our own, we cannot just tell their joint 1 to be at whatever angle our joint 1 is at.  (ignoring for now that it used to be pretty difficult to get a live update of what our joint 1 is)  Roboticists would usually  get around this limitation by using the 6 DOF position of our hand to tell the robot where to put it’s hand.  The robot would have to figure out what angles its joints would have to be at to achieve this, (and in many cases, the robot just can’t get there) but hey, that is what the study of inverse kinematics is all about!

However, with the PR2, I can directly map my joint angles to the robot’s joint angles allowing me to, for example, lift my elbow to move out of the way of an obstacle.  And here’s the video:

I just knocked this out on Wednesday, and it needs a bit more work.  In particular, the delay is caused by the fact that the skeletal tracker is a bit noisy, and the arm with jump around if I don’t put a filter on it.  I put a pretty aggressive window filter on, which greatly increases the delay, and isn’t terribly efficient at smoothing, but it is really easy to implement.

I’m very happy with the results so far.  Leaning (forward, back and to the sides) move the robot straight, and turning my torso turns the robot base.  I control the grippers by opening and closing my hands.  The only feature  left to implement before I just start fine tuning is getting using the  hand orientation, from the hand detector to orient the gripper.