Jump to content


Photo
- - - - -

how to sense angle of movement


  • Please log in to reply
11 replies to this topic

#1 fwd03

fwd03

    Dedicated Cocooner

  • Registered
  • PipPipPip
  • 248 posts

Posted 05 November 2011 - 10:03 AM

Sorry this may not the proper place to post this question. Please forgive me.

I am trying to coach a science team in a high school. During their robot building, I would like to teach them a way to remember the robot position. That will require remember all the angles of each joint.

But I don't know what sensor to use to measure the joint position - cheap and reliable. Any suggestion is welcome.

#2 mrhappy

mrhappy

    Cocooner

  • Registered
  • PipPip
  • 19 posts

Posted 05 November 2011 - 11:00 AM

optical/rotary/shaft encoder (call them what you want)? Might get expensive for multiple joints - perhaps on the joints with limited movement you might be able to get away with a variable resistor?

#3 standon

standon

    Dedicated Cocooner

  • Registered
  • PipPipPip
  • 148 posts
  • Software:CQC
  • Hardware:Elk M1
  • Tech:UPB
  • Audio:Russound
  • Video:Custom
  • CCTV:ip

Posted 05 November 2011 - 12:22 PM

I've never used one, but I know Arduino has a lot of motion type sensors that are reasonably priced. Lots of options. You can read about them here for a gyroscope or here for an accelerometer. Not sure which one you would need...

#4 fwd03

fwd03

    Dedicated Cocooner

  • Registered
  • PipPipPip
  • 248 posts

Posted 05 November 2011 - 05:49 PM

I like Mrhappy's suggestion using variable resistor. However, I don't know how reliable can they be, and if there any kind that can be easily installed on the joints. Students don't have a lot of money, either...really appreciate your inputs..

#5 Neurorad

Neurorad

    Cocoonut

  • Registered
  • PipPipPipPip
  • 2189 posts
  • Experience:novice
  • Tech:RadioRA2
  • Audio:Nuvo

Posted 06 November 2011 - 12:16 AM

If they are step motors for joint motion, wouldn't you know the position?

#6 JimS

JimS

    Dedicated Cocooner

  • Registered
  • PipPipPip
  • 389 posts
  • Experience:average
  • Software:Mister House
  • Hardware:Custom
  • Audio:Custom
  • Video:MythTV

Posted 07 November 2011 - 10:22 AM

Encoders are the usual way this is done. But most encoders are "incremental" not "absolute" meaning that you know how far you have moved but not where you started. Usually some sort of switch is used for determining the starting point. For example, on a printer the left/right position of the carriage is measured with an incremental encoder. When starting up the carriage is moved to the left until a sensor trips for being at the left most point. With that position known all positions relative to that position are also known. The sensor is usually a photo interrupter - LED on one side and phototransistor on the other with a vane on the carriage to interrupt the light path.

Step motors can be handled in much the same way but there is a possibility that the system will not always move all the step supplied to the motor (if the unit hits some obstruction for example).

If RC servos are used for the joints the feedback pot is already built into the servo. That is probably your best bet for your project and should give reasonable (but not great) resolution.

#7 Lou Apo

Lou Apo

    Cocoonut

  • Registered
  • PipPipPipPip
  • 2614 posts
  • Location:Austin TX
  • Experience:average
  • Hardware:ISY-99
  • Tech:INSTEON
  • Audio:Custom
  • Video:Windows Media Center
  • CCTV:analog, dvr

Posted 07 November 2011 - 12:41 PM

How about a visit to a junkyard and find the "used to be a nice car" section. Pull a power seat with memory and remove whatever device the seat uses to monitor the positions. Also the power mirrors must have a positional sensor on the cars with memory. I would take a guess that they use variable resistors.

Even if it can't be adapted, it would be a learning experience to tear down the seat.

Edited by Lou Apo, 07 November 2011 - 12:42 PM.


#8 fwd03

fwd03

    Dedicated Cocooner

  • Registered
  • PipPipPip
  • 248 posts

Posted 08 November 2011 - 01:32 AM

I saw one place selling parts for robot arm that using encoder and Arduino. The encoder is not in fine resolution, but toy parts. I did not find any that can easily attach a variable resistor or potentiometer. I thought with robot arm, it would be easy to use variable resistor and measure voltage in its center pin. If the voltage is higher than setpoint, lower the joint, if the voltage is lower than setpoint, raise the joint. That may have better accuracy than those toy encoder.

Lou's idea to reference car seat is not bad. Just there is no junkyard nearby. I would guess car seat using encoder to remember the position. It might be easier to get a service manual to check.

I have to talk to kids about the possibility. Although some of them took Java programming classes, programming Arduino in C is probably little too hard. They don't have a lot of budget, either.

#9 Lou Apo

Lou Apo

    Cocoonut

  • Registered
  • PipPipPipPip
  • 2614 posts
  • Location:Austin TX
  • Experience:average
  • Hardware:ISY-99
  • Tech:INSTEON
  • Audio:Custom
  • Video:Windows Media Center
  • CCTV:analog, dvr

Posted 08 November 2011 - 07:57 AM

You might try browsing digikey.com. Of course, digikey.com has several thousand items under potentiometer. But if you can narrow down your search criteria a bit, I am sure you can find something on there for pennies each. Digikey also will ship cheap. You can have it shipped first class mail for a couple bucks.

#10 maltesemanTS1

maltesemanTS1

    Newbie

  • Registered
  • Pip
  • 9 posts
  • Location:Las Vegas, NV
  • Experience:novice

Posted 09 April 2013 - 03:09 PM

optical/rotary/shaft encoder (call them what you want)? Might get expensive for multiple joints - perhaps on the joints with limited movement you might be able to get away with a variable resistor?

 



#11 Frunple

Frunple

    Dedicated Cocooner

  • Registered
  • PipPipPip
  • 481 posts

Posted 09 April 2013 - 04:02 PM

http://www.mytaglist.com/



#12 JimS

JimS

    Dedicated Cocooner

  • Registered
  • PipPipPip
  • 389 posts
  • Experience:average
  • Software:Mister House
  • Hardware:Custom
  • Audio:Custom
  • Video:MythTV

Posted 10 April 2013 - 07:38 PM

Stepper motors do not require encoders in order to know their absolute position (but not sure if practical solution for you).

 

Not true.  They have the same problem as 2 channel encoders and are incremental.  As one example steppers are used in printers and drive to one end or the other where a sensor is used to determine when it has reached that position.  Then all moves are relative to that. They have the additional problem that they can miss steps if driven too fast or they meet resistance (encoders don't have the missed steps issue).

 

The easiest/cheapest way is probably to use RC servos.  They use a built in pot to determine position.  But that might not meet all your other requirements...


Edited by JimS, 10 April 2013 - 09:01 PM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users