Watch: 1st attempt CNC machining Continuity's parts
Continuity is currently crafted from 3D-printed PLA plastic, a good material in terms of prototyping flexibility, allowing easy modifications and adjustments. However, as we delve deeper into the mechanical demands, the limitations of PLA become apparent. Achieving structural strength requires high infill or an increase of the external wall count, yet this proves challenging for smaller, intricate parts, where PLA's fragility under load becomes a concern. With the assistance of Edinburgh Napier University's Mechanical Workshop technicians, we are embarking on a transformation. All structural components are undergoing a shift from PLA to robust 6061 Aluminium. This transition necessitates a complete redesign: I used Blender to 3D-model all the pieces, but differently from a 3D printer, CNC machines don't like STL files. To bridge the gap between Blender's polygon-based designs and CNC machines' preference for STEP files, I opted for FreeCad, aligning with my philosophy of using an open-source approach. The photo showcases one of the two top links for Continuity's legs, machined as a test using a CNC machine. The result is good, but not as good as it will be on the actual finished version.
We are not talking about rockets, but apparently, I had to face a Rapid Unscheduled Disassembly of the Mast Tower's head. It doesn’t take a degree in aerospace engineering to know that, ideally, rockets aren’t supposed to blow up. Similarly, a robot is not supposed to break apart during a test. However, this is exactly what happened. During the test, a coding error made one leg go rogue, turning the robot into a bit of a daredevil and resulting in a not-so-graceful tumble from the table. Luckily, the legs and other moving parts survived the crash, but poor Continuity's neck got the worst of it. The elevation mechanism to control the pitch angle of the Imager (the head of the Remote Sensing Mast), is a simple 3D-printed extension of an aluminium servo motor horn. This helps reduce the mechanical complexity, but also makes it much more fragile when the robot has to survive a fall.
Lesson learned: While we love keeping things light and simple, we've got to find that sweet spot between lightweight design and toughness. I am patching up Continuity, adding some extra code safety features, and making sure the robot is ready to handle whatever comes its way. Here's to smoother tests in the future!
Watch: Two feets roll balancing
In a recent overhaul, Continuity's design underwent a meticulous weight reduction, shedding non-essential components for enhanced efficiency. Then, I started testing balancing on the roll axis, a crucial step towards achieving stability. However, friction-induced squeaking in the plastic joints posed an initial challenge, partially limiting the movements of the legs and causing very annoying noises. I managed to fix the problem using WD-40 lubricant. Balancing is achieved using a simple accelerometer, with future plans to integrate force pressure sensors on Continuity's feet for enhanced feedback. The code I'm using for balancing is not very well refined and occasional failures are acknowledged. But generally speaking, it works well!
Watch: Walk cycle testing and pushups
Between the 6th and the 16th of November, I worked on the control of the legs. The first step was to ensure motors were actually powerful enough to lift the entire body of the rover. Motor strength, however, is not the only parameter affecting this test's success or failure: the length of the leg joints also plays an important role. If the femur or tibia is longer than the other, it can affect the torque required at the joint. Generally, a longer lever arm decreases the torque at the end of the joint. Therefore, if the femur is longer, it may require more torque to move the leg than in a situation where the femur and tibia are more balanced. A combination of the design I was initially using, plus a bottleneck caused by thin cables that were limiting the current draw, was not allowing the robot to lift itself. I use four motors that run between 5 -7 Volts and 1 - 2 Amps powered by a 20000 mAh power bank with an output current of 3 Amps. Nominally, this should not be enough to power four motors. However, good management of the current draw obtained through software allows motors to run anyway. Some suggestions for testing such a configuration are using suitable wires (possibly not jumper wires for connecting the motors to the battery), trying several iterations to find the best leg joint design, recording videos, and taking photos and notes about what you are doing. This helps keep track of your progress, as well as what is not working.
Continuity is designed to be as compact as possible, taking inspiration from already-existing quadruped robots, and integrating specific features of planetary rovers. Using a small and (relatively) cheap robot for planetary exploration would guarantee access to inaccessible areas, like rocky slopes, craters and caves. Ideally, if a group of "Continuity" rovers cooperate in a multi-robot mission, it would be possible to sacrifice one of them for a hazardous mission, while keeping the others safe.
The Imager, that is to say, the top part (or head) of the Mast Tower is the key that justifies the existence of the tower itself: elevating the main rover camera, giving it rotation freedom in all directions. At its current state, Continuity's Imager is equipped with a 1080p camera and a couple of 10120 TOF sensors. A TOF (Time of Flight) is a sensor commonly used on drones due to its extremely low weight. It allows the rover to estimate in real-time the distance between the sensor and an object counting the time light takes to go back and forth from it. Since its precision is not always ensured, I installed a couple of them for redundancy and to get an average of their measurements, obtaining a more reliable value. There is still plenty of space inside the Imager, but this is fine because this will not be its final look, and many parts still need to be improved: for instance, the height of the Mast Tower, which risks being too high compared to the rover centre of mass.
Five days after assembling the first rough version of the rover body, I came up with a way to reduce the Mast Tower weight and improve, at the same time, its precision. The 3D-printed gearbox has had several backlash problems since the beginning. Additionally, it was heavy and unnecessarily complicated. As discussed, the giant steel bearing used as part of the azimuth rotation mechanism represented a severe issue due to its weight. I decided to try a completely different approach, using a 270-degree servo motor instead. This limits the azimuth rotation, but the precision is significantly increased since the servo uses a potentiometer to rotate to an always-known position. Moreover, there's no need to point the camera towards the side module, located on the LHS of the Mast Tower, since there's nothing to see there.
The rover body is fundamentally made of five parts: the upper and lower deck, the legs assembly, the mast tower and a side module. At the current state of things, the structure is very unbalanced due to the mast tower azimuth motor bearing. However, printing three out of five parts helped me better understand the rover assembly, all available spaces for electronic components, where to pass the cables to power the motors, etc. That said, the mast tower base must be lightened.
The motors I used for the hip joints are a serious weak point of the design since leave a lot of space between pieces and increase the overall weight of the robot. Surely, they are useful in increasing mobility, and adding a degree of freedom, but this might not be a sufficient reason to keep them in the final design.
It might sound obvious, but keeping the design lightweight and simple, without unnecessary mass additions and frills can significantly reduce the production time and limit failures. Four months after the design of the first concept, I realised several parts were unnecessary, making the overall structure bulky and heavy. The figure below shows how the servo motor holder for one of the legs has been simplified, reducing the mass as much as possible, but still keeping it strong. 33g
On the LHS of the photo, the black piece shows a vertical part with five holes designed to hold a metal flange. The old design was 33g heavy, the new design shows an improvement of 51.5%, weighting just 16g.
Until the day of this post writing, the front and rear upper linkages of the leg were connected to the motors using aluminium flanges. Generally speaking, this component is great but performs poorly if an overhung stress is applied to the motor shaft, causing vibrations that tend to increase after intense testing of the leg. To (hopefully) fix the problem, I changed the design, substituting the flange with an aluminium bracket that can be secured to the motor shaft using small set screws. Additionally, this design increases the contact area between metal and plastic, improving the force distribution.
This configuration has been tested by running the same tests performed with the previous design. Results show that not only the vibrations are reduced (as well as the chance that screws get unscrewed due to vibrations), but also improve the stability of the leg when it was tested sideways and upside down.