Pneumatic walking, driving, wall climbing and tool using robot

Similar projects worth following

Purpose of this project is to create a portable robot which can easily navigate inside buildings. For a small robot it is hard to climb stairs and next to impossible to reach high places like window sill without flying. Small flying machine can't carry a significant payload and large flying machine is inherently unsafe to operate indoors. Solution is to use vacuum suction grippers which allow to stick to hard flat surfaces like floor, walls and ceiling. In order to traverse soft and porous surfaces like a carpet robot can tilt the suction cups and roll away as a self balancing robot. Here is a prototype in action:

Robot itself can act as 4DOF pick & place arm as demonstrated here:

Robot can even carry and use tools with its feet:

  • Hanging from the ceiling

    Mykolas Juraitis5 days ago 0 comments

    A while ago I have tested if suction cups of naminukas are strong enough for hanging from plaster board ceiling. Answer is yes, but I didn't make any decent video showing that because any mistake which could result in robot falling from ceiling height would most likely result in £1000+ of broken parts. Since I think it is quite an impressive capability and also end goal to make robot safely traverse most of indoor places I risked to make a small demonstration on top of the bed:

    To make more sophisticated activities than just turning safe, I need to improve sensing if suction cup of one leg reached sufficient vacuum level before lifting other feet. On the ground inertial measurement unit is sufficient to detect if leg was stuck to surface or not as explained in Detecting carpet blog entry. Such solution is not an option on wall or ceiling. Most obvious solution is to add pressure sensors to each feet. That is on my list to explore. There are few indirect measurement alternatives:

    1. Infer if required vacuum level is reached by trying to lift a leg and observing servo motor current. Depending on vacuum level it would be easy or hard/impossible to lift a leg and motor current would reflect that. This would be the most desirable solution as it doesn't require any new hardware therefore doesn't add any weight or cost.
    2. If you don't mute my videos with horrible noise you probably noticed that noise changes when foot is up and vacuum pump just sucks the air and when foot is down and vacuum is being generated. I am planning to add webcam with a microphone to robot in the future. This could be a great opportunity to try some machine learning for mapping noise to pressure.

  • naminukas learns to write with its feet

    Mykolas Juraitis05/24/2020 at 09:29 0 comments

    naminukas just got a detachable tool mechanism and now can carry up to 3 tools and use them with its feet:

    Since tool mechanism used for naminukas is quite generic it is covered in detail as a separate project.

  • 4DOF pick & place arm

    Mykolas Juraitis05/11/2020 at 19:44 0 comments

    Doorstep can be quite a formidable obstacle for a small robot. It can be too tall to drive over and too wide to step over. Luckily naminukas has few more cards in its sleeve. Having 2 degrees of freedom in each feet and pneumatic suction cups, it can act as a 4DOF pick & place arm! And not just any arm - an arm which can pick and place with both ends. See how naminukas acting as an arm builds a bridge to cross to the other side of the doorstep:

  • The first donation

    Mykolas Juraitis05/05/2020 at 15:55 0 comments

    Last week I have received the first ever donation to naminukas project. I have been running a mini self hosted kickstarter like campaign and the first donation allowed to reach 2 funding milestones: £1 and £10. While these milestones might seem ridiculously small, reaching them provided a big motivation boost for me. Thank you my first contributor Cameron Eddy!

    I have created a new build page listing buyable parts and having a link to models of 3D printable parts. For a part list I tried to use not pretty pictures but dimensional drawings if I could find them as they save a lot of measuring time when trying to design 3D printed parts to connect them. I didn't provide list of screws and wires used as most of them were not purchased for this project but salvaged from old toys and devices. Also some small bits like these yellow spacers

    Yellow spacersare of completely unknown origin, most likely from Meccano or similar construction set. If I will reach the last funding milestone I will replace all such parts with either something buyable or 3D printable.

  • Technology readiness level 3

    Mykolas Juraitis04/29/2020 at 21:08 0 comments

    This week naminukas reached technology readiness level 3. I was controlling robot with one hand and filming with the other so video is not award winning but it is the first time robot demonstrates all 3 operating modes (walking, driving, climbing):

    There were quite a few setbacks though. After recent software refactoring Dynamixels would randomly act strangely. In particular one of the servo would move beyond 90 degrees while transforming to drive mode and start scratching BeagleBone Blue board, eventually breaking one of connectors:

    Broken connector on BeagleBone Blue

    It was quite peculiar behaviour given that there is no code commanding move beyond 90 degrees. Issue turned out to be caused by multi-threaded code which most likely corrupted internal state of Dynamixel library. Luckily none of critical parts were broken.

    Other issue was that I managed to break a metal screw while trying to screw it into plastic hole:

    Broken screw

    Closer inspection revealed that diameter of this screw was 0.2mm bigger than other screws used for the same diameter holes but it is still surprising that PLA won against metal.

    Most worrying issue is that one of bearings started making noise and moving it by hand feels like scratching metal with a sharp object. Visually there is nothing wrong with a bearing yet. It is not surprising because this bearing experiences both radial and axial load and in this case crossed roller bearing should be used instead. Small crossed roller bearings is not something your could buy cheaply on AliExpress though. Especially of small size I need. So I hoped that cheap deep groove ball bearing will be able to handle less than 2kg robot but looks like it is failing just after few hours of total operation time. Or maybe it was defective bearing to start with. Lets see how long other one lasts. If you know where to buy "affordable" crossed roller bearing (ideally with inner diameter of around 20mm) please let me know. Any size donation would be appreciated too.

  • Autonomous transition between walk and drive mode

    Mykolas Juraitis04/24/2020 at 13:37 0 comments

    Robot was able to transform from walking to driving mode for a while (see this blog post) but I was looking how to do it autonomously without holding robot in the air. After a lot of experimentation and some hardware changes I figured out how to make robot to balance during transformation:

    For balancing to work on hard surface I had to put rubber tires on wheels otherwise robot would slip too much with plastic wheels. Wheel design had to undergo few iterations to make sure tires themselves don't slip from wheels sideways during transformation. Even in the latest design tires do come off the wheels occasionally so more improvements are needed for a final design.

  • Detecting carpet

    Mykolas Juraitis04/16/2020 at 20:29 0 comments

    I have started working on autonomously detecting surface unsuitable for a vacuum suction cups. Bellow is a video of robot walking straight until it fails to grip on a carpet and then turns back:

    As you can see at the end of the video robot fails to grip on the hard floor once too and changes direction after that. Currently robot doesn't have any pressure sensors so can't directly detect when cup is firmly attached to the surface and must rely on hard coded timings when to decide that leg can be lifted.

    Carpet detection works utilizing inertial measurement unit of BeagleBone Blue. Before turning, when one of the legs is supposed to be at the highest point, it checks if robot is tilted to the right direction. If robot failed to attach to the floor it would be tilted to the opposite direction because foot would be still tilted lifting opposite side of the body than the leg which was supposed to be in the air.

    I also couldn't resist temptation to make some mechanical improvements this week. I reprinted bevel gears multiple times to get backlash as small as I could while still allowing gears to move freely. Number of cable extensions was reduced. I also changed plates connecting servos to the thicker ones to minimise body twisting while lifting leg. New plate also contains embedded nuts to simplify assembly:

    Plate connection servosUnfortunately while replacing plates connecting servos I found that 2 of the servos were leaking some fluid:

    Dynamixel leaks

    I don't know what kind of fluid it is. Most obvious source would be a grease from a gear box. It is not clear why both servos affected are on the side which experiences less load. If anyone has any ideas what it could be please contact me. These servos are new ordered for this particular project and I don't want to loose them after using them just for a few months. After all they are the most expensive part of this project.

  • Lighter vacuum suction cup

    Mykolas Juraitis04/09/2020 at 22:02 0 comments

    Robot uses 95mm diameter silicone vacuum suction cups. They weight 125g each which is quite heavy compared to other parts. Most of weight comes from a metal plate embedded in a suction cup. Before working on this project I didn't have any experience with pneumatic / vacuum systems so after a lot for googling I bought 2 different cups for testing. Both of them had a heavy metal plate inside. I couldn't find any seller advertising "light" suction cups. Since "heavy" ones were not too heavy for a robot to lift, I just used them. After successful test with 3D printed pneumatic joint I tried to 3D print vacuum suction cup too. I have never printed with a soft filament and I didn't have a soft filament at hand so I 3D printed a cup from PLA and instead of a soft lip I used a rubber o-ring. It worked on flat hard surfaces but not at all on plaster wall. Potentially softer material o-ring could work but I found a suction cup to buy with a detachable metal plate so I reprinted whole cup and wheel assembly. Old one was 140g:

    Old wheel assembly

    New one is 73g - almost twice lighter:

    Old wheel assemblyNew wheel not only looks cooler but also has o-ring rubber tire in order not to slip on hard surfaces:

    New wheelHere are assembly steps. Leg without cup / wheel:
    Robot leg without vacuum suction cup and wheelWith spacer:

    Robot leg with spacer addedWith bevel gear:

    Robot leg with bevel gear addedWith holding screws:

    Robot leg with holding screws addedWith rotary joint directly screwed in 3D printed part (tread was printed):

    Robot leg with rotary joint addedWith pneumatic tube connected:

    Robot leg with pneumatic tube addedIn wheel mode:

    Robot leg in wheel modeOverall robot weight was reduced from 1470 to 1405g:

    Overall robot weightOverall weight reduction of 65g doesn't match with wheel assembly reduction of 67g but kitchen scales are obviously not very accurate.

    I have ordered a new suction cup for the other leg too. I can operate robot with different legs for now as new one is only few millimeters higher than the old one. Both suction cups and PLA parts are quite flexible so in "normal" operations robot shape distorts more than few millimeters. I have more improvements in mind for legs but they require reprinting lots of other parts and I feel I haven't explored all I can learn from current prototype.

View all 8 project logs

Enjoy this project?



M Druiven wrote 04/29/2020 at 20:14 point

Nicely done! What are you using to generate vacuum?

  Are you sure? yes | no

Mykolas Juraitis wrote 04/29/2020 at 21:36 point

Thanks. Black thing in robot centre is a dual head vacuum pump which is making all the noise in walk/climb mode.

  Are you sure? yes | no

Mike Szczys wrote 04/27/2020 at 19:06 point

That is awesome! The walking up walls is a delight, but moving from walking to rolling is the robot equivalent of the moonwalk. Wicked!

  Are you sure? yes | no

Mykolas Juraitis wrote 04/28/2020 at 08:43 point


  Are you sure? yes | no

Dan Maloney wrote 04/09/2020 at 17:00 point

OK, gotta admit I didn't see the wheels thing coming. That's pretty clever!

  Are you sure? yes | no

Mykolas Juraitis wrote 04/09/2020 at 20:15 point

Thanks. I was super excited when this idea came to me. Still working on how to make transition from walking to wheel mode autonomously (without me holding robot in the air) with minimal or no additional hardware. Servos are powerful enough to drag vacuum suction cups without robot being lifted and also one leg could be transformed while other leg is stuck to the floor but balancing process is not good enough for a transition phase. Software still can be improved a lot but it is not clear if it will be enough.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates