Étape 6: Cartographie adaptative et algorithme de front d’onde
Nous allons faire quelque chose de beaucoup plus avancé appelé l' algorithme de front d’onde.
Télécharger ce code sur votre création :
iRobot_Create_wave_front.zip 9 septembre 2007
Le front d’onde discrétise fondamentalement les emplacements environs et enregistrements des objets. L’image jointe de ma cuisine est une bonne visualisation de celui-ci.
Dans le regard de code source pour une matrice appelée « carte ». À l’aide de la carte, redéfinir l’objectif emplacement, emplacement des robot et emplacements d’objet que vous souhaitez. Ne vous inquiétez pas trop sur les objets, le robot va scanner et mettre à jour la carte pour vous.
Profitez de la vidéo finale inédite !
Oui, je sais que j’ai beaucoup de boîtes de céréales... J’ai en fait plus... J’aime les céréales =)
Maintenant, que se passe-t-il si vous souhaitez ajouter cet algorithme à votre robot en tant qu’ajout ? Simple, ajoutez cette ligne dans votre code :
#include "wave_front.c"//put ceci en haut
Et puis mettre ceci dans votre code de main() :
direction_to_move = propagate_wavefront(robot_x,robot_y,goal_x,goal_y) ;
emplacement d’entrée du robot et but recherché
Juste lui dire où est votre robot et il indiquera votre robot où aller (1 = Nord, 3 = Sud, 2 = est ou 4 = Ouest). N’oubliez pas de définir l’emplacement de départ et le but dans le fichier wave_front.c !
Pour mettre à jour la carte, il suffit d’appeler la fonction find_walls() ; et il va automatiquement faire tout le travail pour vous.
Avec seulement de légères modifications, le code très commenté est conçu pour fonctionner sur n’importe quel châssis robot avec n’importe quel capteur, non seulement la créer ! Dans le plan, par défaut le robot commence en bas et le but est en haut (comme dans la vidéo).