-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Deltawalker: 3D-Modell

  1. #1
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8

    Deltawalker: 3D-Modell

    Anzeige

    Hallo

    Ohne CAD muss ich meine Ideen immer noch real umsetzen und testen:



    Echtes 3D sieht bei mir dann so aus:


    http://www.youtube.com/watch?v=sBgtgO6mCnY

    Das sollte eigentlich nur eine schlanke Servoansteuerung werden, hat sich dann aber irgendwie verselbstständigt. Ich zeig's euch mal, weil's mir selbst echt gut gefällt

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Hallo radbruch,

    Interessant. Was mir als erstes dabei einfiel war: 3D Modell in 1D Bewegung weil ich im Video keine Fortbewegung erkennen konnte.

    Setzt Du auf die Biegsamkeit der blauen Stützen oder sind da doch noch irgendwo Gelenke drin?

    Gibt es weitere Pläne damit?

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    "Fortbewegung" ist noch nicht möglich, da bin ich in der ersten Euphorie mit dem Threadtitel etwas über die Realität hinausgeschossen:)

    Die Frage die hinter diesem Funktionsmodell steckt: Könnte ein Roboter mit nur zwei solchen "Beinen" laufen? Um das zu Überprüfen musste ich erstmal einen Weg finden, die Beine leicht, stabil und vor allem kostengünstig herzustellen. Und das scheint mir mit den blauen Stützen, die im echten Leben Wattestäbchen sind, gelungen zu sein. Immerhin kann das Teil frei stehen und Kniebeugen machen, mehr schafft die Software leider noch nicht.

    Zur Ansteuerung verwende ich die Caterpillar-Platine von arexx. Diese besitzt einen 16MHz-Mega16 und ist für den Betrieb von 8 Servos ausgelegt. Allerdings gefällt mir deren Software nicht so gut, weil sie die Servoimpulse für das Restprogramm blockierend erzeugt. Deshalb verwende ich meine eigene Routinen, die nach vielen Versuchen nun sehr kompakt sind:

    Code:
    // Servoansteuerung mit 16Bit-Timer1 (mit arexx cat16)             mic 18.1.2011
    
    // Die 8 Servos werden an Port C und D angeschlossen:
    // Servo0 - PC0
    // Servo1 - PC1
    // Servo2 - PD2
    // Servo3 - PD3
    // Servo4 - PD4
    // Servo5 - PD5
    // Servo6 - PD6
    // Servo7 - PD7
    
    #define mitte 2500 // das sollte 1,25 Millisekunden entsprechen
    
    #define pos1 500
    #define pos2 1000
    
    #include <avr/io.h>
    #include <avr/interrupt.h>
    
    volatile uint8_t count_20ms;
    volatile uint16_t servo[9] ={0, 0, 0, 0, 0, 0, 0, 0, 40000}; // Servopositionen
    
    ISR(TIMER1_COMPA_vect)
    {
    	static uint8_t nr=0;                      // Nummer des aktuellen Servos
    
    	PORTB &= ~0b00000011;                     // alle Servoimpulse low
    	PORTC &= ~0b11111100;
    
    	if(nr>7)                                  // Impuls für Servo oder Pause?
    	{
    		OCR1A = servo[8];                      // servo[8] ist die Impulspause
    		servo[8] = 40000;                      // Startwert 20ms laden
    		nr = 0;             							// beim nächsten ISR-Aufruf Impuls
    															// für Servo 0 erzeugen
    		if(count_20ms) count_20ms--;           // blockierende Pause aktiv?
    	}
    	else
    	{
    		if(nr<2) PORTB |= (1<<nr);             // Impulsleitung des aktuellen Servos
    			else PORTC |= (1<<nr);              // auf High setzen und
    		OCR1A = servo[nr];                     // Impulslänge in OCR1A laden
    		servo[8] -= servo[nr];                 // Impulslänge von der Pause abziehen
    		nr++;                                  // nächstes Servo
    	}
    	TCNT1=0x00;                               // Zählregister reseten
    }
    
    void Sleep(uint8_t pause)                    // 1/50 Sekunde blockierende Pause
    {
       count_20ms=pause+1;
       while(count_20ms);
    }
    
    int main(void)
    {
    	cli();
    
    	// für 16MHz-ATMega16
    	TCCR1A = (0<<WGM11)|(0<<WGM10);       		// CTC Mode
    	TCCR1B = (0<<WGM13)|(1<<WGM12);
    
    	TCCR1B |= (0<<CS12)|(1<<CS11)|(0<<CS10);	// prescaler /8
    
    	TIMSK = (1<<OCIE1A);                      // MatchCompare-Interrupt erlauben
    
    	DDRB = 0b00000011;                        // Servoausgänge setzen
    	DDRC = 0b11111100;
    	sei();
    
    	while(1)                                  // Demo
    	{
    	servo[0]=servo[1]=servo[2]=mitte;
    	servo[3]=servo[4]=servo[5]=mitte;
      	Sleep(40);
    	servo[0]=servo[1]=servo[2]=mitte-pos1;
    	servo[3]=servo[4]=servo[5]=mitte+pos1;
      	Sleep(30);
    	servo[0]=servo[1]=servo[2]=mitte;
    	servo[3]=servo[4]=servo[5]=mitte;
       Sleep(20);
    	servo[0]=servo[1]=servo[2]=mitte+pos2;
    	servo[3]=servo[4]=servo[5]=mitte-pos2;
      	Sleep(20);
    	servo[0]=servo[1]=servo[2]=mitte;
    	servo[3]=servo[4]=servo[5]=mitte;
    	}
    	return(0);
    }
    Der Timer läuft im CTC-Mode mit 2MHz, 1ms dauert dann 2000 Zähltakte, 20ms entsprechend 40000 Zähltakte des Timers. Die Servoimpulse werden nacheinander erzeugt, am Ende jedes Zykluses wird die Restpause angehängt. So sind theoretisch bis zu 10 Servos möglich, denn 10 mal 2ms ergibt die Wiederholfrequenz von 50Hz. Ich gehe davon aus, dass sich unter Verwendung des B-Kanals des Timers zusätzlich nochmals 10 Servos ansteuern lassen.

    Gruß

    mic

    [Edit]
    Das Laden der 16Bit-Servopositionen funktioniert nur deshalb reibungslos, weil nach Sleep() immer mindestens eine Servoimpulslänge lang kein neuer Interrupt ausgelöst wird und somit das Laden der 16Bit-Variablen an dieser Stelle quasi atomar ist.

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Zitat Zitat von radbruch
    ...den blauen Stützen, die im echten Leben Wattestäbchen sind...
    Solche Konstruktionen gefallen mir besonders. Wattestäbchen hatte ich schon in Verdacht und es sieht so aus, als ob da Nylonfäden durchgezogen sind.

    Ich möchte aber doch nochmal nachfragen, ob sich die Stäbchen bei den Kniebeugen biegen oder sich am unteren Ende in Nylongelenken bewegen.

    Wenn die fest sind, könnte die Federwirkung den Servo eventuell beim "Aufrichten" unterstützen?

    (Kann das nicht eindeutig erkennen; manche Videos von youtube kommen bei mir nur ruckelnd oder unklar an)

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  5. #5
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Der Nylonfaden ist 0,7er Dekoschnur und dient neben dem Zusammenhalt als Ersatz für die bei Deltas sonst üblichen Kugelgelenke. Die Streben selbst sollten weder knicken noch federn. Allerdings kann man die Rechtecke so zu beliebigen Parallelogrammen formen, ebenso können sich die kurzen waagrechten Röhrchen nahezu frei auf dem Faden drehen. Der Aufbau ist die Weiterentwicklung meiner ersten Deltaversuche mit den Scharnieren als Ersatz für die teuren Kugelgelenke:
    http://www.roboternetz.de/phpBB2/vie...=423641#423641

    Das Video ist in erster Linie deshalb so peinlich, weil ich das Projekt nur wegen der Servoansteuerung kurzfristig eingeschoben habe. Beim Testen gestern abend fand ich das dann eben so hübsch, dass ich es euch mal zeigen wollte. Zudem scheint mir diese Stäbchentechnik noch einiges an Potential zu haben. Und die Kosten sind dabei so gering, dass sogar ich es mir leiste, neue Stäbchen zu verschwenden anstatt Gebrauchte zu recyclen. Das macht auch das fummelige Abpiddeln der Watte etwas erträglicher ;)

    Die eigentliche Frage ist aber immer noch ungeklärt: Kann ich das Gewicht der Maschine so verlagern, dass es gelingt, das Schwungbein um das Standbein herum zu führen?

    Gruß

    mic

    [Edit]
    Oh, hierher kommt die Idee eigentlich:

    Zitat Zitat von MeckPommER
    Das Video gefällt echt! So eine Konstruktion hatte ich zwischenzeitlich mal als Bein für einen Hexapod in Betracht gezogen, aber man kommt ja zu nix
    Sein Kommentar zum oben verlinken Beitrag :)

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Hallo radbruch,
    gefällt mir immer besser vor allem wegen der billigen und einfach zu bearbeitenden Materialien, die einen Umbau bei der nicht so leichten Aufgabe unkompliziert machen.

    Die eigentliche Frage ist aber immer noch ungeklärt: Kann ich das Gewicht der Maschine so verlagern, dass es gelingt, das Schwungbein um das Standbein herum zu führen?
    [brainstorm ein]Ein Gewicht, daß sich zb. durch Schwerkraft verlagert. Standseite tief - Schwungseite hoch - Gewicht rutscht zur Standseite - Vorsichtig Schwungbein anheben ... Gewicht könnte Kugel in einem Rohr sein[brainstorm aus]

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    19.01.2011
    Ort
    Franken
    Beiträge
    83
    Mal bei der Natur abschau...

    beim Mensch:
    schwerpunkt ca. Bauchnabel also ca. 10% ueber huefte. Beim laufen neigen des Beckens auf Standbein. Beim bloeden laufen (also starren laufen) neigt also der Oberkoerper Richtung Standbein.

    Ich behaupte somit das es ohne Schwingkoerper bzw. Ausgleichskoerper welcher das Gewicht kurzzeitg komplett auf das Standbeinverlagert nicht funktionieren wird.

  8. #8
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Das war mir schon klar, dass dir das gefällt. ;)

    Die Idee mit dem verschiebbaren Gewicht ist super, allerdings werde ich versuchen, die Akkus mit Servokraft zu verschieben. Eine durch Schwerkraft beschleunigte Kugel müsste ich am Ende des Rohres auch irgendwie wieder anhalten ohne das der Bot seitlich umkippt.

    Das passt auch gut zu dem fehlenden Hüftgelenk. Da die Akkus nicht in den Bereich der Beinservos geraten dürfen, wird der Anbau, und damit auch der Schwerpunkt, dann wohl naturnah in gedachter Nabelhöhe sein. :)

    Nun muss ich wieder mal alles andere liegen lassen und mich voll den neuen Beinchen widmen.

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  9. #9
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Ein zweiter Anlauf, hoffentlich schaffe ich diesmal auch den Sprung:


    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  10. #10
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    64
    Beiträge
    12.366
    Wenn ich noch daran denke wie genial der Kippler war, nicht ganz präzise im schnellen Gang aber ein sehr robustes Prinzip, - Fuß wechseln und Standfuß drehen.

    Wie ginge das hier? Beide Füße am Boden einer mit etwas mehr Last gleitet weinger, schlurfender Gang, - oder ein Ausbalancieren auf jeweils einem Fuß und den anderen nach vorne bringen. Ich denke dazu müssen die Füße etwas breiter werden - Deckel von breitem Gurkenglas?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •