PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Langsame Drehbewegung messen (einfach)



Involut
26.12.2009, 14:17
Hallo,
ich baue (schon sehr lange) an einem Knickarmroboter der ungefähr die Abmessungen eines menschlichen Armes hat (also Oberam und Unterarm ca 30cm).

Ich bin jetzt soweit dass ich den Oberarm mit einem DC-Gtriebemotor und dem Motortreiber von Robotikhardware.de antreiben kann. Die Position messe ich mit einem Poti auf der Welle des Oberarmes.

Dass Problem ist dass ich habe ist dass ich die Geschwindigkeit der Drehbewegung des Oberarmes nicht genau genug bestimmen kann um eine "vernünftige" Bewegung hinzukriegen.

Nat. gibt es schon zig Lösungen aber ich finde keine die ich realisieren kann, ich zähl mal auf:

1) Potisignal differenzieren: Zu ungenau vor allem bei der langsammen Geschwindigkeit

2)Drehgeber:
Ich habe einige bei ebay gesehen die abgesehn davon dass die iwie teilweise sehr teuer sind meistnes ohen Datenblatte kommen. Die bei denen die Impulse/Umdrehung dabei stehen habe meistens zu wenig.
Natürlich könnte man über ein Getriebe usw due Drehzal erhöhen aber meine mech. Fähigkeiten sind stark eingeschränkt.

3) Strommessen:
Habe ich probiert konnte aber keine Rückschlüsse auf die Drehzahl ziehen.

4) Einen E-Motor mit antreiben und ihn Generator benutzen und dann die Spannung messen. Das wäre immo meine Idee....

Aber es muss etwas einfachreres Geben oder nicht?????

Hubert.G
26.12.2009, 15:38
Eine Möglichkeit wäre ein Schrittmotor anstelle des DC-Motor, da kannst du die Drehbewegung über die Taktfrequenz regeln.
Oder das Poti über den ADC auswerten. Im FreeRunnig Modus kommen die Ergebnisse in konstanter Geschwindigkeit. Über die Ergebnissprünge kann man auf die Geschwindigkeit schließen.

Elexerion
26.12.2009, 15:56
Nimm doch ein Gyro-Sensor mit niedriger Drehrate. Damit geht das ganz einfach. Du liest einfach den Gyro aus (nimm am besten einen mit Analogausgang, damit arbeitet es sich, wie ich finde, am einfachsten) und Du hast Deine Drehrate. Die arbeiten sehr genau und Verzögerungsfrei und sind schon für ca. 20 Euro zu bekommen. Mit einem Tiefpassfilter (softwareseitig) versehen sollte auch die Drift des Gyros einfach ausgeblendet werden können. Du brauchst ja keine genaue Lage des Armes, die hast Du ja schon mit den Potis.

Gruss
Peer

Involut
26.12.2009, 23:29
Hallo zusammen und Danke für die Antworten,

@Hubert
Ich will irgendwann auf Schrittmotoren umsteigen. Das ist aber eine nicht geringe Investition die ich immo nicht aufbringen kann.
Das Differenzieren habe ich schon probiert aber keine brauchbaren ergebnisse erziehlt.

@Peer
Das hört sich ja sehr interessant an. Meinst du die von dir angesprochenen Gyros können auch bei Geschwindigkeiten von 360°/12s
(halbwegs) genau erfassen?
Und nat. die Frage wo würde ich den Gyro herbekommen?

PicNick
27.12.2009, 09:01
Ich würde wie bei einem Servo vorgehen:
Gegeben wird eine ReferenzSpannung, und der Arm folgt dann nach, bis PotiSpannung <> Referenz gegen null geht.
Man sollte einen fertigen Servo-IC verwenden können.

Netzman
27.12.2009, 10:25
http://www.austriamicrosystems.com/eng/Products/Magnetic-Encoders sogar mit 12Bit Auflösung, also mehr als der ADC bringt.
Empfehlenswert ist auch noch www.openservo.org

mfg

Thoralf
27.12.2009, 10:38
wie wärs mit einem Kompaßsensor....
Absolut gesehen sind die in Innenbereichen durch Störfelder, Stahlbewehrungen, Heizkörper ja nicht so genau. Da sich die Störungen aber an einem konstanten Ort auch konstant verhalten, kann man sie bei Relativmessungen vernachlässigen (oft).
Auf diese Weise hätte man einen vlt. ausreichend genauen Winkelgeber und aus Winkeldifferenzen je Zeiteinheit hätte man auch die Drehgeschwindigkeit.
Gyrosensoren sind nicht unbedingt langzeitstabil, was sich in Winkeldriften über längere Zeit äußern kann. Für eine kurzfristige Geschwindigkeitsmessung im Bereich von Sekunden oder Minuten sollten die aber ausreichen.

Sim Robot
27.12.2009, 10:42
Moin,

ich weiß nicht ob ihr schon eine lösung gefunden habt.

von mit noch eine kleine anregung sehr ein fach zu realisieren(zumindest Hadware seitig. software seitig habe ich es noch nicht ausprobiert)

schau mal hier unter "Induktive drehzahlsensoren"

link: http://www.physik.ph-ludwigsburg.de/piko/material/induktion_mag/uebersicht_induktion.html

Die induzierte spannung hängt davon ab ob ein Zahn oder eine Lücke vor dem sensor ist auf grund der Häufigkeit der Signaländerung/Zeit kann man darauf schließen wie schnell die bewegung ist.

hoffe es hilft weiter.

Sim Robot

Involut
27.12.2009, 11:20
Hallo,
ich fasse mal kurz zusammen.

Das Ganze System ist wie ein "riesiger" Servo aufgebaut. Wobei der Motor ein Scheibenwischermotor ist.

Das Problem ist halt die Bewegung schön 'smooth' zu machen. Wenn ich voll Power gebe dann fährt der Arm nicht nur min 30° über die Soll- Position hinaus er könntge mich je nachdem auch KO schlagen....bzw was von dem wertvollen Single-Malt verschütten den er Servieren soll verschütten.
Wenn ich zu wenig Gas gebe dann bewegt er sich nicht.

1) Da der Aufbau ja Servo ähnlich ist die Idee mit Servo IC nat. sehr naheliegend. Die Frage ist nur: Kann man da auch einfluß auf die Geschwindigkeit nehmen?
Falls ja bin ich nat. für jeden Tip Quelle dankbar.

2) Die Sache mit dem Kompass klappt glaube ich nicht da die Drehachse ja horizontal ist!?!
Wie gesagt es geht nur um die Geschw.

3) Die Sache mit Drehgebern ist wie gesagt wegen der Langsamkeit etwas schwierig, ich werde mir die links mal ansehen.


Danke und Gruß

Sim Robot
27.12.2009, 11:49
3) Die Sache mit Drehgebern ist wie gesagt wegen der Langsamkeit etwas schwierig, ich werde mir die links mal ansehen.

ersetze die induktionssensor doch durch ein hall geber.
http://www.kfztech.de/kfztechnik/elo/sensoren/hallsensor.htm

wird häufig im KFZ bereich eingesetzt.
von kosten habe ich keine ahnung vieleicht findest du/sie einen biligen.

Übrigens die hallspannung hat nur etwas damit zu tun ob ein zahn oder eine lücke vor dem Sensor ist. Das Zahnrad muss sich nicht wie bei dem sensor mit induktionsmessung bewegen.

Sim Robot

Richard
27.12.2009, 12:24
Hallo,
ich fasse mal kurz zusammen.

Das Ganze System ist wie ein "riesiger" Servo aufgebaut. Wobei der Motor ein Scheibenwischermotor ist.

Das Problem ist halt die Bewegung schön 'smooth' zu machen. Wenn ich voll Power gebe dann fährt der Arm nicht nur min 30°

Hmm, wie steuerst Du den Motor an? Ich nehme für meine
Wischermotoren PWM und kann die sehr sehr sanft anfahren lassen.

Für den Drehwinkel habe ich mir etwas genaueres einfallen lassen,
ich messe die Umdrehung der Motorwelle da habe ich eine größere
Auflösung.

Ich habe auf dem Kollektor 4 um 90 Grad versetzt 3 x 1 mm Magnete
geklebt und davor einen Hallsensor angebracht. Das sind bei meinem
Motor dann 9760 Pulse/Min.

Gruß Richard

Netzman
27.12.2009, 12:35
Die Sensoren von AMS arbeiten mit 4 Hallsensoren die interpoliert werden.
Also quasi dasselbe in Grün wie Richard erwähnte, nur eben integriert.

Beim Messen an der Motorwelle ergibt sich zwar rechnerisch eine hohe Auflösung, aber dabei wird das Getriebespiel völlig außer Acht gelassen, das Armende kann also durchaus um mehrere mm von der Sollposition abweichen, da hat man im Endeffekt mit einem Poti an der Drehachse eine genauere Positionserfassung als mit einer Messung an der Motorwelle.

Hier habe ich einen Arm auf Basis vom Openservo: https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=46238
Schau dir mal das Video an, ich denke so eine Bewegung willst du realisieren :)

mfg

Elexerion
27.12.2009, 19:19
Was Richard sagt, ist richtig: mit PWM-Motoransteuerung ist es eigentlich kein Problem, die Leistung zu kontrollieren.
Ganz im Gegenteil: Sie ist Voraussetzung für eine vernünftige Motoransteuerung. Einen E-Motor unter Last ohne vernünftiges Getriebe kann man quasi nicht regeln! Besonders nicht als Roboterarm, da sich ja ständig die Lastverhältnisse ändern, je nach Achse und Hebelarm, der sich ja mit der Neigung ununterbrochen ändert.
Das Wissen ergibt folgendes:
Man nehme:
1. einen Getriebemotor (z.B. Scheibenwischermotor, die haben ein richtig fettes Drehmoment, ein Schneckengetriebe, sind damit extrem fein regulierbar und lassen sich (durch das Schneckengetriebe) nicht durch angehänge Lasten (Whisky) aus der Ruhe bringen!)
2. Potis an den Achsen (Servofunktion)
3. eine PWM-Ansteuerung mit Leistungsansteuerung (ich nehme für richtig starke Motoren immer fertige elektronische Lastrelais (z.B. crydom), die man nur noch mit einer Leerlaufdiode ausstatten muß, fertig! Die kann man dann direkt mit dem µC ansteuern mit PWM-Signal, das war es...hoch bis über 20A!)

Sorry für den langen Link:

http://www1.conrad.de/scripts/wgate/zcop_b2c/~flNlc3Npb249UDkwV0dBVEU6Q19BR0FURTA0OjAwMDIuMDEyY S5lZjgzNWNhYyZ+aHR0cF9jb250ZW50X2NoYXJzZXQ9aXNvLTg 4NTktMSZ+U3RhdGU9MjQ2MTI0MDgxNg==?~template=PCAT_A REA_S_BROWSE&mfhelp=&p_selected_area=%24ROOT&p_selected_area_fh=&perform_special_action=&glb_user_js=Y&shop=B2C&vgl_artikel_in_index=&product_show_id=&p_page_to_display=DirektSearch&~cookies=1&zhmmh_lfo=&zhmmh_area_kz=&s_haupt_kategorie=&p_searchstring=elektronisches+Lastrelais&p_searchstring_artnr=&p_searchstring_manufac_artnr=&p_search_category=alle&fh_directcall=&r3_matn=&insert_kz=&gvlon=&area_s_url=&brand=&amount=&new_item_quantity=&area_url=&direkt_aufriss_area=&p_countdown=&p_80=&p_80_category=&p_80_article=&p_next_template_after_login=&mindestbestellwert=&login=&password=&bpemail=&bpid=&url=&show_wk=&use_search=3&p_back_template=&template=&kat_save=&updatestr=&vgl_artikel_in_vgl=&titel=&darsteller=&regisseur=&anbieter=&genre=&fsk=&jahr=&jahr2=&dvd_error=X&dvd_empty_error=X&dvd_year_error=&call_dvd=&kna_news=&p_status_scenario=&documentselector=&aktiv=&gewinnspiel=&p_load_area=$ROOT&p_artikelbilder_mode=&p_sortopt=&page=&p_catalog_max_results=20

Das ist normalerweise der richtige Weg.
Wegen der Rückkopplung über die Potis hast Du dann ja schon einen Servo aufgebaut! Genau so arbeiten professionelle Roboterarme.

Ansonsten: Die Gyros kannst Du z.B. von Sparkfun beziehen. Es gibt Gyros mit kleinen Drehraten von 50°/Sek. (also ° / Sek.).

http://www.sparkfun.com/commerce/product_info.php?products_id=9057

Damit und mind. 10Bit ADC sollte es funktionieren. Damit sind dann wohl auch Deine Drehraten von ca. 30°/Sekunde sehr gut messbar (bei 10 Bit bis herunter auf ca. 0.1°/Sek Genauigkeit sind damit realistisch).

So einen Gyro kann man als Kontrolle und Regelglied sehr schön einsetzen, damit auf jeden Fall nichts daneben geht vom schönen Wisky...

Ich habe mir selbst mal einen Antrieb mit dieser Konfiguration gebastelt (allerdings ohne Gyro, den brauchte ich nicht, da der verwendetet Motor eine sehr hohe Übersetzung hatte). Er war extrem stark und sehr fein regulierbar mit PWM.

Gruss
Peer

Thoralf
27.12.2009, 19:20
aus deinem Ausgangsposting hab ich geschlossen, daß sich Oberarm und Unterarm in einer horizontalen Ebene bewegen -> deshalb Kompaß.
Bewegst du Ober- und Unterarm dagegen in einer senkrechten Ebene bietensich Inklinometer oder MEMS-Sensoren an. Mußt mal googeln. I n der Firma hab ich die eingeführt um Kippungen zu messen und wir können damit auf jeden Fall im Zehntelgrad bereich messe. Damit wäre auch langsame Geschwindigkeiten messbar.

Meiner Meinung wäre aber die Poti-Lösung die beste, da einfach und genau genug. Zur Not beschaft man sich Messpotis im Budgetbereich (oder ersteigert sich welche)

Involut
29.12.2009, 12:40
Hallo Zusammen,

@Thoralf
Ich habe das mirt dem Aufbau nich so genau ausgedrückt. Der Aufbau ist der
'klassiche' Knickarm Aufbau.
Weisst du wo man als Privatmann Inklinometer kaufen kann?
Ich habe ja bereits ein Poti(Aus dem HiFi) auf der Achse und die Pos.zu messen. Da ich keinen soliden E-Tech Hintergrund habe schlag mich bitte nicht wenn ich frage ob es da noch bessere Ausführungen gibt.

@Peer
Punkt 1-2 habe ich so aufgebaut (ich habe nur 1 Poti).
Zur Regelung habe ich die 15A Steuerung aus dem Robotikhardware shop.

Offtopic on:
Warum auch immer aber Links zum großen C funzen nicht...man kann sich nicht mal Lesezeichen setzen...*grummel*
Offtopic off:

So ein Gyro ist natürlich ein nettes Teil. Dafür würdest Du den von dem Link empfehlen?....ich hatte weiter oben was von 20€ gelesen....;)
Ne im Ernst auch 50-60 sind okay wenn ich mal an früher denke.

Die Drehgeschwindigkeit sollte ja auch die Führungsgröße für den Regelkreis sein.

Danke und Gruß

Richard
29.12.2009, 14:09
Ich habe ja bereits ein Poti(Aus dem HiFi) auf der Achse


Das ist schlecht! Audio Potis sind (meistens) logerithmisch weil
unser Hörsystem ähnlich arbeitet, Du brauchst aber auf alle Fälle
Lineare Potis. Das solltest Du überprüfen!

Gruß Richard

Elexerion
29.12.2009, 18:44
Richard: Richtig, linear muß es schon sein, sonst fängt der Arm natürlich an, sehr seltsam zu reagieren und wird wohl unkontrollierbar.

Involut: natürlich so günstig wie möglich. Wenn Du eine günstige Quelle hast, dann nimm die! 50-60 $ sind auch nur ca. 45 € (natürlich +Versand usw.). Wenn Du einen für 20€ hast, nur zu!

Na wenn das die Führungsgröße im Regelkreis sein soll, ist der Gyro bestimmt gut zu gebrauchen.
Allerdings wenn die Bewegungen eher langsam sein sollen, würde ich nur mit einem Poti arbeiten, halt wie beim Servo, das müsste eigentlich reichen....dann kannst Du auf einen Gyro dann verzichten!

Gruss
Peer

Thoralf
30.12.2009, 12:40
@Involut
guck mal dort nach ein- oder mehrachsigen Sensoren:
http://shop.hy-line.de
Preise ab ca 14,- netto

keine Angst, ich schlage niemanden. Das erledigen ggf. meine Robbis ;-)

Elexerion
31.12.2009, 09:06
Thoralf: Sind die Sensoren mit Breakout-board? Wenn nicht, mußt Du erst mal SMD-Chips löten und Platinen basteln und Condensatoren/Wiederstände kaufen usw...viel Spaß...soweit ich Hyline kenne, werden die Sensoren + Evalboards für 50-60 Euro angeboten...

Gruss
Peer

Thoralf
31.12.2009, 10:46
@elexerion
hast Recht, aber 6 Pins auf 5 mm beim SCA820 hab ich eigentlich für lötbar gehalten. Die Pinbreiten von 0,5 mm liegen auch im Bereich des machbaren.
Ok, ich geb zu, ich habs noch nie gemacht aber irgendwann probier ichs mal aus für einen Cyberglove bzw.einen Lagesensor für meine Robbis.

Elexerion
02.01.2010, 16:15
...und es gibt da jetzt auch hochpräzise Sensoren mit 12 Bit ADC...

Gruss
Peer