Energetic cost of robotic locomotion


I run an animal locomotion laboratory and am interested in branching out into robotics. In locomotion research we use the term “cost of transport” (COT) to explain how much energy an animal is using to travel a certain distance. COT is also used in robotics. As such, I’m very interested in understanding how we can calculate this value. In a robotics system, CoT = Pel/(M · g · v). While the denominator is easy enough to get (mass x gravity x velocity), it’s the numerator that is causing me trouble (i.e., the electric power used for actuation). I understand that this is simply the power our robot is drawing during a specific task, but I have no idea how to actually measure this. I was wondering if you have any thoughts. Any help would be appreciated.

Hello @mgranatosky and welcome to the community!

Interesting topic! I think you should be looking for something in this section:

But it really depends on the robots you will be testing, so I think it would be great if you could read more about the topic, I found these papers that can help you out:



Thank you so much @geraldinebc15. I found these papers to be incredibly insightful. So here’s the follow-up question. It seems like the value I am really hoping to get is the “power consumption of the entire robot”. This value is collected in all the papers you sent. I believe that I have two methods to do it, but I am not really sure how to do either.

In the papers you sent it looks like their essentially using volt and amp meters to get the instantaneous power of the whole system. With that in mind, I can put one of the multimeters you suggested to record these data. My question is where? I have 24 servos controlled by 3 microcontrollers and 1 raspberry pi. Do I just record the voltage and current from the battery, and see what’s it pulls once the robot is active?

Alternatively, I have the ability to collect instaneous current and voltage from each individual servo (Dynamixel mx64). How do I combine the power of each servo to be representative of the whole robot?

I hope this follow-up response makes sense

Hello again @mgranatosky,

If you are using one power source for the entire robot you could do what you said on the first option, but make the connections carefully (check page 3 of https://iopscience.iop.org/article/10.1088/1757-899X/99/1/012008/pdf)

To get the power consumption rate curve, a Fluke current multi-meter, with suitable scale is used as a current sensing element, one oscilloscope channel to measure the drop voltage over that multi-meter terminals to get the instantaneous value of the consumed current as voltage signal, while other channel is used to measure and store the variation in the voltage level. The products of the two channels would generate the power consumption rate curve.

On the other hand, if you choose the second options the total power consumption of the robot is equal to the sum of the power of each component so you simply have to sum the power consumed by each servo.

1 Like