Shop OBEX P1 Docs P2 Docs Learn Events
Propeller Controlled Robot Arm — Parallax Forums

Propeller Controlled Robot Arm

JasonDorieJasonDorie Posts: 1,930
edited 2013-03-27 19:51 in Robotics
I'm building a robot arm based on the ST Robotics R12. I'm controlling it with a Propeller.

It looks like this:

More as it happens. :)

Comments

  • Martin_HMartin_H Posts: 4,051
    edited 2013-03-24 08:10
    I love the sound of the steppers. You're making great progress too.

    Some obvious questions. Are you using stepper drivers like the Allegro or is the Propeller controlling them via an H-bridges? What language are you using, Spin, PASM, C, or even Forth?
  • ercoerco Posts: 20,255
    edited 2013-03-24 08:14
    Fantastic! Looks nice & strong. Crazy how all that weight creeps up on you, huh? :)
  • Duane DegnDuane Degn Posts: 10,588
    edited 2013-03-24 08:40
    Very cool. I love the sound it makes.

    Edit: It turns out I agree with Martin. I hadn't read his reply before posting mine.
  • tonyp12tonyp12 Posts: 1,950
    edited 2013-03-24 09:11
  • JasonDorieJasonDorie Posts: 1,930
    edited 2013-03-24 10:24
    All the code is currently in Spin. I'm using Float32 for some initial setup, but once the motors are moving, all the math is fixed point integer. The motors are controlled with these: http://www.pololu.com/catalog/product/2132

    I'm running them in 1/8 microstepping, and there's a 4.5:1 gear reduction (minimum) on the joints. Spin is already becoming limiting - I can't run all three motors as fast as I can run a single one - the code won't keep up with the step rate. Rewriting it in PASM shouldn't be all that hard, and will make it more than fast enough (at least for the simple moves I'm doing now).
  • lardomlardom Posts: 1,659
    edited 2013-03-24 10:26
    Your motors are counterbalanced. Brilliant.
  • JasonDorieJasonDorie Posts: 1,930
    edited 2013-03-27 00:18
    I ported the code over to C++ using the new (beta) GCC compiler, and was able to get about a 10x improvement in the speed of the code. I'm now able to handle step rates faster than the arm can really deal with, which is perfect, and the float math is *much* easier to use.

    This is using LMM code. The first few moves are identical to what it was doing before. The next couple show how fast it can go now. It can drive the motors quite a bit faster than this, but my belts or motors start to skip.
  • ercoerco Posts: 20,255
    edited 2013-03-27 13:51
    Jason: You are a real renaissance man. A builder's builder and coder's coder. That arm is beautiful, as are all of your projects. Looking forward to seeing more on this one.
  • JasonDorieJasonDorie Posts: 1,930
    edited 2013-03-27 16:02
    Awww.. Thanks, Erco! If you're going to be at the OPC, I'm hoping to be there this year, and if so, will have it with me.
  • Martin_HMartin_H Posts: 4,051
    edited 2013-03-27 16:14
    I think the switch to C++ was a wise decision. It's faster than Spin, doesn't have the type safety problems, and the code can be ported to another MCU if you desire. Also if you get into inverse kinematics they're a slam dunk in C++.
  • JasonDorieJasonDorie Posts: 1,930
    edited 2013-03-27 16:49
    IK is where I'm hoping to go pretty soon. I have to refactor the motor control code a bit, because right now it's assuming a simple trapezoidal ramp at all times. I need to change that to be able to tell it Pos / Vel at start, and Pos / Vel at end, so I can string moves together. Once I have that, I'll tackle the IK stuff. I don't actually expect that to be all that hard - It's mostly simple trig, which I know pretty well.

    I'd like to plug in a controller of some kind, like a mouse, or joystick, and be able to control the thing in either cartesian or polar coordinates, with the ability to switch between at any time.
  • ratronicratronic Posts: 1,451
    edited 2013-03-27 17:40
    I get a DUI when driving arms with a mouse! Here is one with a demoboard controlling some ax12 's on a simple arm I had built out of the Bioliod kit.
  • ercoerco Posts: 20,255
    edited 2013-03-27 19:34
    @D Rat: Looks very good to me, other than some overcontrol. Can you change your code to desensitize? Less arm joint movement for any given mouse input.
  • ratronicratronic Posts: 1,451
    edited 2013-03-27 19:51
    @erco I'm pretty sure that is the same advice you gave me when I first posted that video. It could be made to move a lot smoother but I had just made the mouse work the arm and posted before I cleaned anything up as usual. I also have a "drunk driving video" of crashing the bigger Smart arm. Same thing I was so excited to get something working, I posted first working result video's.
    http://www.youtube.com/watch?v=3VFvn5B9AZc&list=UUtHTG82Nn83T5JSdWdTgkAg&index=12
Sign In or Register to comment.