Has anyone had issues with stability on rough surfaces, such as carpet or sidewalk? I'll post some videos in the comments to show different configurations of surface and foot surface
I assumed the robot was not meant to walk on carpet, but whenever I tried it, the forward movement of one of the feet across the carpet essentially kicks Bittle back. I wondered if it might help to make the heel a large smooth semi-circle but keep the toes ridged. The idea being that when Bittle pushes a leg back, it does so on its toes, but when it moves a leg forward, it's the heel that touches the surface most.Another idea I have yet to explore is what happens if we add wheels on the front legs but not the hind legs, as it also looks like the unintentional bouncing on carpet is partly because front and hind legs are going in opposite directions at the same time, both with friction.
The main cause of the instability is the scratching between the feet and the carpet.To walk on the carpet, Bittle needs to lift its feet higher in the swing stage. To avoid instability, it should also reduce the distance of each step.
The balancing is implemented in motion.h, the adjust() function. It's based on simple proportional control.
The adjustment should happen very fast. I took a short clip on March 21, 2022. In the demo, Bittle takes large strides, almost its body length per step. It utilizes the faster CPU of ESP32 (compared to Uno) for real-time balancing. Bittle was not well launched to the ground, but it corrected itself in the first several steps. I doubt if the communication with Pi will be this fast.
I see, it looks like the ESP32 is the way to go. But I'd like to still use the raspberry pi for ROS2 interfacing. Basically, I have the high level planning, such as overall heading in ROS2, but have the adaptive balance correction on the ESP32, if that makes sense.
The robot proprioception is demanded to an inertial measurement unit (IMU) and to joint encoders.
From Robot Feet, part 2. I wonder what the proprioception limits are of the NyBoard?From a philosophical perspective, you don't need to train a wheel to roll, but every animal needs to learn to walk. My gut feeling is that gait design combined with adaptive control based on sensor input is the way to achieve universal stability.
I also believe it's based on simple feedback. I think NyBoard can handle walking with a proper algorithm. However, it may be easier to start experimenting with more advanced algorithms on the BiBoard.
You may need four analog input pins for your sensors. NyBoard only has A2 and A3 pins accessible, while A4 and A5 are used for I2C.
I assumed the robot was not meant to walk on carpet, but whenever I tried it, the forward movement of one of the feet across the carpet essentially kicks Bittle back. I wondered if it might help to make the heel a large smooth semi-circle but keep the toes ridged. The idea being that when Bittle pushes a leg back, it does so on its toes, but when it moves a leg forward, it's the heel that touches the surface most. Another idea I have yet to explore is what happens if we add wheels on the front legs but not the hind legs, as it also looks like the unintentional bouncing on carpet is partly because front and hind legs are going in opposite directions at the same time, both with friction.
The main cause of the instability is the scratching between the feet and the carpet. To walk on the carpet, Bittle needs to lift its feet higher in the swing stage. To avoid instability, it should also reduce the distance of each step.
Yes, I've been wondering about this. I believe that it's a combination of both the foot shape and the gait of the walk.
My thoughts, so far, about the foot shape are here:
No updates yet! :-)
This is on carpet without friction tape. This is also unstable, but not as bad as with friction tape.
This is on carpet with friction tape on the feet. It is the most unstable configuration
This is on tile without friction tape. It is the most stable configuration.
This is bittle on tile with friction tape on the feet. It is less stable than without friction tape.