During the last few weeks of testing, I integrated a joypad into Continuity's control methods. This was done to simplify testing on the robot, improving precision and making things a bit more fun when it comes to having a quick demo available to show to people (this happened multiple times, in the past few weeks). I chose to connect a PS3 joypad using the comprehensive features offered by the "Gamepad" GitHub repository. This repository not only simplifies the process but also provides users with multiple joypad configurations, catering to diverse testing needs. In an initial trial, I focused on controlling the Remote Sensing Mast (RSM), a pivotal element of the rover that comes with two degrees of freedom: azimuth rotation and elevation. The RSM serves critical functions such as capturing photos, and panoramic images and facilitating autonomous navigation by aligning with the direction of movement. Subsequent tests focused on legs extension and other general movements, all executed seamlessly through joypad control. While these tests may appear useless given Continuity's ultimate autonomous functionality, being able to control the robot in a user-friendly way is actually extremely important for something that I'm working on aside. I'm trying to develop a simulation framework using Blender, the same open-source software I used for 3D modelling Continuity. Blender is capable of running rigid body simulations and being able to interface them with a Python script might allow me to use it as a real-time simulation tool. More updates will follow on this topic.
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!
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.
The mast tower is a crucial element of Continuity: it is a tower-shaped component that elevates key camera systems and sensors, giving the rover a human-scale perspective on its environment. Because I decided to use only servo motors, where possible, I had to find a way to increase the rotation range of the motor. The servos I'm using are 25 Kg full-metal motors with a rotation range of 180°, meaning that they cannot be used directly for the azimuth rotation (along the z-axis). I decided to 3D print a 1:2 (2x) multiplier gearbox. You can see it in the LHS photo below. The design is probably not the best because the gears are very thick and not space-saving. I still decided to give them a chance, so I designed a holder for a bearing and an enclosure to keep everything tight and reduce vibrations. Now, when I rotate the servo by 180°, I get a 360° rotation. There is still an evident issue: 3D-printed gears are not 100% accurate, and backlash is not something I can ignore.