Description du robot
Le paquet ratbot_description (dans ros2/src/) contient la
description URDF du robot, écrite en xacro :
urdf/ratbot.urdf.xacro.
Contenu du modèle
Le modèle décrit une base différentielle :
base_footprint: projection du robot au sol (racine du modèle) ;base_link: le châssis ;left_wheel_link/right_wheel_link: les roues motrices (articulationscontinuous) ;caster_link: le point d’appui.
Les dimensions (châssis, rayon et entraxe des roues) sont définies comme propriétés xacro en tête de fichier. Ce sont pour l’instant des valeurs provisoires, à remplacer par les cotes réelles de la conception mécanique (Châssis et mécanique).
TODO :
ajouter la frame du marqueur ArUco (surface supérieure du robot), utile à tout système de localisation externe ;
remplacer les formes primitives par les maillages (voir ci-dessous) ;
renseigner les inerties réelles.
Maillages 3D : où mettre quoi
Les formats CAO (STEP) ne sont pas lisibles par RViz/Gazebo : il faut distinguer la source de conception des maillages exportés.
Fichier |
Emplacement |
Rôle |
|---|---|---|
|
|
La source CAO, éditable — jamais référencée par l’URDF. |
|
|
Les exports pour l’URDF : DAE pour le visuel (couleurs), STL simplifié pour la collision. |
L’URDF les référence ainsi :
<mesh filename="package://ratbot_description/meshes/chassis.dae"/>
Règles d’export (depuis FreeCAD, Fusion 360…) :
unités : mètres — les CAO travaillent en millimètres, un maillage exporté en mm apparaîtra 1000 fois trop grand (sinon,
scale="0.001 0.001 0.001"dans la balise<mesh>) ;origine et orientation du maillage cohérentes avec la frame du link ;
pour la collision, préférer une version simplifiée (voire garder les primitives boîte/cylindre actuelles) : Gazebo calcule les contacts dessus, la finesse ne sert à rien.
Visualisation
Le launch display.launch.py permet de visualiser le modèle :
source ros2/install/local_setup.bash
ros2 launch ratbot_description display.launch.py
Il démarre robot_state_publisher, joint_state_publisher_gui et
RViz. L’argument gui:=false ne lance que robot_state_publisher
(utile sur le robot, sans écran).
Dans RViz, ajouter un affichage RobotModel (topic
/robot_description) et choisir base_footprint comme Fixed Frame.
Dépendances : xacro, robot_state_publisher, et pour la
visualisation joint_state_publisher_gui et rviz2.