Close

Ok, I think I might need your help

A project log for 5+ Axis Robot Arm

Building an open source robot arm for makers and small businesses

dan-royerDan Royer 07/04/2014 at 21:503 Comments

Some people have trouble with public speaking, some with spiders.  I have trouble with asking for help.

Where I'm at

It seems I've reached a plateau.  I don't seem to be smart enough to get over the stuff I'm stuck on, yet.  To avoid the issues I've been blogging a lot to teach programming and robotics.  The high-school level stuff I'm good at.  I just wrote some stuff about making a line following robot and released the plans on thingiverse.

I'm also getting ready for NYMF.  Heck, tonight I'm at MakerLabs in beautiful Vancouver, drawing a huge mural for their official opening party.  Seems that now most of my day-to-day operations are smooth flowing, so I finally have time for outreach and generally giving back to the world.

See this? I'm trying to avoid the issue.  Even thinking about it is hard.

Gearbox

If you've been reading the updates, you know that I've been trying to make a hypocycloid gearbox.  So far I've got one that works but only sort of.  It gets stuck a lot and the output isn't consistently even.  I'd really like to make it out of another material.  That very quickly reaches the corner of stuff-i-know-little-about and experiences-i-mostly-regret.  So I'm looking for some help, maybe a confidence boost, I dunno.

Software

The software is working fine in three axies.  I've even updated the instructions to make it easier for you to download, setup, and compile the java yourself.  There are some big challenges here.

1. how to turn the finger tip with inverse kinematics?  I was going to rotate it around the world XYZ axies, but some people might want something else.

2. What happens when switching from forward to inverse kinematics?  Rotating the tip with FK or IK only is fine.  Switching from one to the other after rotating the tip.... I don't know how to do that math yet.

3. What do I do about singularities?  A singularity happens when there's more than one solution.  For example, if the finger tip were point straight up AND directly above the shoulder?  Well, the elbow could be anywhere and the results would be the same.  So where should the IK put the elbow?

So

I'm going to keep working on this.  Eventually I'll figure it out.  I'd rather learn how others solved similar problems, it's a more efficient solution.

If you have ideas, time, or resources that might help, I would really appreciate it.

Discussions

Kevin Harrington wrote 07/10/2014 at 05:47 point
The problem of singularities in IK chains is an old problem. Most robot designers have the luxury of designing the singularities into an unused portion of the workspace, or put limits so the singularity is never reached. Detecting them ahead of time is the trick to avoiding them.

The FK to IK "switching" is confusing, i am not sure how these are connected. Usually these are entirely seperate functions that are called. FK can be easy (from a programming perspective) to calculate for serial manipulators like this using D-H parameters. Its just 4 matrix multiplications per link in the chain. I watched this video over and over until i got it:
https://www.youtube.com/watch?v=rA9tm0gTln8

You can also use my D-H FK solver:
https://github.com/NeuronRobotics/java-bowler/blob/master/javasdk/NRSDK/src/com/neuronrobotics/sdk/addons/kinematics/DHChain.java
and
https://github.com/NeuronRobotics/java-bowler/blob/master/javasdk/NRSDK/src/com/neuronrobotics/sdk/addons/kinematics/DHLink.java

I was working on a Jacobian iterative IK solver, but the project got shelved so I could work on more pressing problems. You can use the Jacobian (a way of using the FK to generate the inverse velocity kinematics) to simulate a gradiant decent solver by calculating the velocity at each joint, simulating a step, then cecking the FK to see if the solution has arrived. Once you have the final joint positions, you send that to the joint level. This will give you infinity values when you hit a singularity, can your core logic can use that infinity to ever-so-slightly introduce an "error" into the link position to avoid it. Singularities are only a problem when you do not notice them and the math blows up. An Iterative solver deals with that edge case.

It also works with the servo/PID controller from the ServoStock we had talked about, so i can garuntee it integrates well...

  Are you sure? yes | no

zakqwy wrote 07/08/2014 at 15:47 point
Dan -- I've enjoyed your updates over the last few months. It's clear that you've accomplished quite a bit on this project already. I can't help much with the software, but the idea of a complex 3D printed gearbox design seems like a stretch for a one-man race-to-the-finish project contest. Can you ditch the custom hypocycloid gearbox and use something off the shelf, at least to give yourself a working platform? FDM material isn't terribly strong or wear-resistant, so it seems like the current path could cause you problems down the road with reliability. Maybe you can work on the hypocycloid mechanism offline and have someone machine or SLS it out of different material for later integration into the 6DOF arm.

  Are you sure? yes | no

zakqwy wrote 07/08/2014 at 15:51 point
I re-read your post and you talked about using other materials. My thoughts here are as follows:

- Off-the-shelf would be great, whether you find a hypocycloid system or a more conventional worm gear mechanism. Optimizing for durability and torque capacity while minimizing backlash is no small engineering feat.

- Try contracting a firm to print your hypocycloid parts out of a high performance engineered resin or metal using selective laser sintering.

- Can you design the gearbox to be simple enough to be mostly machined out of aluminum, ideally on a 3-axis Cartesian setup? If so, you could probably find someone with a decent DIY router that could mill out the parts for you.

In general, don't lose sight of the goal: you want to build a 6DOF arm. The gearbox is a necessary part, but don't let it bog you down. I'm experiencing the same problem on several fronts and have to force myself to move forward.

  Are you sure? yes | no