Embedded - 385: I Just Wanted an Industrial Arm
Episode Date: August 26, 2021Jeremy Fielding spoke with us about mechanical engineering, robotics, robot operating system, YouTube, and solving problems. You can find all of Jeremy’s links on his main site: jeremyfielding.com ...but here are a few short cuts: YouTube channel: Jeremy Fielding Twitter: @jeremy_fielding Instagram: @jeremy_fielding Patreon: jeremyfieldingsr Jeremy’s Industrial arm punching video Elecia’s typing robot Jeremey had a neat way to go about solving a problem. He called it Dr. FARM: D Define the problem R Research other solutions, partial solutions, terminology F Function: what do I want it it do? A Appearance: what should it look like? R Risk: is anyone going to get hurt in manufacture and function? M Model: prototype the design AR3 Open Source Control Software and a version with ROS MoveIt
Transcript
Discussion (0)
Welcome to Embedded.
I am Alicia White, here with Christopher White.
We're going to talk about robots.
We're going to talk about hardware.
We may talk about software.
But we need something else for the robots.
What we really need is a mechanical engineer to help us out.
And I am thrilled to welcome Jeremy Fielding to the show. Hey, Jeremy. Thanks for joining robots. What we really need is a mechanical engineer to help us out. And I am thrilled to welcome Jeremy Fielding to the show.
Hey, Jeremy. Thanks for joining us.
Hey, thank you for having me.
Could you tell us about yourself as if we met at, I don't know, a Maker Faire lunch or something?
Well, I would describe myself as a mechanical engineer who designs and builds prototypes, all types of projects, everything from science experiments that fit on a desk all the way up to industrial size equipment the size of a tractor.
And tell us about your YouTube channel.
My YouTube channel is my opportunity to share my passion for engineering with the world.
So I try to teach people engineering principles.
But if you open a video talking about rotational inertia, nobody's going to click on that.
So my goal is to, I try to make it as interesting as possible.
I go after the most challenging projects. I build like the last project
being a full-size industrial robot
to give you that wow factor
to make you go,
holy cow, he built that in his garage.
And then I can talk to you
about rotational inertia.
So that's really what it's about.
I want to get you to come
and take a look at the kinds of things,
the amazing, interesting projects
that engineers can do.
And by the way,
you can learn some engineering
along the way.
Blah, blah, blah.
Large industrial arm.
Yeah, anytime you say industrial arm, she just checks out.
Exactly.
We want to do lightning round where we ask you short questions
and we want short answers.
And if we're behaving ourselves, we won't ask,
are you sure and how and why?
Are you ready?
Why? Yes, I'm ready and how and why? Are you ready? What?
Yes, I'm ready.
Imperial or metric?
Ooh, I use both.
Can we all just get along?
Engineer, scientist, educator, or maker?
All of the above.
What is in your toolbox?
A little bit of everything, but quite a few tape measures.
Phillips, flathead, or torques? Torques, definitely.
Do you like to complete one project or start a dozen?
I do both. So I start a dozen projects and then I realize I need to finish something,
so I stop all the others and just select one to finish first.
Do you think there'll be a singularity event in our lifetime?
No.
Favorite fictional robot?
Huh.
Johnny Five, definitely.
Do you have a tip everyone should know?
Ask probing questions.
Oh, that was the answer. Not a directive.
Not a directive. Okay. But let's go for the probing questions. You have your own industrial arm. How big is it?
Wait, wait, wait. His arm isn't industrial.
Oh, it's not a prosthetic. Okay i know it's it's how big is the arm
well uh my goal was to design the arm to have a little over one meter of reach so that gives you
a sense of scale i think it ended up being about 1200 millimeters so i see there's metric there for
you yeah and how many axis of freedom do you have the right now is bolted to
a platform making it a six axis robot but the original intent and i still intend to build a
track for it which would make it seven axis so it would be like a large arm on a tank uh well it
wouldn't be free roaming this would be just a linear track that it can move along like railroad tracks.
Okay.
So it'd be limited in that scope.
But the design intent there is to make the track such that you could just keep attaching more pieces.
And therefore, I can make the track as long as I want.
That makes more sense than putting it on like a wheeled track vehicle, which is what I had in my head.
Yeah, well, you lose some of the precision there, but you get a whole lot of freedom.
So that's an interesting thought.
Well, actually, I don't want to tell you about that yet because that's a future video.
But that's not far-fetched, what you just said.
Okay, so you have been making videos for a while. And then at some
point you're just like, you know what I need? I need something that can open a beer for me
from across the room. Or actually, what was the thought process in, I want to make my own
large industrial arm? Well, the truth is, and I get this question a lot, but
really, I just wanted an industrial arm. I mean, ever since I've seen one,
seen those videos where like how it's made and you see these cars being fabricated and there's
this massive sort of majestic mechanical machine lifting up car doors and flipping the car over
and painting the interior.
And just, that's been fascinating to me for a long time. And I finally decided, you know,
if I can get a sponsor to pay for this, I want to build my own industrial arm. I don't care what it
does. I just want to make one. I totally understand. We went on a tour of the Tesla factory in Fremont
and the arms just kind of put the car here and there,
and they weld, and they move it. Yeah, they're grabbing entire frames and just flipping them
around in like a second. It's like, okay, that's disturbing. Yes. It's beautiful and obviously
quite dangerous because they don't care if you're standing there or not. They have a place to go,
and they're going. Have you had any incidents with your robot where you're like, oh, maybe I should put tape down on the ground or something like that?
I have.
Fortunately, nobody got hurt or anything like that.
I do keep the space around the robot.
I don't let anybody get close to the robot.
So when my kids are in the shop with me, they know, like, hey, okay, robot's on.
Everybody knows to stand back and give it its space. But I've had instances where, for example,
a motor overloaded and it threw an error. So that one motor stopped moving, but all the other ones
moved. And that caused the arm to go to a position I didn't expect it to be in. So I was thinking it
would just be manipulating on one side and it go all the way over to the other side. It's like, oh, wait a minute. I wasn't looking for it to be over there.
And when you have it going at full speed, it's really scary to see it go somewhere you didn't
plan for it to go. So for sure, I give it plenty of space. How fast does it go?
You know, that's a great question. I've sort of been tinkering with the numbers
and I don't really know what the true answer is. I mean, the motors can move theoretically way faster than I want and then backing off, trying to figure out what that limit is. But I'm actually working on that right now, trying to figure out what's the fastest safe
speed that I can go at.
I don't know what that number is yet, but it's scary.
So there's a software aspect to this.
There's the control, the kinematics, the making sure the motors go at the ramp speeds instead of just on and off.
And then there's the electrical part, which is mostly power, I think, although I could be wrong.
And then there's the mechanical part of actually making sure it doesn't crash into itself,
although that may be partially software, but there's a lot of mechanical parts.
Have you done all of them or have you outsourced some parts? The only parts that are purchased would be the gears,
the bearings, and belts, parts like that. Everything else was custom made in my shop.
So every other component and bearing supports, well, fasteners. Fasteners
would be the other one. And that's it. Everything else, I machined myself, which was very much
intentional. I wanted to do the entire process myself so that I'd understand all the aspects,
including with the electrical. So my initial thought was that it would be,
well, essentially what you said. I thought as long as I had power to
the individual servo drives, then that would be good. It'd be all software after that.
But I actually ended up installing a lot of relays and other components to sort of help
control things in a sort of auxiliary fashion. For example, controlling the e-stop and how it
operates. I spent a surprising amount of time thinking about how I wanted the e-stop and how it operates. I spent a surprising amount of time thinking about
how I wanted the e-stop to work and what I wanted it to do. The motors in the base, like the first
three axes, all have brakes. So when do I want the brakes to engage? Because I'm trying to keep the
arm from collapsing on someone if I lose power, things like that. So there was just a whole
thought process that went into the electrical design, which
ended up adding about 14 relays and several other electrical components that are doing
various things to help me control the robot outside of the software side of it.
How do you get the feedback?
How do you know where the robot arm is right now?
Well, all of the motors have encoders
on them. So the servo drives themselves, the servo drive also knows where everything is. But
it's interesting that you bring that up because I realized yesterday when I had that problem where
the motor, where the arm went somewhere I didn't expect it to go, it was because one of the
couplers holding the gearbox to the motor had actually loosened a little bit. So as far as
my computer was concerned, as far as the servo drives was concerned, the robot was where it was
supposed to be. But mechanically speaking, it was not. And so that was a lesson learned there that
I didn't realize I had a gap there in my design where it still could go somewhere I didn't expect it to go. And I have
to rethink how I want to do that. Do I want encoders to be on the gearbox itself? Like,
there's just a lot more things to think about now. Do you have problems with things shaking loose? Not usually. This was sort of an unusual problem, I think. So I'm using
Loctite and I've got Wedgelock washers in most places. In fact, this is implemented pretty much
everywhere except in that one place where I had the problem. But I didn't want to do that on the
shaft of the motor. So this was just a little bit of a surprise. But I haven't had anything else come loose.
And the software.
Was that the worst part?
The most fun part?
The why can't I get somebody else to actually make Ross work part?
This is a multifaceted problem that i am still actively working on so for the most part when i
want to move the robot around and just uh sort of learn more about the mechanics and how things are
going to behave i'm actually using a um open source so i'm using the open source software
that another youtuber made for his much smaller robot, but I was able to
modify it a little bit to control my robot. And that's kind of what I do to just jog things around
and sort of test out the robot now. But in the background, I'm also writing my own program and
then trying to get ROS and MoveIt, which is another software that's designed to work with ROS to control the robot.
So that's the ultimate goal is to use MoveIt and ROS to control it. But that has been unbelievably
hard. She's not laughing at you. She's laughing at you. Yeah. I mean, ROS is just, well, first,
I'm also new to Linux as well. So just consider how difficult that is for me to be learning Linux as well as learning ROS, as well as trying to learn Moveit.
It is really, really kicking my butt right now.
But I am trying.
And Moveit is so powerful.
Have you tried Gazebo?
I haven't.
Well, actually, yes.
I opened it and I did the little demo where you just jog around the robot that sort of comes with the program to the tutorial robot.
And that's as far as I've gotten with that.
I was celebrating the fact that I could even get it open.
I mean, I'm just.
Yeah, yeah.
I'm a total novice in that area.
So I am.
I'll spend hours just scratching my head wondering why the thing just won't even open.
It's pitiful, actually.
Do you have any questions?
Because I use Ross a lot
welcome to the Ross Hour
we can't
I would just
we can't
you can't ask me that
in the middle of your podcast
because I'll just
it's her podcast
she can do what she wants
yeah
to answer your question briefly
yes
I have lots of questions
we should probably sidebar that
and
because I don't know
what I'm doing, I need help. Well, and with the ROS, which is Robot Operating System, if we
failed to say that, which isn't an operating system, it runs on top of Linux.
It's not a robot either.
It's also not a robot. But it comes with a bunch of packages that help you simulate
and move robots safely. But one of the problems is you have
to describe your robot in their very special robot description language. And then you have
to understand all the published subscriber stuff that happens. It's very large and it is mostly
written by grad students who now are no longer supporting their packages. So, very cool. Very, very good description.
Big. Just translate that to pain and suffering,
and that would be a good description there.
So, I got a robot arm,
and it was the Mi Arm robotic arm, and it was $50.
And I built it myself.
Yes.
From the kit.
From the kit.
How well do you think it compares with yours?
Well, probably wouldn't want to compare those two.
Yours could pick mine up and throw it across the room.
Yes. But I would say, like, I used to think before I started actually building my arm and trying to understand how industrial robot, how their operating systems are normally designed.
I thought it would be a decent idea to buy a kit like that.
And so one of my initial thoughts was, you know, maybe I'll buy a small
arm and use that for some sort of demo project and try to work my way into it. And I have that
thought all the time and I never actually do it. I almost always just jump in the deep end.
And usually that pays off again with lots of pain and suffering, but I almost always just jump in
the deep end. But I'm glad I did in this case because it turns out there's very little translation between the two except the fact that you have these independent axes that need to be independently controlled.
But that doesn't really give you a good sense of what it's like to try and do kinematics or inverse kinematics and understanding how the robot is actually figuring out where it should be.
None of that translates well to those little arms with the toy servo motors,
is what I'm going to call them, to differentiate them from the industrial ones.
And the limited number of axes.
Yeah, and even mechanically, it's not quite the same.
I mean, you knew that when you asked. But, yeah, I don't feel like we do our kids justice if we hand them that thinking it's going to teach them, you know, what it's like to actually work with an industrial robot. Because other than the fact that it kind of has a similar shape, it's not really the same thing in any respect.
Well, a good part about it was learning the kinematics and the inverse kinematics.
Yeah. Was there inverse kinematics with that one? How did, uh, the one that I saw, I mean,
I saw the picture of, you know, what you shared with me, but the one that I'm familiar with that,
um, my son was playing around with, it came with a whole bunch of potentiometers and he would just
roll the potentiometers and the different axes would move but i didn't see anything where there would be you know i didn't i didn't see the program inside of
it where there was any calculation going on if you wanted the say the gripper to move in a straight
line you know and how would you figure that out but if that comes with that little robot then
there's some um there's some additional value there. Yeah. I used the robot to do straight lines and to do multiple solution types of movements where I could get to a position going different kinematic paths.
And it was pretty fun.
It was hard to build because the mechanics were not great.
And then it was very prone to shaking loose things, even with reasonable Loctite and washers.
But I could get it to go in a straight line.
I mean, my goal was to make a typing robot, which was very silly.
But it was the whole camera part mixed with machine learning, mixed with the arm and trying to get...
The worst robot in the world to do something with software helping it.
Right. The goal was a terrible hardware with good software. And could I do anything with it?
Wait, so, I mean, first, that sounds like an awesome project, but also you couldn't get that to work with this? Like you couldn't get it to, because I'm looking at it, and if we're just talking about a typing application, then that doesn't seem, well, I mean, I haven't actually held the hardware in my hands, but what kind of failures were you having?
I'm taking a little tangent here.
Hopefully that's okay.
It didn't have much feedback at all.
There was a little bit, I put in current feedback, but it wasn't a proper servo.
I mean, it was a servo, but when I told it to go to position 0-5, it could go anywhere between 0-10 and 0-500.
So it just wasn't very precise in its positioning, partially because the mechanics
were loose. And if I tightened them too far, they couldn't move at all. But because they were loose,
if I went to a location from one position over here, I would overshoot or undershoot
differently than if I started in a different location. So the camera was supposed to be able to tell where the arm was going wrong.
And it was hard to move a short distance because it just had the torque.
So it would be better if the camera could tell the arm to move to a different position while it was still moving.
There's a lot of tremendous amount of backlash and play. There was so many things wrong with the arm,
but I had a really good time with the software and I did get it to type and that part was okay.
And it got a lot of things with the camera so that there was no fiducials, there was no setup.
I just had to have the camera be able to see everything and then do a very small amount of calibration.
Yeah.
And, you know, I could do, it worked, you know, maybe 40% of the time.
But then I got a video where I told it to type hello and it typed help.
And that was kind of the best possible thing I could do with this.
The project was over at that point.
And I couldn't imagine doing anything really better.
So I stopped working on it.
And I also got a job working with Ross and machine learning and real robots.
So it wasn't as much fun to play with at home if I was doing it at work.
For sure.
Okay. I mean, but it work. For sure. Okay.
I mean, but it sounds like a good software experience, though,
in terms of the challenges there.
But then the mechanical design was really limiting your ability to execute.
Well, and I used ROS and played with it in Gazebo,
but I could never get the robot arm description perfect.
And so I did some demos where I would move the robot arm and have Gazebo running so you could see what the simulator looked like.
And sometimes they would be in perfect sync and it was very beautiful.
And sometimes they would just be totally out because my degrees of freedom were not separate, not truly separate.
There were some, just because the motors were and the gears and mechanical that I don't understand.
Wow.
So we need to build you a typing robot.
I suspect your typing robot with your mechanical arm could you just need a really big typewriter
it would it would be able to type really well or pulverize the keyboard exactly which is what i do
to my keyboards yeah well that would be the i mean it's got really good repeatability so once i
figured out exactly how much to press the key, I should be okay.
But it should press it the same each time, but it would definitely crush a keyboard.
So got to get it right the first time, kind of, in this case.
So one of the things I did was with the camera so that I didn't have to fix the keyboard in position and I didn't have to say, go to this position.
I had the camera to
do a closed loop feedback. Are you doing anything like that? Or is it always going to have to go to
the same position? Are you going to say, oh, just pick up the Apple and it has to go find the Apple
and pick it up without squishing it? Well, first I should say that from a programming standpoint, trying to coordinate computer vision and move it,
drag it to a certain position, and then have that replicated in real life. And then the next step
would be to design a workstation around my robot in the model and actually plan out the entire path
digitally first, and then be able to send that program to the robot
and have it repeat the sequence over and over. So that to me is the current goal, to be able to sit
at my desk and lay out exactly how I want the robot to move, and then go out and just upload
it to the robot would be the ideal scenario for me. But when it comes to like the robot responding
in real time to something it sees on the screen, that would be amazing.
But I would definitely want to get help with something like that.
I think I'd be talking to someone.
And then there are two levels to that, right?
There's 2D vision where you're just controlling the X and Y and you tell it where the Z is, but then there's 3D as well, where I guess it's looking at the size of the
object in the frame and maybe adjusting that to figure out what the Z height is. There's just a
lot to think about there, even as I'm just processing this right now. All of that beyond
where I'm at, but it would be fascinating to venture down that road. Do you have current
feedback so you can tell if you're pushing on something?
I could get that information from my servo drives,
but I'm not doing anything with it.
So of course it's adjustable as well.
I can tell it to overload at as small
or as large a number as I want.
But then also I can have the encoder position output
to the computer. I could have the encoder position output to the computer.
I could have current limits or speed, whatever variables I want, really.
I can get that information and have it feed into the software.
But what I do with it after that, I have to figure out.
Current limits are nice because you can make it so that the robot is slightly less dangerous.
Like if it's pushing on you, it will stop eventually. Yes. I mean, it doesn't do a lot
of good if you're going fast. That's a double-edged sword because if you're going to go at high speed
to accelerate the arm requires a certain amount of power. And then at speed, there's a certain amount of power.
So you have to set the limit high enough that you don't overload just because you're trying to move fast.
So how do you differentiate that from when you hit something versus when it's just the inertia of the weight of the arm?
Those are different variables.
So I think what you will really be doing is if you want a collaborative robot, for example, by nature, it has to be slow because you're trying to use current to decide how much
you can push and pull. By the very nature, the robot's kind of wimpy. It's weak. It can't lift
very heavy loads and it can't move very fast because you also need high currents for that.
So there's a pretty difficult trade-off there.
Unless you could offload that task,
like if you had some sort of surface sensor,
and if you were touching the robot,
not physically limiting, not causing the motors to overload,
but if it was sensing you in some other way,
I feel like that would be the ultimate way to get high speed and power,
but also get some of that safety back.
And that's a hard problem.
I don't know how you do that off the top of my head.
Ultrasonics, maybe?
I mean, you can do some of the current calculation by saying, if I'm accelerating, my current
load can be higher than if I am at a constant velocity.
Then it's not safe during acceleration.
That's true.
Yeah. I mean, I talked about this in one of my recent videos where I used the illustration of a figure skater spinning around.
And I said how when she brings her arms in, she speeds up because essentially her momentum is being conserved. So the same thing is happening with the robot. If you're going to have different
current when the arm is fully extended out and the arm is swinging around versus when it's closed.
So there are a lot of variables where you're going to be really limited. If you have a program where
the robot is going to be reaching out, you're going to have to allow for a slightly higher
current than when the robot is reaching for something very close. And especially if it's
carrying something, if there's a load hanging from the arm, then again, you're going to have
to have allowances for higher current. You had a video where you recommended
somebody get a five pound weight and hold it at the end of their arm extension.
And that was really cool. Can you talk about that? Yeah. So I was just talking about the difference between essentially how much, how big of a factor torque is.
And that was really the factor. I said, if you hold the weight, extend it away from your arm, from your body, and you try to swing it around, there is not just the torque of holding the weight up, which is what you
get when you, maybe the best example would be like a seesaw. If you have a heavier kid sitting on the
seesaw with a small kid, the smaller kid has to sit further away, you know, to sort of balance the
two out. Well, when you extend your arm, the same thing is happening. You're increasing the amount
of torque you need to hold up the weight. So that's when it's still, but when you extend your arm, the same thing is happening. You're increasing the amount of torque you need to hold up the weight.
So that's when it's still.
But when you try to accelerate that mass, there's an additional force there to allow for that acceleration.
And so that's what I was trying to describe in the video, the fact that you don't just have to deal with the torque of lifting the weight.
You've got additional forces when you try to move the arm quickly, which is one of the goals that I had for my robot.
I want it to be able to move very fast, but that greatly increases the amount of power you need.
And I thought that that was kind of surprising in terms of how much more power you actually need.
That makes sense.
Yeah.
As you're thinking of what you want the robot to do, do you have ideas? Are you going
to make it dance? Are you going to make it play something? You know, this is something that,
I get this a lot. So I've got people, you know, telling me like, oh, you know, you could have it
throwing things and you could have it doing this and that. Have it play operation and then say that
it's a medical robot. Yeah, like have the robot do a sword fight and build another robot and they
fight each other. And so it's always fun when I hear that, but I'm kind of a serious creator.
So when it comes down to like actually doing it, I kind of talk myself out of it. I go,
yeah, that would be fun. And it's like, I don't want to do that. What if I have the robot build
another robot? Yeah, I don't know. Like I always end up kind of going back to the simpler sort of things.
But, I mean, I am doing something right now, which I can probably tell you about because my video will probably come out before you release this podcast.
But the one I'm working on right now is I'm talking about robot safety.
But, again, who's going to click on a robot safety video?
So I bought a full-size boxing dummy, and I'm going to click on a robot safety video? So I bought a
full-size boxing dummy, and I'm going to have my robot throw punches at the dummy. And let's just
see how dangerous it really is. If you had to take a punch from a robot, what would that look like?
And so I actually cast a human-sized fist. So Jarvis has a fist. That's the name of my robot.
And the fist is mounted right now.
And today I'm going to go out and punch the dummy with the robot arm.
That's pretty awesome.
But you also arm wrestled your robot.
Oh, man.
So yes and no.
Like I thought about arm wrestling the robot, but I didn't actually activate it. Like, I thought it would be funny if I tried to push against the robot, but then my better judgment took over and I thought, you know, this is like a fun picture, but I don't think I'm actually going to start with a higher level question first you you introed the the
robot video with kind of your design process you went through a series of questions how am i going
to do this how am i going to make this safe what happens if this happens and i really liked that
because it's it's a design process that i don't see people doing too much anymore like exploring
what could go wrong and exploring what you really
want out of it instead of just going down a list of specifications. Is that your usual approach to
problem solving? It is. In fact, I have an acronym for it. I call it Dr. Farm. And it's something I
just made up. But basically, D is define the problem. I always start by, which is what made me say, ask probing questions earlier, because I'm
always thinking about when people come to me with their engineering problems, the first
thing I want to know is, do I have a really good definition of the problem?
Because sometimes they think the problem is one thing, but there is a deeper problem that
we might be able to solve with a much simpler solution.
So I start with defining a problem, get as specific as I can.
I'll usually write that down.
And I try not to constrain myself unnecessarily because it's very easy to start with an idea.
Usually you start to design with an idea already in mind of how you're going to do it. And so without even thinking
about it, your idea is driving the definition of what you're going to design. So I try to
put that aside for a moment and just say, what are the actual core things that I really need?
How do I define this problem well without thinking about a solution? Because that could often lead to
a very different solution. So define the problem.
Next is research.
That's R.
And do your homework.
Figure out, has anybody else done this before?
I mean, there aren't very many new engineering problems.
So if I can research this problem and figure out,
has someone else already dealt with this?
And maybe it'll be in a field that's completely unfamiliar to me and the thing has a name I don't know about, I try to explore everything that I can think of that might move
or behave the way I want my design to move or behave. So I'll do my homework and see what's
already out there. Then the next thing will be function. And all of this happens before I start
designing anything in CAD. And so function is next. What
do I really want it to do? And how does that match up with my constraints? And appearance is next,
which could also be just its geometry, its shape. Then I started thinking about my 3D model. How do
I want to shape these components to match the need? How do I keep the weight down if weight
is a constraint? It usually is.
After that is risk. Is anybody going to get injured or hurt? Is there any risk of manufacturing? Can I even manufacture this product? How do I go about making sure that this thing can be made?
And the last thing is model, which I could also translate as prototyping or refining my design. And usually I will make prototypes
of the critical components to just test out my idea, see if it's actually functional.
Sometimes it's as simple as just cutting out pieces of cardboard and putting a pin in it if
I have a pivoting joint and just looking at it and making sure it makes sense in real life.
When you model something in 3D,
it doesn't collapse on itself. It doesn't fall. It stays exactly where you put it.
But when you make an actual physical model, then you get to see gravity and you can see what happens when you roll it over in different orientations, how it might be handled. So
that's sort of my design philosophy in a nutshell is, well, Dr. Farm is what I started calling it.
And you did make a model of your industrial robot.
You 3D printed something?
Well, the way I did it in this case is, so I made a really small 3D print.
That was just a model that I found online of a KUKA robot, just in case you're talking about the model I was holding up. But I actually 3D printed several of the full-size parts. In fact, in the very first
video, there are like two parts that are still showing 3D printed parts as I was proving out
the design because there was a lot of metal being used, a lot of big blocks of aluminum for many of
these parts. So I wanted to do a proof
of concept and 3D print the part before I spent hours and hours machining something that didn't
fit or didn't work. But the 3D print was an easy way for me to make something without standing in
front of the machine, put it in place, again, hold it in my hands, test it out. And in this case,
I tried to print with enough thickness to support its own weight
and be able to attach it to the robot. But of course, I wouldn't load the robot with 3D printed
parts. But it gave me a good sense of how big the part was going to be, whether it will fit or not,
if it was functional. And I actually made some design changes based on that. So it ended up being really helpful. I like the Dr. Farm approach. Modeling is the last thing. Like there's a lot of thought ahead
of time. And I think at least in software, that kind of design is falling out of favor a little
bit and people skip straight to the modeling, which can work fine for certain things. But
it does leave that whole range
of, you know, thinking about risks or thinking about what could go wrong or thinking about if
you're even solving the problem you think you're solving out. And I wish people would pay more
attention to the design stuff up front. So go watch. You talked about this deeper, I think,
in the 18 mechanical design tips video. I did, yes.
And I think that any engineer should watch that.
Oh, yeah.
In fact, looking at the comment section, that's a pretty common comment.
I think there's at least 50 plus comments from people saying like, wow, that applies to my industry as well.
And I'm not a mechanical engineer.
So I'm seeing that from people doing software, people doing corporate stuff.
I'm getting a lot of positive feedback about those concepts overlapping with things that they felt were important in their field.
So I have a question related to your YouTube channel specifically.
Should I email you about my project or idea?
No, please don't do that.
Oh, wow.
You are touching a hot button there.
But wait, I have this perpetual motion machine thing that I think you and I should really collaborate on.
I am just inundated with emails from people who are hey i'm trying to
wire this motor can you help me out like oh i have this engineering thing that i'm trying to make and
and then um oh my gosh it's it's unbelievable the the floodgates that come and so in every
possible way i could think of i've tried to alleviate that by, with auto replies and with comments in
the description. It just doesn't work. They just come from everywhere. It's on Twitter, Instagram.
Oh, man. We don't get that as much. Do you think it's because we're consultants and we're pretty
upfront with you have to pay us if you want us to pay attention to you? I think he's exposed to a
lot more people too.
There's definitely a sense when you watch my videos, I think, and this is intentional. Like
I call my subscribers, my neighbors, like this is very much intentional. I want them to feel like
you walked over to your neighbor's garage and I'm just showing you how I'm doing this thing.
Like if that to me is sort of the ideal scenario, right? We can we can relate to each other. I want you to understand this concept. You're not sitting in like me personally and that I'm constantly just sharing things with them all the time.
So it doesn't feel like that much of a leap to them to say, oh, well, he can help me with my specific problem.
And yeah, but if you can realize that it's probably about 3% of the viewership per video will send me some kind of email or message.
So just imagine a video with 500,000 views, how many emails come in and messages.
Every time I release a video, the floodgates just open.
Yeah. Yeah, I can imagine.
That sometimes happens to us. It depends on the episode.
But with guests, usually it's more requests for connections and whatnot.
We won't give them your email.
I mean, if it's a business connection, I'd love to talk to you.
But if you want me to solve your engineering problem, that's what I get paid to do. So it will
be better if we're in a scenario where, and I'm just, I'm going to go out on a limb here,
but I'm guessing that if you were hoping for free advice and not, you know, some kind of
consulting fee. So it's easier for me to just say, you know, I'm sorry, unfortunately, it's not safe
or practical for me to respond to thousands of
messages trying to give engineering advice. I have no idea what your capabilities are. I can't
see the entire problem to fully understand it. I only have what you give me through your lens.
So if you have limited knowledge of what you're looking at, you are my eyes, right? So it's just
inherently unsafe to give advice like
that. And the problem is always deeper than they think. So they're looking at me and they think,
oh, you know, this guy could figure it out in a couple of seconds. But they don't realize how
many hours I spend thinking about the problems I work on. And it's very likely more complicated
than they think. You're really great about telling people that they can do what you do
with practice. You make it look not necessarily easy, but possible. Do you think people don't
engage in this sort of build it at home because they need permission or because they don't feel competent
or why don't they go ahead and do it themselves? Well, there's a couple of layers to that. I think
there are some people who are genuinely afraid of what they don't know. And in some ways,
that's okay. But when you watch many videos open up, especially the more professional ones, they'll have a full minute and a half segment on safety, right?
Like, oh, you should hire a qualified person for X, Y, and Z, and you might get electrocuted, and you might die, and you lose a limb, and you just get a minute and a half of that.
And then they kind of just barely show you how to use the thing, And they say, and if this doesn't work, call a technician.
So there's just this sense that it's, you're not supposed to do it.
And I think people come to my projects with that same idea that like, wow, I could never
do that.
I'm not qualified, but I don't think I'm qualified either.
I just wanted to do it.
So I figured out how to do it.
And I make a lot
of mistakes along the way. And I try to show those in my videos just to give some, I can't show them
all because the video will be too long, but I try to give some sense in each video that, you know,
Hey, I messed up and there are things that I don't know. And sometimes I'll look at it and say,
I have no idea if I'm doing this right or not, but hey, I'm doing it. And my goal there is just to say, try it.
If you want to try it, try it.
I will rarely, if ever, tell you that something is too dangerous to try.
Although certainly there are things like that, but I'm hoping to break down some of the fear barrier that keeps you from ever learning, where you feel like you have to have a college degree and 10 years of experience watching somebody else do it before you actually
try. I don't think that's practical or wise. And you do have a college degree, but not in
engineering. Is that right? That's correct. Engineering, I am self-taught. So my first
engineering job came along with, well, I guess I should start at the
beginning because it will make more sense that way. So I wanted to build a clubhouse for my kids
and I had no power tools. All I had was a drill, like something sufficient for hanging pictures.
And that was about it. And I decided I want to build a clubhouse for my kids. And I did.
And after I built that, I thought, you know, I need a workshop so I can build more stuff because this was fun.
So I built a little like four foot by eight foot shop.
And if you look at my earliest YouTube videos, the first 10 or so, you see that tiny little shop that I was working in. And I ended up making all these sort of space-saving devices. And I built this thing where you could like retract my table saw into the workbench. And while I was doing that
and sort of figuring it out on my own, I thought, you know, it would be nice if I could see a
YouTube video on some of this stuff. Nobody else is quite doing it like I'm doing it. And so I posted a video. The first one that really exploded was one called How to Wire
a Motor. I essentially dragged a washing machine off the side of the road. I wanted to make my own
power tools. And so I figured out how to get the washing machine motor to run outside of the washing
machine. And I thought, it's like five random dudes in their garage who want to be able to do this, but I'm going to post this video and I can help them
out. And it got 400,000 views in the first month. And I thought, okay, well, it's not just five
random dudes. There are a lot of guys who are interested in this kind of stuff. And that was
really what started it. But from that, I bring all that history up to say that it was that that
caused an engineer to call me up.
He had an engineering firm and he just said, Jeremy, I think you have a gift. And I know you
live in the area and I want to offer you an internship with my company if you're interested.
And I said, sign me up. So about six months of working there, they had a huge library of
engineering books and lots of big industrial projects that they were working on. So I learned a lot sitting with that group and
reading through the libraries that they had there. And everybody was busy. So I didn't get a lot of
hands-on teaching. It was mostly like, if you need to know something, look in that book, look in that
book. They just pointed me in the right direction. So that's kind of what I mean by self-taught, but it was from there where the engineering really picked up.
And then that led to another offer a few years later, which is kind of what I do now. But,
but yeah, I, that's how I got into engineering.
I have some listener questions for you.
Sure.
The first one is from Brian.
What is the best place to salvage motors?
Well, let's see.
Trash day is a good day.
Bulk trash.
If you know when bulk trash is in the various neighborhoods, you can sort of ride around.
That's a good place to find treadmills with DC motors and large machines
like washing machines. I've also gone as far as going to a recycling place where that stuff usually
ends up. And if you talk to them there, you're going to have to talk to more than one person
because usually they'll say, oh, we don't do anything with the public. But if you talk to
enough people, you'll find someone who wants to help and they will either sell you the motors or in some cases, I've done trades where
I took a motor out and it didn't work and they gave me another motor in exchange. There's lots
of ways to get that kind of stuff. And I mean, watching Craigslist and Facebook marketplace,
people are often just giving things away in the free section. Like,
hey, this is broken. If you can fix it, you can have it kind of thing. And I don't keep all the stuff. I usually just take out whatever I think I might use in the next month or so. And then I put
the rest of it back on the side of the road for my bulk trash day. So I don't want to stockpile
this stuff and have a huge inventory of things around. but it's pretty easy to find things.
People are usually giving it away.
Brian also asks,
what is your favorite motor component
and why is it a centrifugal switch?
I love the centrifugal switch
because it's such a fascinating mechanism.
It's one of those things where you look at it and you go,
it's so simple, why did I not think of this?
That's the level of fascination I have with it.
It's astonishingly complex and simple.
It's just two springs and a weight.
But it's a fascinating little device.
I have a whole video on it, which is probably where that question comes from. But it's by far one of my favorite motor mechanisms because of its simplicity. And yet it's engineered to work in a very tiny range. It's amazing.
That's the part that is for slowing down and speeding up? Yes.
So you have a capacitor that needs to be attached to single-phase motors when they first start up.
But you only want that capacitor attached when the motor is trying to go from a standstill to full speed.
Usually that's about 1,700 RPM.
Well, you need to connect this capacitor for just that brief window of time and when it's
up to full speed you want to disconnect it or the capacitor will literally explode it can't handle
the current for very long so this device essentially holds the circuit closed and due to
the force of the weights swinging out while the motor is speeding up. Once the weights swing out,
the circuit is open and the capacitor is disconnected. So it's mechanical real-time
feedback on a spinning shaft. That to me is just fascinating. And these things last for so many
years. It's unbelievable. Okay. Nathan asks, what is the easiest and cheapest prototyping material for non-MEs to use to build things like robot chassis or linkages that might have a motor attached to it?
Well, I think it depends on what kind of capacity you want it to have.
I mean, I think for me, wood is the cheapest material to
work with because it's just so widely available. There are so many tools available for cutting it.
And so it's my favorite material. It's what I have my son use when he's making his little projects.
And I mean, he's working on a little CNC machine now, which just blows me away that he built that thing on his own.
But he's making it out of wood and random mechanical parts that he finds in my shop.
And but yeah, to me, that's the best material to work with, especially if you're not machining.
But machining is more expensive anyway, working with aluminum and steel, but wood would be my first go-to,
and then maybe 3D printing might be my second choice. Do you ever use cardboard or foam board
or something like that? I do for just getting a concept down in terms of,
like if I'm just testing a linkage or some kind of simple joint or movement, something that maybe I want to see it in 2D first, or I just want to try out an idea.
But ideally, it will be something just slightly stronger if you're going to put any kind of weight on it.
Again, I think it depends on what you want out of your prototype.
If you just want to see the shape, then foam could work really well. Going back to wood and CNC machine, wood isn't exactly a stable material.
Can you build precision things with a wood frame or out of wood?
You can, but it kind of depends on how you define precision.
So usually my rule of thumb is if I want to measure it with calibers, and I'm trying to measure in thousandths of an inch, then you need to use something more stable than wood.
But if you can measure it with a tape measure, then you should definitely use wood.
Wood is more than sufficient. um if you're trying to go below i mean the biggest thing about wood is that the moisture
content affects its you know actual geometry so if it's a little bit more humid it might swell
by a few thousands if it's really humid where you are it might be 15 or 20 thousands but that
will be the most variance i would expect from a piece of wood. So if your tolerance is larger than that, then wood is precise enough.
But that to me is the real balance in engineering.
And I talk about this also in the last video, the 18 tips, that I try to design my components so that they require as little precision as possible.
In fact, I think if your part needs to be machined
on a CNC machine, I partially feel like I failed. Like to me, it's the ideal part is a part that
any random guy in the shop could grab a drill press and a handsaw or whatever, could use a
grinder and his welder and make my part. So I start with that premise. and then I very grudgingly add CNC high precision parts
as I need them. There's some value to that level of flexibility, starting with high precision parts
and then trying to work out towards cheaper materials often doesn't work. It's easier to
start with cheaper materials. Absolutely. If you're just thinking,
if you just start by thinking, how precise does it really need to be? You know, could I make this
with slots? Could I make this more flexible in other ways? Do I want this to have interchangeable
parts? Sometimes what I say is like, if I want to put a tolerance on a part, say I want it to be,
I'm making up a number here, plus or minus 10,000.
And then I asked myself almost immediately after I put that on the drawing, it's like, okay,
if this part is 11,000 out of tolerance, do I really want him to remake this part?
And then I keep expanding that question until I get to a point where I'm like, okay, he's going
to have to throw that in the trash if it's bigger than that and make another one. When you get to that level, then you know you're at about the spot
where you need to be to keep the cost down because expensive parts means fewer sales. It means
your manager is going to be mad with you. It means the machinist is going to have to spend
more time making your part. It affects so many people, including the end user. The best plan is a part
that requires very little precision or no precision at all. I'd like for him to be able to just throw
a dart at a wall and hit the right tolerance, you know? Well, since that's how I put my mechanical designs together, that seems right.
Yeah.
Is there anything you wish electrical and software engineers knew about mechanical design?
Hey, that's my question.
Well, I would say the most important thing to me where I've run into issues with the electrical is often the electrical is not done when the mechanical is almost done.
If I could know in advance how big that part really is, this has happened to me a lot where,
and it happens on both sides, right? Like from a mechanical side, I might get further into the
design and realize that something needs to be larger. But if you spec'd out a part that was
small and then later on you decide it needs to be bigger, that happens with electrical cabinets on some of the big
industrial things that I make. The guy might tell me the cabinet's four by four and I go,
oh, I had to add all this stuff, so now it's five by eight. It's like, wait a minute,
where am I going to put that? So to me, it's not so much what I want them to know, just that we got to talk the entire time.
Let's keep in touch.
Let me know when things are changing.
Give me as much information as you can about the physical shape and constraints of your part.
Hey, that reminds me of another example.
I was working on this.
Well, I can just tell you it was a rather large dredge.
And I was designing this little support to hold on to a tilt sensor to measure the angle of the dredging arm.
So this thing is like 200 feet long.
We're talking about a very, very large dredge.
And this tilt sensor is hanging off the back of it.
So the part that I'm making is relatively small,
but I wanted you to give you a sense of the scale.
The sensor was probably about the size of maybe a 15-inch computer monitor,
something like that.
And so I designed the bracket.
He just told me it needs to be mounted on the back.
But then when he saw the design and it was already made,
he said, oh, but it has to be oriented in a certain direction.
Yet another thing that I didn't know in advance.
So I've got the whole thing rotated 90 degrees from where it needs to be.
And I had to redesign the part and then also have it remade.
So just things like that, like any details, anything that might be relevant to the mechanical design.
Let's talk about it early and let's talk
often. I love working with the electrical guys. To me, they are, I mean, that's how I learned a
lot of the electrical that I do now. I just walk out on the shop floor and, hey, what is that?
What are you doing there? Why is it wired like that? It's how I learned what terminal blocks
were and all of the basics all the way up to the things that I do now. It's funny how much the electrical engineers are in the middle
between software and mechanical.
I mean, I seldom get to talk to the mechanical engineers
because that part is done or just outside the scope of what I can modify.
But you are writing software.
Does that give you a different perspective? I can modify. But you are writing software. Does that give you a different perspective?
I think so, in the sense that I'm just having a much deeper appreciation for how hard it is to write software. It's like, I mean, it is literally another language, right? Except your
language teacher is this, you know, angry woman with a long stick, and she just slaps you on the hand and tell you what's wrong.
She didn't tell you what's wrong, just that it was stupid.
Try again.
And so that's the feeling that I have every time I get an error message and I don't understand what the error message is.
I just want this program to work.
And it turns out that it could be something as simple as you capitalize a letter that shouldn't be capitalized.
But that's not made obvious in the process.
So I don't know.
I have a really healthy respect for programmers and how challenging and tedious it can be.
What language are you working in?
I'm trying to learn or use both Python and C++.
So the C++ is helpful with programming the Arduino.
And for projects where I use the Raspberry Pi,
I can do more stuff with Python.
And also Python on the PC as well,
if I'm interfacing with the computer.
For your ARM, what language are you planning?
Right now it's both, because I am, I've got the software interface, which is in Python,
and then that is talking to the Teensy 4.1, which is what I'm using.
Teensy is basically an Arduino on steroids, for those who don't know.
And so it's a really fast Arduino,
and that's what I'm using to actually talk to the servo drives
and actuate the motors.
So I need something on the PC to talk to the Teensy,
and the Teensy is programmed in C++,
and then on the computer is Python.
It's tough to learn both at the same time,
because they are different enough. I mean, even just the compiling versus not having to compile, but being able to have files.
Yes, and yes.
So you've mentioned that you've learned a lot of things on your own through a lot of diligence, it sounds like.
Do projects drive what you want to learn or does what you learn drive new projects?
For the most part, it's the project.
So I generally start with a thing I want to accomplish
and then I seek out all the knowledge
that I need to accomplish that project.
So I generally want to learn just enough
to get to the next step.
And then I will abandon that learning path and get back on the path of making the thing that
I want to make. But I discover a lot of things along the way. So I may be learning for one
purpose, and then that can turn into a rabbit trail, which leads to more discovery. And as
I'm learning more and more about thing X know, thing X, whatever it is,
let's just say programming in this case, then I started seeing other applications.
So when I first started learning how to program in Python, I realized that you can make a,
it's like, oh, I can make a user interface, like literally a program that I could push buttons on
the screen. It's like, man, it would be great if I could control my table saw with a computer.
How neat would that be to have the fence just go to the dimension I want every time and have the blade go up exactly the height that I want?
And so that was the beginning of my CNC table saw project, which is a video on my channel. But that grew out of me learning,
wanting to learn Python, and then it exploded into other projects.
Learning that way, I mean, I do it too. But one of the downfalls of that is that sometimes
you start to learn something and then you go on to something else and you don't realize that the next chapter in the book was, oh, but you don't have to do it the hard way. Here's the easy way.
Yeah, well said. This is true.
Does that happen to you often? because sometimes I just don't know what I missed. But I have had it happen in situations where I go,
oh, man, I'll see somebody else doing it the easy way.
And then I realize, oh, I didn't even know that that was an option.
I learned that with Python.
So when I first wrote the code,
I essentially wrote out all these various functions,
and several of them were very, very similar.
And when I posted the video, I also posted a GitHub where people could download the code.
And I got lots of compliments. People was like, oh, this is your first program? You did a great job.
But hey, there's this thing called classes that you can make, and it would have simplified your code. And they sent me an example, and I went, wow, that was probably a tenth the length of the program that I wrote,
but there's just all these different functions that I don't know about, I don't know how to use.
And yeah, I didn't learn that the first go-around,
but now I know that there's some new things to learn that could simplify my code.
That's a great thing about putting yourself out there with the project. And, you know, even though you're learning, putting everything you've done on GitHub and allowing people to look at it,
the downside of that is some people are probably not as nice, but having people say, oh, did you
know about this? It's kind of cool. It's helpful. Yeah. Well, I mean, just to, I'd like to comment on that because I think it's worth pointing out
that I really feel like that scares a lot of people away because there are people who
are willing to share and they have interesting things that they're working on, but it's scary
to put yourself out there on internet when you don't feel like you're an expert in a particular thing. And in my case, where once I pass about 20 or 30,000 views, the audience starts to get really wide. And anybody,
if there's an expert in the particular thing that you're working on, they're going to find your
video somewhere in that crowd. And like you said, they're not all nice. So I definitely get some
really harsh comments from
people who are just like oh you're an idiot you should have done xyz but i didn't even know there
was an xyz you know i mean i i finished it it works i don't know what else to say so you kind
of have to develop a tough skin and be mentally prepared for the fact that there's going to be
i'm just going to call them jerks for lack of a better word,
that are just unnecessarily rude to people who have openly called themselves beginners and just said, I'm experimenting, I'm just learning, and this is what I came up with. So it helps to come
out with a decent dose of humility as well, because I've seen videos where people kind of present themselves
as if they're an expert and they're clearly not like when they're touching on things that I am
an expert on and you go, ah, you know, experts don't do it that way. Um, I don't usually,
I don't comment very much at all on videos, but it can be done wrong from the presenter's
perspective as well. Sometimes it's your attitude, but I think I do a decent job of being as transparent as I can and just
saying,
Hey,
this is where I'm at.
This is what I know I'm experimenting or,
you know,
I don't know,
but no matter how you come out,
there's always going to be somebody who's a bit abusive.
And if they had said,
do you know about X,
Y,
and Z because it's really cool. you might have actually listened to them.
But when they started with, you're an idiot, well, I have to say, I don't read any further because I don't care what you think at that point.
Generally, I stop reading at your.
Nothing good comes after that.
Yeah, by far, the tone makes a huge difference. And that can be difficult in text because you
don't have voice inflection. You can't see their face. But there is still tone in text. And so
it makes a huge difference when somebody is clearly trying to be kind and just introducing
you to things that they feel like maybe you haven't seen before. They're trying to be helpful. And those who just want to be rude and insult you.
And sometimes I think people just want to try to impress others with how much they know.
Oh, yes.
They sort of, they need that validation. And so I get that a lot too. Sometimes they'll even go
so far as repeating something that I said in the video as if they said it. I was like, yeah, but I actually talked about that in the video.
Like, you're not adding anything here by saying it again.
But somehow you feel like you had to sort of add emphasis to what I said.
I don't know.
And then when you make a joke in Twitter that is clearly a joke and they say, but this is how you do it.
And I'm like, no, I knew how you do it.
That was why it was a joke.
Yeah, everybody.
Sarcasm is, yeah, I am extremely sarcastic.
So it's tough for me.
A lot of my jokes come through in sarcasm.
And some of them are bordering on like you barely catch them.
Like you can walk out of the room and go, wait, what did he say?
Those are the best.
When that comes through in my videos, people don't always pick it up and they take it very literally what I said.
I understand that very well.
For sure.
So it would be really fun to work with you.
And I hear you're hiring an intern.
I am.
This is something I've been thinking about for quite a while.
And I'd love to have someone helping me in the shop and also helping me with things like
programming, possibly making some parts.
Ideally, the candidate will be somebody who's stronger on the
electrical and programming side and maybe has a little bit of mechanical design, but obviously
that's asking a lot. So I would say anybody in any of those categories should reach out to me.
But yeah, I'm looking for some help and I think it's an opportunity to share some of the skills
that I have and hopefully help somebody else as well.
You said in the shop. Does that mean they have to be in a certain location?
Ideally, North Alabama near Huntsville would be the place to be because some of this can be done
remotely, but I think I'm going to lean towards somebody who I could actually see in person from
time to time. But I'd be open to talking to people remotely,
but the ideal candidate would be near Huntsville, Alabama.
Okay, we'll put a link in the show notes for that.
Well, I don't want to keep you too long
because I think we're going to talk about Ross after this,
and I'm pretty excited about that.
So, Jeremy, do you have any thoughts you'd like to leave us with?
Wow.
I would say the only thing, I think is really important, maybe
the final thought I want to leave people with is try it.
If you're interested in it, you want to learn about it, get the bare minimum things that
you need and go out and give it a try.
The worst possible thing that could happen is, you know, you might lose a finger or you end up in a hospital.
Things can go wrong, but you just sort of have to mentally prepare yourself for the fact that
I'm going to do my best to be safe, I'll do my homework, and then I'm going to try it.
So, try it.
That didn't go in the direction I expected, but I agree with the sum total of the message.
Our guest has been Jeremy Fielding, contraption engineer.
You can check out his YouTube channel by searching Jeremy Fielding, or we'll have links in the show notes.
Thanks, Jeremy. It was really fun to talk to you.
Thank you for having me.
Thank you to Christopher for producing and co-hosting.
Thank you to our Patreon listener Slack group for questions.
And thank you for listening.
You can always contact us at show at embedded.fm
or hit the contact link on embedded.fm.
Now a quote to leave you with.
Actually, this one's from our guest jeremy fielding about
his goals draw them to engineering with amazing projects inspire them with ideas then teach them
how to do it maybe we should add and don't cut off your finger that might be a good addition yeah i uh
might be a good addition, yeah. Might be worth mentioning.