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
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
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
Are you sure? yes | no
- 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