Test commande en vitesse linéaire - PascalBauer/Notre-bon-plaisir-Pascal-Bauer GitHub Wiki
#1. Resumé
Le package speed_test
est destiné à la réalisation des tests sur la réponse du robot lors de commande en vitesse.
#2. Noeud
##2.1 linear_speed
Avec le noeud linear_speed
on cherche à évaluer non pas le déplacement, mais la capacité du robot à adopter une vitesse moyenne conformément à la consigne appliquée. Le noeud permet de pouvoir effectuer le test sur une plage de vitesse linérair dont les paramètres (ros private param) peuvent être fixés.
###2.1.1 Topic Souscrit
-
tf
(tf/tfMessage) : Récupère la position du robot :odom
--->base_link
.
###2.1.2 Topic Publié
-
cmd_vel
(geometry_msgs/Twist) : Commande en vitesse pour le robot.
###2.1.3 Paramètres
-
~speed_max
(double, default:=1.0m/s)
: la plage de mesure est définie comme allant de-speed_max
à+speed_max
. -
~speed_step
(double, default:=0.05m/s)
le pas entre chaque commande testé.
Pendant l'exécution, le noeud relèves les différentes valeurs. Elles sont enregistrées dans un fichier dont chaque ligne correspond à un échelon de vitesse testé. Chaque ligne contient dans l'ordre :
- cmd : la commande en vitesse linéaire correspondant aux valeurs obtenues.
- dt : le temps pendant lequel la vitesse est appliquée.
- dx : le déplacement linéaire effectué pendant le l'intervalle de temps suivant x
- dy : le déplacement linéaire effectué pendant le l'intervalle de temps suivant y
- dth : la rotation effectué pendant le l'intervalle de temps autour de z
- speed_x : la vitesse linéaire moyenne effectué pendant le l'intervalle de temps suivant x
- speed_y : la vitesse linéaire moyenne effectué pendant le l'intervalle de temps suivant y
- speed_th : la vitesse angulaire moyenne effectué pendant le l'intervalle de temps autour de z
Note : Etant donné que le robot est un unicycle, il n'y a pas vraiment de vitesse ou de déplacement suivant y. Ces données sont surtout enregistrées afin de pouvoir évaluer l'impact et la coorélation entre la commande linéaire suivant x et l'erreur de vitesse entre les deux moteurs (dont résulte la vitesse angulaire et donc la dérive en y).
Encore une fois, il s'agit ici de vitesse moyenne et non "instantané".
Le fichier est sauvegardé par défaut dans /$HOME/catkin_ws/data/
avec pour nom test_linear_speed_YY-MM-DD_hh-mm-ss
.
###2.1.5 Exemples Pour l'utiliser :
- avec
rosrun
:
rosrun speed_test linear_speed _speed_max:=<speed_value> _speed_step:=<step_value>
- Dans un
.launch
<node pkg="speed_test" type="linear_speed" name="linear_speed">
<param name="speed_max" value="<speed_value>"/>
<param name="speed_step" value="<step_value>"/>
</node>
Note :
linear_speed.sh
contient différentes batterie de test effectuer à la suite. Les valeurs sont (speed = 1.0, step=0.05), (speed = 0.15, step=0.01) et (speed = 0.10, step=0.005).
###2.1.5 To Do
- rajouter les
frame_id
pour base_link et odom en private param.