Modele cinematique d`un robot mobile

fevereiro 16th, 2019

Maintenant, nous allons visualiser la position publiée par votre robot, exécutez rviz, cliquez sur Ajouter et choisissez l`onglet par sujet. Maintenant, vous pouvez contrôler votre robot avec le clavier avec les fonctions suivantes pour les boutons: cette section est requise uniquement pour ROSbot. Gazebo a déjà mis en œuvre son propre plugin pour publier la position du robot. Maintenant, nous allons effectuer une tâche cinématique avant-nous utiliserons des encodeurs qui sont attachés à chaque moteur et de traiter leurs mesures avec des équations indiquées dans la section tâche cinématique avant. Dans cette section, vous contrôl ez votre robot avec le clavier et observez qu`il publie sa propre position. Définissez le type de capteur de distance que vous utilisez dans votre robot: la position du robot est déterminée par un tuple (XC, YC, α). La tâche cinématique avant est de trouver la nouvelle position du robot (XC, YC, α) `après le temps ΔT pour les paramètres de contrôle donnés: vous utiliserez le clavier pour contrôler le mouvement de votre robot. Pour obtenir les événements clés et les convertir en messages geometry_msgs/Twist, vous pouvez utiliser teleop_twist_keyboard. py nœud à partir du package teleop_twist_keyboard. Si vous travaillez avec ROSbot: Connectez-vous à votre appareil Core à l`aide du Bureau à distance, lancez le terminal et démarrez votre robot comme précédemment. Dans une autre fenêtre de terminal Run: le but de la cinématique à l`avant dans la robotique mobile est de déterminer la position et l`orientation du robot en fonction des mesures de rotation des roues.

Pour ce faire, nous allons créer un modèle cinématique de robot. ROSbot est un robot mobile à quatre roues avec un entraînement séparé pour chaque roue, mais afin de simplifier le calcul cinématique, nous le traiterons comme deux roues. Deux roues virtuelles (marquées comme WL et WR sur le schéma) auront l`axe passant par le centre géométrique de robot. De cette façon, nous pouvons utiliser un modèle cinématique plus simple de robot à roues différentielles. Le nom “différentiel” vient du fait que le robot peut changer sa direction en variant le taux relatif de rotation de ses roues et ne nécessite pas de mouvement de direction supplémentaire. Schéma robot est présenté ci-dessous: Rviz est un outil qui permet la visualisation de la position du robot, chemin parcouru, trajectoire planifiée, état du capteur ou des obstacles autour du robot. Définir le type de message et l`éditeur pour la position du robot: une fois que cela est fait, vous devriez voir une flèche représentant la position et l`orientation de votre robot. Déplacez votre robot et observez que la flèche change de position. Nous pouvons déterminer la position angulaire et la vitesse du robot avec: la manière la plus courante d`envoyer des commandes de mouvement au robot est avec l`utilisation du type de message geometry_msgs/Twist.

Ensuite, le nœud du pilote de moteur doit utiliser les données stockées dans eux pour contrôler le moteur. Rappelez-vous, que vous avez besoin d`avoir une fenêtre active avec teleop_twist_keyboard pour contrôler le mouvement du robot. Notre robot mobile a des contraintes. Il ne peut se déplacer dans le plan x-y et il a 3 DOF (degrés de liberté). Cependant, tous les DOFs ne sont pas contrôlables, ce qui signifie que le robot ne peut pas se déplacer dans toutes les directions de ses axes locaux (par exemple, il ne peut pas se déplacer latéralement). Ce système d`entraînement est appelé non-holonomique. Lorsque la quantité de DOFs contrôlables est égale à DOFs totaux, un robot peut être appelé holonomique. Pour réaliser que certains robots mobiles sont construits à l`aide de roues Omni ou mecanum et grâce au mouvement de vectorage, ils peuvent changer de position sans changer leur Cap (orientation). puis faites-les glisser et déposez-les dans la zone de la fenêtre. De cette façon, vous pouvez observer confortablement les changements dans les données d`odométrie pendant le mouvement du robot: alternativement, vous pouvez utiliser le joystick pour contrôler votre robot, alors vous aurez besoin joy_node noeud de paquet de joie et teleop_node noeud de teleop_twist_joy paquet. Dans cette section, vous apprendrez comment contrôler votre mouvement de robot avec le clavier. Vous aurez besoin teleop_twist_keyboard noeud de teleop_twist_keyboard paquet.

Après avoir terminé ce tutoriel, vous devriez être en mesure de contrôler le moteur attaché à votre appareil Core, définir la vitesse désirée pour le robot avec geometry_msgs/Twist message, déterminer la position de votre robot en utilisant l`odométrie, le publier comme un message PoseStamped et visualiser position de votre robot à l`aide de rviz. Fonction pour traiter les demandes entrantes de réinitialisation de l`odométrie de robot: dans cette section, vous apprendrez à visualiser les données des rubriques ros à l`aide de PlotJuggler.