Detecting carpet


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 servos

Unfortunately 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
Read next:
Autonomous transition between walk and drive modes