- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 3 von 3

Thema: Positionsberechnung eines Objektes im Raum

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.11.2004
    Beiträge
    332

    Positionsberechnung eines Objektes im Raum

    Hallo Zusammen,

    ich verzweifle derzeit an meiner Objekterkennung innerhalb meiner Weltkarte. Bei der Berechnung eines gefundenen Objektes von einem Sensor, wird dieser in eine Karte eingetragen und zur Navigation verwendet.

    Die
    Ich habe eine Klasse, welche mir die X,Y Position eines Objektes im Raum zurückgeben soll.

    hier die Sensor Data Class
    Code:
    void    SensorData::BerechnePose(void)
    {
    double        fltAngleOftheSensor;                                                                                        // Angle of the sensor in the world car
    double        fltAngle;                                                                                                                // an
    
        if( intSensor == 0 )
            {
            if( intAngle < 90.0 )                                                                                                    // Angle between 0 ... 90 Grad
                {                                                                                                                                        // Convert angle to Quadrant I
                fltAngleOftheSensor =90.0 - intAngle;                                                            // is it the front sensor
                }
            else
                {                                                                                                                                        // Convert angle to Quadrant 4
                fltAngleOftheSensor =450.0 - intAngle;                                                        // is it the front sensor 
                }                                                                                                                                        // Angle is between 90.0 - 180.0
            }
        else
            {                                                                                                                                            // Angle is from 0.. 180 Grad
            fltAngleOftheSensor = 270.0 - intAngle;                                                            // it is the rear sensor
            }
    
         // world_T_rob is the pose of the roboter in the world card
         //                   Rotation                           Position 
        pose        world_T_roboter( std::polar( 1.0, fltActualAngleRoboter * GRAD2RAD), std::complex< double >( ActRoboterPos.High_x(), ActRoboterPos.High_y()));
    
       // rob_T_sensor is the Pose of the Sensor in relativ to the roboter system
       //  Bem.: Winkel also Ausrichtung des Sensors bezogen auf den Roboter == 0.0 
        pose        roboter_T_sensor( std::polar( 1.0,fltAngleOftheSensor * GRAD2RAD), std::complex< double >( fltSensorDistanceX[intSensor],0.0 ) );
    
        pose        world_T_sensor = world_T_roboter * roboter_T_sensor;                                                                                     // Pose of the sensor in the world card
    
        std::complex< double > world_p_obj = world_T_sensor * std::complex< double >( fltDistance, 0.0  );
    
        ActObjectPos.SetXHighPos ((int) world_p_obj.real());                                                                                                        //  Position of the object in the world card
        ActObjectPos.SetYHighPos((int) world_p_obj.imag());
    }
    Die Sensoren (zwei US / IR Sensoren) auf einem Servo montiert (siehe Zeichnung), können auf eine Winkel gesetzt werden und der Roboter misst dann den Abstand des Objekts.

    Nur Erscheinen mir die Werte der Position nicht korrekt. Wenn ich die Position eines Objekt nach vorne berechne, stimmt die Position. Nach hinten der gleiche Abstand stimmt wieder nicht.

    Diese Daten werden dann in eine Karte eingetragen und zur Navigation verwendet. Da ich diese Werte auf dem PC sichtbar mache, kann ich den Blödsinn sehen, den er macht. Nur finde ich den Grund nicht.

    Kann hier jemand einen helfenden Blick drüber werfen. Anbei der komplette Quellcode eines kleinen Testprogram unter kDevelop (gcc).

    Gruss R.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Positionsgrafik3.jpg  
    Angehängte Dateien Angehängte Dateien
    Kaum macht man es richtig, schon funktioniert's ...

Ähnliche Themen

  1. Positionsbestimmung im Raum
    Von Thegon im Forum Sensoren / Sensorik
    Antworten: 19
    Letzter Beitrag: 20.05.2019, 22:07
  2. Bewegung eines Objektes per Elektromotor
    Von orichalkos im Forum Elektronik
    Antworten: 14
    Letzter Beitrag: 03.05.2008, 09:02
  3. Antworten: 9
    Letzter Beitrag: 19.03.2008, 22:17
  4. Raum- und Hindernisserkenung
    Von Devil im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 17.01.2006, 16:12
  5. Positionsberechnung mittels Odometrie
    Von pauli im Forum Robby CCRP5
    Antworten: 12
    Letzter Beitrag: 18.12.2004, 00:51

Stichworte

Berechtigungen

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

12V Akku bauen