Robot Frame (v2)

Status: Current Project (Jun 2020)

Design Flow

Being tasked with designing and manufacturing a sizable robot dog after my A levels was a half daunting but mostly exciting task handed to me by Professor Sai Gu after my previous project, the robot chemical reactor, he trusted me with. He had actually talked to me about something like this back when I started work on the robot chemical reactor. However having just finished my GCSEs, I didnt feel up to the task! We now have a very successful working relationship and he has been a great source of support throughout all my projects.

Where to Even Begin

Starting with an elementary knowledge of electronics and minimal mechanical design experience, I started researching several existing robotic dogs. These included the MIT cheetahs, Solo 8/12, Laikago and several from Paul Gould.

Scaling table with dimensional analysis.

The main paper I used as a reference throughout this entire build is "A Low Cost Modular Actuator for Dynamic Robots" by Benjamin G. Katz [1]. His proposed solution of using a scaling factor gave me a place to start.

I used a scaling of 0.75 whereas the Cheetah Mini uses a scaling of 0.60. This gave me the rough proportions and requirements for my actuator motors.

For the technical details of the mechanical and electrical design of the actuators, see pages Actuator Mechanical Design and Actuator Electronic Design. For this page, I will be treating them as off the shelf components to discuss how I designed the systems around them.

Designing One Leg

Using three actuators is the minimum for full 3D freedom and thus three actuators per leg was chosen. Some robots have four motors per leg however that it introduces complexity and is only really used in research. 

Thigh and Elbow Actuator Placement

As for the placement of the actuators, the simplest is to have an actuator at each joint of the leg. Unfortunately this means the thigh actuator will need to swing the elbow actuator, requiring more torque and thus energy to move.

This necessitates both actuators to be situated axial to each other as to minimize the inertia of the leg.

Actuator at each joint vs axial actuators.

Old solution using roller chain.

Transferring Torque

The first solution I thought of was using timing belts just like the ones used in 3D printers. After a few calculations, I discovered that the width of belt required for the torque expected was too large to be feasible. 

An alternate solution I considered was using a roller chain to transfer the torque to the elbow joint. This eliminates the insufficient strength capability but the design I came up with was very fiddly to assemble. (see left).

The actuator on left moves chain to elbow below. Actuator on right swings the entire leg.

It was when I purchased the roller chain that I immediately realised its disadvantages, being very heavy and oily. This mandated another solution simply due to its weight.

Breakdown of all available options.

In the end I chose to use rod end bearings and deal with its problems. This was inspired by looking at how Boston Dynamics solved it for their SPOT robot.

The cosine losses are due a component of the force from the actuator not being perpendicular to the rotational point.

Leg structure complete!

Shoulder Actuator Placement

Now onto the shoulder placement. My original solution involved the actuator using rod ends to move the leg, inspired by MIT Cheetah 3. 

However I realised the size of the rod ends was insufficient to carry the loads. It also made the robot very wide due to the space horizontal space required. 

I thus switched to having the actuator directly swivel the leg. This also has the benefit of eliminating a bearing mount since now the actuator is the mount.

Old shoulder joint with rod ends.

New solution.

Batteries and Power

Estimations

My source for power estimation is a paper called "MIT Cheetah 3: Design and Control of a Robust, Dynamic Quadruped Robot" by multiple authors [2]. Their data suggests that an estimate of 350W is a reasonable starting place for power consumption. This is also considering that my robot is a 0.75 scaling of the Cheetah 3, lowering the expected power even more.

Power and CoT values from page 8 of [2].

Battery Design

The most feasible solution is either lithium ion 18650 cells or using lithium polymer drone batteries. I chose the former due to 18650s being a lot safer than a pouch battery especially of such large capacity. As for the design of the case, I searched online and it appears that aluminium extrusion hobby boxes are very sturdy and come in common sizes. It is a coincidence that the 54mm*145mm extrusion fits six 18650s almost perfectly. Now the number of 18650s used would be a multiple of six.

The voltage of the battery pack was chosen to compliment the gear ratio and KV of the brushless motors I had purchased. This is discussed more Actuator Mechanical Design. For capacity, I wanted one battery to last around two hours, leading to a 10S6P battery (42V 19.5AH). This turned out to fit perfectly inside the 250mm length version of the aforementioned aluminium case.

I actually ended up trimming the length to 230mm to save some space in the robot.

Another feature I wanted to add was hot-swapping capability, extending battery life to four hours or continuous usage if enough battery packs are present.

I am not very concerned about heat management since I will be discharging them at 0.5C and the BMS has overtemperature protection which is very important on a pack this size.

Assembled battery.

54*145mm Aluminium extrusion box listing on AliExpress.

Spotwelded battery packs.

10S6P battery with BMS, connectors and voltmeter.

Communication

Again, looking at the paper by Ben Katz [1], his actuators use CAN for their communications. The 1Mbps mode has plenty of data rate for one CAN bus per 3 actuators. CAN is a common peripheral on microcontrollers and is perfect for this application due to its noise resistance and priority system built into it.

Body Structure

My initial ideas used carbon fibre tubes as the main spine of the robot however troubles with battery placement lead me to scrap it. I also had problems with attaching to the carbon fibre tubes and was concerned about galvanic corrosion since the actuators will be made of aluminium. 

Using carbon fibre sheets for construction also increases the cost rapidly compared with aluminium sheet as well as the ease of putting threads in sheet metal compared to carbon fibre sheets. 

There exists solutions to all these problems but in the end I chose to use aluminium  sheet metal.

v1 robot frame heavily inspired by MIT Cheetah 3.

Computing

The Jetson Nano seemed perfect for this application. Currently working on this stuff since this is my first time using linux so im still figuring stuff out!

So no threads?

Jetson Nano Stand with MCP2512 SPI to CAN module on top.