-         
Ergebnis 1 bis 8 von 8

Thema: Robotersteuerung mit Sprachanweisungen

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.07.2006
    Ort
    Puchheim
    Alter
    72
    Beiträge
    455

    Robotersteuerung mit Sprachanweisungen

    Anzeige

    Habe mich in letzter Zeit mit Voice Recognition beschäftigt und überlegt, ob man damit einen kleinen Roboter steuern kann.
    Er sollte nur wenige Befehle abarbeiten wie vor, zurück, links, rechts und auch ein paar Zahlen für Distanzen und Winkel.
    Alexa wollte ich dabei meiden/schonen.
    Vor Jahrzehnten hat es auf dem Sinclair ZX81 ? sowas gegeben, in Z80 Assembler, da der Programmspeicher sehr klein (1KB ?) war.
    Auch war die Hardware lausig (Lautsprecher als Mikrophon, Programm-Sicherung auf Sinclair-Floppy).
    Das Ergebnis war auch eher bescheiden ...

    Müsste heute eigentlich besser gehen, auch wenn man nicht auf Alexa hört oder umgekehrt.

    Hatte noch ein Voice-Recognition Module V3 von Elechouse rumliegen, vor ein paar Jahren besorgt.
    Es gibt auch noch Software für Arduino (UNO/Nano) incl. lib. im Netz.

    Ich konnte das Module leider nicht vom ESp32 oder STM32-MapleMini direkt ansteuern, dadurch ist der Aufbau etwas komplizierter geworden:

    - Verbindung Voice-Module mit Arduino Nano über SoftSerial (RX,TX)
    - Verbindung Nano mit ESP32-Sendmodule mit Serial2
    - Verbindung ESP32 Sender zum ESP32 Empfänger mit "ESP32-Now" Protokoll oder was immer das ist.
    - Verbindung ESP32 zum Maple-Mini , der den Roboter (u.a 2 Schrittmotoren an A4988 und einen Servo) ansteuert über Serial3

    Die ESP32-NOW schafft wohl Distanzen von mehr als 100 m (im Freifeld).
    Problematisch war die Programmierung des Moduls:

    Man kann wohl maximal 80 Sprachbefehle "eingeben" (ich vermute noch mehr, der Speicher ist wohl auf 255/256 begrenzt), aber leider sind nur sieben gleichzeitig verfügbar.
    Ich benutze zur Zeit drei Böcke mit je 7 Befehlen oder anderen Steuerungswerten:

    Im 1. hab ich Kommandos hinterlegt: Go/Forward, Backword, Left, Right, Start und Stop .
    Im 2. Distanzen , die der Roboter geradeaus fahren soll: 10mm, 20mm,50mm,100mm,200mm,500mm und 1000mm
    Im 3. Winkel, um die sich der Roboter um seine Achse drehen soll: 2°, 6°,15°,30°,45°,60° und 90°

    Die Erkennungsrate ist meist gut, aber bei für ihn wohl ähnlich klingenden Worten wie fünf / fünfzig etc. hat er seine Probleme.

    Ich überlege, ob ich die Zahlen in englisch "eingebe", da klingt zumindest five und fifty anders , wobei er wohlbei fifteen auch ins grübeln kommt, aber das verwende ich ja nur bei Winkeln.

    ...

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    1.876
    Blog-Einträge
    12
    Hallo,

    wenigsten einmal interessant, etwas über die Erfahrung mit solchen Modulen zu lesen.
    Aber es gibt noch andere Module, habe letztens was bei Heise dazu gelesen, weiß nicht, ob Du die kennst.

    https://www.mouser.de/new/sparkfun/s...3-plus-shield/
    https://johannadaher.com/2017/09/22/...m-arduino-uno/

    Ob das Modul dann beim "Verstehen" besser ist??

    Ansonsten ist eine Robotersteuerung mühselig, wenn dann stark ähnliche Kommandos verwechselt werden.
    Eher ärgerlich, denke ich, als brauchbar.


    MfG

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.07.2006
    Ort
    Puchheim
    Alter
    72
    Beiträge
    455
    Hallo,

    die kannte ich noch nicht, sind aber wohl relativ teuer und schwierig zu beschaffen (Mouser etc.).
    Bisher hatte ich nur Erfahrung mit dem Grove Speech Recognizer, der aber nur wenige feste Kommandos hat.
    Ich glaub mein Grove-Board war/ist aber defekt. In der vorletzten Make (heise) wurden auch einige vorgestellt.

    Ich werde wohl noch die Winkel- und Distanz-Angaben auf englisch umsetezen/umsprechen, da hab ich vermutlich eine bessere Trefferquote.
    Ich sollte auch vielleicht ein anders Mikrophon testen.

    MfG

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    1.876
    Blog-Einträge
    12
    Weiß ja nicht, was das für ein Mikrofoneingang ist. Man kann, bei einem nicht genutzten dynamischen Kopfhörer, die Tonerzeuger auszubauen, Kabel dran löten und als Mikro verwenden. Die Breitband-Kalottenmembrane wird von einer Spule angetrieben und das funktioniert auch in die andere Richtung, als Mikro. Auch einen größeren Lautsprecher (für mittlere Frequenzen) kann man anschließen, Du hast das oben schon erwähnt. Falls Du meinst, das Mikro wäre von der Qualität zu schlecht.


    MfG

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.07.2006
    Ort
    Puchheim
    Alter
    72
    Beiträge
    455
    Ich hab keine Ahnung, ich vermute, es ist ein Elektret Mikro, werd mir die Platine mal ansehen(die Electrets gibt es ja mit 2 bzw. 3 Anschlüssen). Und auch mal die Spannung an den Mikrophon-Pins messen. Beim "Training" ist er mir meist ein ´wenig zu schnell, meist reichen zwei Besprechungen. Vielleicht ist auch die Speicherdauer (max. 1,5s) zu kurz bei "längeren" Wörtern (wie z:B. fünfzehn) , so dass intern die fünfzehn oder fünfzig wie eine fünf aussieht.

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.07.2006
    Ort
    Puchheim
    Alter
    72
    Beiträge
    455
    Ich hab mal die Befehle auf englisch eingegeben, aber dabei schmerzlich gemerkt, dass wohl nur maximal 80 Worte speicherbar sind.

    Ei Video dazu auf Youtube: https://www.youtube.com/watch?v=Sr5D...ature=youtu.be

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    1.876
    Blog-Einträge
    12
    80 Worte sind aber schon viel. Weiß nicht, was heute so geht, aber wenn das Teil 80 Worte genau unterscheiden kann, nicht schlecht für so ein kleines Ding. Du wolltest jetzt aber nicht jede Zahl im Bereich von 0 bis 100 in Einzelschritten einüben (81, 82, 83, 84, ... 96,97,98,99 ...) ?

    MfG

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.07.2006
    Ort
    Puchheim
    Alter
    72
    Beiträge
    455
    das Problem ist, ich kann den Speicher wohl nur komplett freigeben und müsste dann alle Worte neu "trainieren".
    Ich nutze momentan wohl nur 21 Worte, hab aber die restlichen bereits belegt. Die kann ich wohl einzeln dann überschreiben.

    Beim Roboter fällt mir auf, dass die Übertragung der Befehle langsam läuft. Die Erkennung der Befehle geht meist schnell (1-2 s), aber die Übertragung und
    die Aktivierung des Roboters dauert gefühlt 15 - 20 s.
    Ich kann das noch etwas an der ESP32-Scnittstelle bescheunigen, indem ich nur das Command-Byte übertrage und die laufende Transfer-Nr(int) weglasse, aber sehr viel wird das nicht bringen.

    MfG

Ähnliche Themen

  1. uARM Robotersteuerung
    Von berbog im Forum Open Source Software Projekte
    Antworten: 0
    Letzter Beitrag: 13.08.2018, 06:49
  2. Robotersteuerung mit Joystick
    Von Malkem im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 3
    Letzter Beitrag: 06.10.2011, 17:45
  3. Robotersteuerung mit Kamera
    Von stochri im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 7
    Letzter Beitrag: 04.04.2007, 21:01
  4. robotersteuerung mit java?
    Von Mac Gyver im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 1
    Letzter Beitrag: 11.12.2004, 11:58
  5. Robotersteuerung über WAP
    Von NF im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 0
    Letzter Beitrag: 09.11.2004, 22:18

Berechtigungen

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