-         

Ergebnis 1 bis 9 von 9

Thema: Umgebungsabbildung mit UltrschallSensoren

  1. #1

    Umgebungsabbildung mit UltrschallSensoren

    Anzeige

    Hallo,

    ich habe vor mit Ultraschall Sensoren ein Bild der Umgebung zu erhalten.
    So zusagen eine Kamera zu bauen, die Ultraschall nutzt um ein Bild zu erhalten.
    Sie muss das Bild nur an den Computer oder an einen Fernseher liefern.

    Wäre echt super wenn ihr mir bei der Realisierung helfen könntet.

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.03.2010
    Ort
    Hamburg
    Beiträge
    333
    wie wilste den ein Bild daraus bekommen?

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    53
    Beiträge
    1.080
    Da die meisten Ultraschall-Sensoren einen recht großen Erfassungswinkel haben, dürfte es ein sehr unschaftes Bild werden.

    Wo konkret hast du denn Fragen? Wie ist dein Wissensstand?

    Ansonsten: US-Sender und Empfänger auf 2 Servos, Atmega steuert die Servos und wertet US-Laufzeiten aus und gibt die Daten auf einer RS232 an den PC weiter ... so mal ganz grob

    Gruß MeckPommER
    Mein Hexapod im Detail auf www.vreal.de

  4. #4
    Benutzer Stammmitglied Avatar von Chaosmann
    Registriert seit
    02.07.2009
    Ort
    Saulheim
    Alter
    36
    Beiträge
    74
    Hi Freak10,

    mit etwas Mathe geht das schon bis zu einem gewissen Grad an Genauigkeit UND Wahrscheinlichkeit.
    Wie MeckPommER es schon gesagt hat: US-Sensoren erfassen nicht einen einzelnen Punkt, sonder dern Abstand zu einem Objekt, dass sich irgendwo auf einem Kreissegment von x Grad befindet.

    Hier mal der Code, wie ich es auf meinem RoBoard unter Linux mit einem SRF10 gelöst habe:

    [php:1:bb6f7b2aae]
    --- geschrieben in C++ ---

    void *ThreadSRF( void *ptr ) {
    /* VAR-DEF */
    int x, y;
    float temp_distance, temp_angle, temp;
    int PWM_period = 20000; // period in us
    int angle_min = 40; // max right
    int angle_max = 140; // max leftt
    int angle=angle_min; // new position
    int angle_new;
    int diff = 5; // angle between measurements
    int count = 10; // period count
    bool direction=true;
    char data[152][51] = {0};

    /* INIT-Servo */
    rcservo_SendPWMPulses( SRF_SERVO_CHANNEL, PWM_period, angle_min/0.1125+650, 100 );
    usleep(200000);

    /* MAIN */
    while ( true )
    {
    SRF08_Start( SRF08ADDRESS, SRF08MODE );
    usleep( 70000 );
    if ( (direction==true && angle<angle_max) || angle<=angle_min ) {
    angle_new = angle + diff;
    direction = true;
    }
    else {
    angle_new = angle - diff;
    direction = false;
    }
    rcservo_SendPWMPulses( SRF_SERVO_CHANNEL, PWM_period, angle/0.1125+650, count );
    temp = SRF08_ReadEcho( SRF08ADDRESS, 1, SRF08MODE );
    // draw Map
    for ( y=1; y<=50; y++) {
    for ( x=1; x<=151; x++ ) {
    temp_distance = sqrt( (-x*15+1132.5)*(-x*15+1132.5) + (1200-y*24)*(1200-y*24) );
    temp_angle = atan2( (-x*15+1132.5), (1200-y*24) ) *180/M_PI + 90;
    if ( (temp_distance > temp) && (temp_angle > angle-15) && (temp_angle < angle+15) )
    data[x][y] = min( data[x][y]+1, 9 );
    else if ( (temp_angle > angle-15) && (temp_angle < angle+15) )
    data[x][y] = max( data[x][y]-1, 0 );
    if (x>20 && x<130 && y>21 ) {
    GotoXY(x-20,y-;
    switch (data[x][y]) {
    case 1:
    case 2:
    printf("%s %s", COLOR[GREEN], COLOR[BLACK]);
    break;
    case 3:
    case 4:
    case 5:
    printf("%s %s", COLOR[YELLOW], COLOR[BLACK]);
    break;
    case 6:
    case 7:
    case 8:
    case 9:
    printf("%s %s", COLOR[RED], COLOR[BLACK]);
    break;
    default:
    printf("%s ", COLOR[BLACK]);
    }
    }
    }
    }
    fflush( stdout );
    angle = angle_new;
    }
    }

    [/php:1:bb6f7b2aae]

    Das ganze sieht dann später so auf dem Bildschirm aus (anklicken für große Version):



    Gruß
    Daniel
    Das Genie beherrscht das Chaos.
    ICH bin das Chaos!

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.418
    nice ich hab genau sowas heut im sogennaten betriebspraktikumgemacht an der tu chemnitz.
    dort ergaben sich aber schon reichlich problem der us sensor hat eine schallkegel mit 20° grad in beide seiten also insgesammt 40°

    die nächste überlegung wäre ja das umfeld zu rastern um hintehr die objekte wieder zu erkennen und eine karte der umgebung zu erstellen

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    28
    Beiträge
    607
    Man kann den Ultraschall-Sensor (den Schallkegel) einengen, indem man ihm einen Aufsatz bastelt.
    Ich habe soeinen aus Schaumstoff für einen SRF08 gebastelt und damit sehr gute Ergebnisse erzielt.
    Habe grad leider kein Foto zu Hand. Im Grunde genommen ist es ein Quader mit Abmessungen von ca. 5*4*3cm in den ich 2 Löcher geschnitten habe (für die Lautsprecher).
    Man muss ein wenig experimentieren, aber mit dem richtigen Material und den richtigen Abmessungen lässt sich der Kegel um ein vielfaches einengen.

    Gruß, Yaro

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.418
    klingt gut die us kapseln sind ja auch rund ob es auch hilft diese mit klebeband du verlängern ich probier das morgen mal werd mal paar fotos machen wenn ich es darf klingt aber nach hoffnung denn die 40° sind ja schon fast unbrauchbar

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    53
    Beiträge
    1.080
    Ich habe auch mal einen interessanten Aufbau gesehen, bei dem zur Einengung des Abtastbereiches eine Parabolkonstruktion verwendet wurde.

    Einfach Testen kommt am besten
    Mein Hexapod im Detail auf www.vreal.de

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Hier mal die gleiche Idee mit einem Infrarotsensor:
    http://www.team-iwan.de/technik/sharp1.php
    Dieser Sensor hat einen deutlich kleineren Öffnungswinkel, und liefert daher ein recht gutes Bild der Umgebung.

Berechtigungen

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