Rocket-on-rail

Intro to Robot Simulation, Part 1: Point Masses

So, you want to write your own dynamic robot simulation from scratch. Let’s start with one of the simplest possible dynamical systems: a vertically constrained point mass. Think of it as a rocket locked to a linear rail. The rocket cannot rotate or translate laterally; it can only move up or down, and can it only control this by either exerting an upward force or letting gravity take its course....

February 18, 2024 · 7 min · Ben Bokser
Forces acting on a cantilevered beam

On the Optimal Design of Cantilever Beams

The Problem Let’s say we need to design a structural section of a robot arm, as shown. We’ve been given a few requirements: The mass of the component must be minimized at all costs. The length of the link must be 300 mm. The maximum allowed deflection (caused by the component) is 1 mm. The combined mass of the maximum payload and end-effector is 30 kg. The combined center of mass of the payload and end-effector is 50 mm from the joint....

April 17, 2023 · 8 min · Ben Bokser
machined_2

The Parts Are In!

The new REx Hopper leg parts (which I hinted at in an earlier post) are finally in, and they look great. I was worried they’d be expensive, but the total cost for all three components shown here (including shipping from China) was only $312. As for the other components, they’ve been 3D-printed using Windform XT 2.0, which is supposed to have excellent mechanical properties. Anyway, I’ve started my new job in Boston, whereas work on the REx Hopper is supposed to continue in Pittsburgh....

April 8, 2023 · 1 min · Ben Bokser

Deriving the Manipulator Equations from the Euler-Lagrange Equation

The equations of motion for a robot manipulator and their relationship to the Euler-Lagrange equation are well known in the field of robotics, and yet I was unable to find a single source that provides the derivation. I suppose it’s one of those “the solution is trivial and is left as an exercise to the reader” situations. As such, I’m providing one here for dummies like me who need it spelled out step-by-step....

March 6, 2023 · 2 min · Ben Bokser
resonance_slow

A Lesson in Mechanical Resonance

The REx Hopper is now capable of balancing! However, it suffers from extreme oscillation at a relatively low frequency (about 8 Hz). This looks like a controller issue–perhaps even a simple matter of gain tuning–until you look closer and slow the footage down. It’s a clear case of mechanical resonance–notice how much the leg flexes back and forth. Unfortunately, I designed this leg with excessive focus on machining cost and ease of assembly, which led to the use of cantilevered joints and the use of, in retrospect, tiny bearings and shoulder screws....

February 17, 2023 · 2 min · Ben Bokser

How to Not Fail at Hardware Projects

Over the years, I’ve witnessed countless failed projects (many of them my own) resulting from poor self-management. Here is how I recommend one approach hardware projects with the correct mentality. 1. Don’t be Optimistic “I wonder if that would be an issue… eh, it’ll probably be fine.” “That could potentially fail, but it probably won’t.” No, It will never be “fine”. If a thought like that ever passes through your mind you need to STOP RIGHT THERE and correct whatever critical mistake you’re making....

January 24, 2023 · 4 min · Ben Bokser

Stable Bipedal Walking in Simulation

In late 2019, I designed a custom QDD gearbox. Then I designed a bipedal robot with said gearing. By early 2020 I was spending about an hour per day after work coding a controller for the bipedal robot I had designed. In that time I learned a great deal of Python, and my controls proficiency skyrocketed. Then I started grad school and had to put this project on hold for about six months....

July 20, 2021 · 1 min · Ben Bokser

Model Predictive Control for a Legged Robot

I have recently implemented a model predictive controller (MPC) to calculate the necessary reaction forces for a legged robot. The work presented here is based on this paper by Kim et al. If you don’t know what model predictive control is, I recommend this excellent explanation by Steve Brunton. I also found this guide to model predictive control with CasADI to be extremely helpful. CasADi is an open source nonlinear optimization tool which I’m using for MPC....

October 12, 2020 · 13 min · Ben Bokser

Solving for the Jacobians of a Robot Leg

I’m currently working on the Python code to control a simulated version of my latest bipedal robot design in PyBullet. My focus over the past few weeks was getting the operational space control to work (many thanks to Travis DeWolf’s incredibly helpful blog). After finally getting it to work properly, I have decided to share my math in the hopes of providing a useful example for anyone else having trouble with this....

May 4, 2020 · 7 min · Ben Bokser