Ask a Roboticist: Q&A with Josh, a Mechanical Engineer at Boston Dynamics
Josh, a mechanical engineer on the Atlas team, answers your questions about building robots, from ideation and innovation, to testing and manufacturing
Josh, a mechanical engineer on the Atlas team, has been with Boston Dynamics for four years. Josh and other mechanical engineers on his team work to design the physical parts that make up the Atlas robot, such as the arms and legs, motors, and battery. Watch the interview with Josh.
Working with Atlas
What does Atlas do?
Atlas is a research platform for Boston Dynamics. We use it as a technology demonstrator to push the boundaries of hardware design and control systems. We select applications like dance and parkour to facilitate pushing these boundaries.
How fast can Atlas go?
The fastest Atlas has run is around 5.5 mph. There’s a running joke here where we keep thinking the robot is at its hardware limits in terms of strength, speed, and flexibility, but then the software team finds a way to do something more athletic and coordinated than we were ever able to before. So we really don’t know how much more we can extend Atlas’s capabilities with its current design.
What was the first prototype of Atlas?
Boston Dynamics’ first humanoid prototype was called PetProto, which was a precursor to our robot Petman. We took two legs from our robot BigDog and tried to get it to balance; later on, we attached arms. That led to over a decade of humanoid robot evolution to the robot you see on YouTube today, which we refer to internally as HD, short for Humanoid Version D.
What got you interested in robotics?
I was always taking apart and building things as a kid, but I got interested in robotics specifically in high school when I built a drone with a friend. It was pretty terrible and could barely fly, but in learning about flight control and electronics, and seeing the drone responding to my inputs to stabilize itself, I felt really empowered to build more successful robots in the future. In undergrad, I learned a lot of the fundamentals of robotics such as mechanics of materials, physics, machining, thermodynamics, and embedded electronics. I also took every opportunity I could find to build robots through projects, competitions, and research labs. I designed spacecraft mechanisms and robots for the Naval Research Laboratory for five years out of college before coming to Boston Dynamics.&
How can other young people get started with robots?
Lego EV3 and FLL (First Lego League) are great entry points for younger kids. If you're in high school, FIRST Tech Challenge (FTC) teams or FIRST Robotics Competition (FRC) teams are awesome. In college, there are tons of opportunities like research labs and undergraduate competitions. And colleges often have great resources and communities to tap into like machine shops, electronics labs, and makerspaces.
Regardless of whether or not you have access to these communities or competitions, take apart everything your parents won't be sad if it breaks. Engines, toasters, computers, fans, old equipment, etc. Probably the most important advice I can give is to just follow your passions. If it excites you and you’re learning, keep following that path, regardless of whether it’s related to robotics or not.
Apart from software and electronics, how much mechanics should you study to approach robotics?
Nowadays, robotics is highly approachable even if you’re focused in one field instead of all three common to robotics (mechanical, electrical, software). If you want to focus on software, you can buy affordable pre-made kits or robots and spend 90% of your time programming. If you want to focus on mechanics, you can pick projects that don't require complex programming, and use microcontrollers that are simple to program.
Professionally, even as a software engineer or electrical engineer, it’s helpful to understand principles of mechanics like backlash, stiffness, or friction, but you don’t need to be a mechanical designer to develop software or electronics for our robots.
Starting a Career in Robotics
How could you get into robotics if you're in a field other than engineering?
It depends on what you hope to do with robotics. If you want to work around and with robots, there are lots of non-engineering jobs that can meaningfully interact with robots. For example, there’s robotics presence in the medical, automotive, and media production industries to name a few. If you want to develop robots without being an engineer, it’s a little harder, but there are needs for advisors in non-engineering fields. For example, a physical therapist might work with engineers to develop a rehabilitation robot. If you want to actually design the robots, you’ll need to learn a lot of the fundamentals and likely get a degree in a relevant field like mechanical engineering, software engineering, or electrical engineering.
How do you build a robot?
For the robots here at Boston Dynamics, we really have to approach it holistically. All the subsystems are so interdependent—to try and design each aspect in a bubble would never work.
You can think of it as the whole robot slowly coming into focus over time. It generally starts at a basic systems model, then a lot of rough concepts across disciplines converging in parallel as teams communicate with each other, then detailed design where the back and forth between teams never stops. There are a lot of different types of people involved in building a robot. Some of the main technical disciplines that are required are electrical engineers, mechanical engineers, software and control engineers, specialized technicians, machinists, and operators. And that’s just on the development side. To actually introduce our robots for use in the real world, there is an even larger team of manufacturing, production, logistics, business development, marketing, sales, and administration.
What kind of people work at Boston Dynamics?
The people at Boston Dynamics are really kind and friendly. Everyone’s always willing to lend a hand where they can. As you might have guessed, there are a lot of nerds here, and people are really passionate and excited about robotics. I think something that’s not super visible to the outside world is a strong interpersonal culture that drives the way engineering is done. When you walk into a design review or brainstorming session, you see people leave their egos at the door. It’s not about your idea being the one that goes on the robot. Everyone just wants to build the best robot that we can, and when there are successes, it’s felt and celebrated by the whole team. When there are failures, the team works together to learn from the mistakes, and in many ways they are equally celebrated. That’s a big part of the culture here.
What advice do you have for someone with a lot of passion, but less experience, to take their mechanical design skills to the next level?
In general, you’ll want to get your hands dirty and do projects that push you. Here are some practical tips for upping your robotics mechanical engineering game to the next level. I’ve included links to a few recommended resources:
- Complexity in fundamentals: Focus on doing the fundamentals really well rather than picking an aggressive project that prevents deep diving. For example, I’d recommend an inverted pendulum over a quadruped made of hobby servos any day.
- Actuation: Try to use sensed brushless motors instead of hobby servos, stepper motors, and brushed motors. There are a lot of people trying to do this affordably in the DIY community (Here’s some examples to get you started: 1, 2). You can also scour ebay for cheap used industrial grade drive components.
- Machining: 3D printers are great, but taking the leap to machining will expose you to great experience and higher performing parts. Get involved in your school’s machine shop if there is one, or look for a local shop to help out at. Hobby grade CNC’s can also cut metal effectively with some TLC (1,2).
- Closed loop control: Try implementing your own closed loop control algorithms. Some of the most important proprioceptive sensors in robotics are encoders, load cells, and IMU’s. Try to pick high resolution sensors with good linearity and high bandwidth (1a/1b, 2, 3).
- Precision: In your designs, always consider backlash, sensor location and resolution, gearbox design, and unwanted motion between the actuator and output. Trace the load path from the thing your robot is touching to the motor, and think through what might slip when the direction of load changes. Try to avoid putting bolts in shear, and go through extra effort to reduce backlash after any gear reduction stages.
- Stiffness: Deflection under load (stiffness) is often more important than when a mechanism breaks (strength). In your designs, think independently about them. Try not to pass a lot of load through small areas, like driving a joint through a thin shaft, or using long slender tubes in bending.
- Free published resources: Some examples include vendor catalogs (1, 2, 3, 4), blogs and personal websites (1, 2), and academic papers/free courses (1, 2, 3).
- Team before robots: Be quick to listen and slow to speak, don’t hold onto your own ideas too tightly, and welcome feedback. Encourage and grow teammates with less experience. Keep your ego to a minimum and build up your teammates, rather than competing against them.