MIT Mini Cheetah - quadrupedal robot

Hi everyone,
I’d like to repurpose a mini cheetah clone (more info here) sold on Aliexpress to using ArduPilot.

At it’s core, the robot consists of:

  • Aluminium chassis
  • 12x motors with encoders and drivers
  • A 24V 5000 mAh battery
  • A 9 DoF IMU
  • An UpBoard Z8350
  • The SPIne (a custom PCB featuring two STM32 to create two independent CAN networks) and a ZigBee for the RC command
  • A power supply and distribution board

The companion computer (UP board) runs ROS and takes care of basic motion tasks by pushing CAN messages to the SPIne, that dispatches them to the motors.

Since ArduPilot supports CAN and battery monitoring, I was wondering if the SPIne could be replaced with a PixHawk. Doing so it would enable the whole ArduPilot software suite and it could be possible to start tinkering with the robot, although the companion computer would be giving directions mainly.

Update
Diving deeper into the Mini Cheetah docs it seems the choice of having two STMs is due to the limited CAN bandwidth a single microprocessor can support.

Hello,

That is quite an interesting challenge, it reminds me of the Hexapod Robot integration.
https://ardupilot.org/rover/docs/walking-robots.html

Here are some additionnal links:

I think @khancyr could add some comments here

Example of Mini Cheetah motor driver in scripting:

1 Like

@iampete what CAN_D1_PROTOCOL are you setting to talk to the Motor Controller ?

ok looking at code

https://ardupilot.org/plane/docs/parameters.html#can-d1-protocol-enable-use-of-specific-protocol-over-virtual-driver
|10|Scripting|
|12|Scripting2|

More than that, if they used two STM uC because of CAN bandwidth, we need to check if the Pixhawk is able to support the two networks alone

There are 2 CAN interfaces on high end FC like the Cube Orange

1 Like

what is their bandwidth?

You mean CAN Baudrate ?
1 Mbps, just like Ben Katz motor drive controller