37 lines
1.2 KiB
TeX
37 lines
1.2 KiB
TeX
|
\chapter{Export du relevé de position}
|
||
|
\label{chap:export}
|
||
|
\section{Relevé}
|
||
|
ROS permet, grâce à la commande \verb|rosbag| d'exporter les données publiées sur un topic ROS pour les jouer plus tard. Pour cela on peut utiliser la commande :
|
||
|
|
||
|
\begin{minted}{bash}
|
||
|
rosbag record <topic> -O record.bag
|
||
|
\end{minted}
|
||
|
|
||
|
où \verb|<topic>| est le topic à enregistrer.
|
||
|
|
||
|
Après avoir lancé \mintinline{bash}|roscore|, on enregistre la sortie dans un format que le script de l'annexe \ref{chap:test_filter} accepte.
|
||
|
\begin{minted}{bash}
|
||
|
rostopic echo <topic> | python3 parse_topic.py
|
||
|
\end{minted}
|
||
|
|
||
|
Le script \verb|parse_topic.py| accepte plusieurs arguments.
|
||
|
|
||
|
\begin{minted}
|
||
|
Usage: parse_topic.py [OPTIONS]
|
||
|
|
||
|
Options:
|
||
|
--output TEXT Output file
|
||
|
--time / --no-time Add the number of seconds
|
||
|
--field TEXT YAML field to store
|
||
|
--help Show this message and exit.
|
||
|
\end{minted}
|
||
|
|
||
|
On peut alors, dans un autre terminal, jouer l'enregistrement avec la commande suivante.
|
||
|
\begin{minted}{bash}
|
||
|
rosbag play record.bag
|
||
|
\end{minted}
|
||
|
|
||
|
Enfin, on peut arrêter le script \mintinline{bash}|parse_topic.py| en pressant \verb|Ctrl + C|.
|
||
|
|
||
|
\section{Script \mintinline{bash}|parse_topic.py|}
|
||
|
\inputminted[frame=lines,linenos,breaklines=true]{python}{scripts/parse_topic.py}
|