Dzisiejszy post jest o usunięciu małego błędu nazwanego Nieudane rozpoznawanie w EasyVR, który napotkałem podczas pracy z nakładką EasyVR z Arduino UNO. Około rok temu zamieściłem kompletny projekt na EasyVR Shield, w którym nie wspomniałem o tym błędzie, ponieważ wtedy jeszcze się z nim nie zetknąłem. Ale dzisiaj podczas pracy z nakładką EasyVR, napotkałem ten problem, więc postanowiłem się nim z wami podzielić.
Nakładka EasyVR to moduł rozpoznawania głosu, który służy właśnie do rozpoznawania głosu i odpowiedniego działania. Korzystając z tego modułu, można dość łatwo kontrolować wszystko właśnie za pomocą głosu. W poprzednim projekcie, sterowałem robotem za pomocą komend głosowych. Np. kiedy powiem Forward (naprzód) wtedy robot zacznie poruszać się do przodu, kiedy powiem REVERSE (wstecz) wtedy zacznie poruszać się do tyłu itd. Tak więc, jest to całkiem fajna funkcja, którą można dodać do projektu. Nie jest to jednak idealne rozwiązanie, ponieważ wydajność tego modułu nie wynosi nawet 50%. Jeśli działamy w otoczeniu pełnym hałasu to nie będzie działać, tak jak chcemy. Przejdźmy zatem do tego jak rozwiązać Błąd szkolenia: Rozpoznanie nie powiodło się w EasyVR.
Błąd szkolenia: Niepowodzenie rozpoznawania w EasyVR
Po pierwsze, podłączyłem mojego EasyVR do Arduino UNO i uruchomiłem EasyVR Commander.
Wybrałem port Com mojego Arduino UNO i nacisnąłem Connect.
Po tym dodałem nową komendę w EasyVR Commanderze i nacisnąłem Train Command, a on zapytał o Phase 1.
Wszystko działało idealnie, ale kiedy uczyłem mojej komendy tzn. powiedziałem słowo, które chciałem zapisać w komendzie, otrzymałem następujący błąd: „Training error: Recognition Failed" (Błąd szkolenia: Rozpoznanie nie powiodło się), jak pokazano na poniższym zrzucie ekranu:
Próbowałem jeszcze kilka razy nauczyć komendy, ale błąd wciąż się powtarzał, co stanowiło dla mnie spory problem.
Tak więc, poniżej znajdują się kroki, które podjąłem w celu usunięcia tego błędu. Jest to pewien rodzaj rozwiązywania problemów, którego warto się nauczyć jako inżynier.
Jak rozwiązać błąd szkolenia: Rozpoznanie nie powiodło się w easyvr
Przede wszystkim należy sprawdzić czy nakładka EasyVR działa czy nie, co też uczyniłem. Odłączam więc nakładkę EasyVR od Arduino UNO i wgrywam szkic (program) w Arduino UNO. Szkic, który wgrałem do Arduino UNO jest testowym szkicem EasyVR dołączonym do biblioteki EasyVR.
Po wgraniu szkicu, podłączyłem mój EasyVR shield z Arduino UNO i sprawdziłem jego wyjście. Odetchnąłem z ulgą, że mój EasyVR Shield działa dobrze, więc nie ma problemu z EasyVR.
Teraz ponownie otworzyłem EasyVR Commander i tym razem umieściłem zworkę J12 na pozycję SW zamiast PC i rozpocząłem procedurę szkolenia – byłem jak zaskoczony, że działa bez zarzutu.
Wydaje mi się, że nowe wersje EasyVR Shield nie wymagają zworki na PC dla trybu szkolenia.
W projekcie wspomniałem, że zworkę J12 należy umieścić na pozycji PC podczas pracy z EasyVR Commanderem oraz na SW podczas pracy z Arduino UNO, co obecnie nie ma zastosowania w nowej wersji EasyVR.
Wystarczy więc ustawić zworkę J12 w pozycji SW i wszystko będzie działać bezproblemowo.
Ostatecznie, po rozwiązaniu tego problemu, wyszkoliłem w niej pięć komend do poruszania robotem, które są pokazane poniżej.