В этом разделе речь пойдет об инструментах ROS, которые позволяют нам при правильном их применении быстро и точно локализовать неполадки в работе наших програм.
Прежде чем искать неисправность в программах неплохо было бы узнать, а запущены ли они у нас. И если да, то как они работают. Первыя утилита - это rosnode. Среди ее функции можно выделить:
- list - выводит список всех запущенных нод
- info </node_name> - выводит информацию о ноды: список публикуемых и подписанных топиков, с чем эти топики связаны, адрес, где нода запущена
- kill </node_name> - убивает выбранную ноду
Вторая утилита - это rostopic. Среди ее основные функции:
- list - список всех активных топиков
- info </topic_name> - выводит информацию о топике: его тип, какая ноду публикует и как на него подписана
- hz </topic_name> - время обновления данных топика
- pub </topic_name> - дает возможность отправить данные в топик из терминала
- echo </topic_name> - прослушивает информацию из топика
Данная утилита позволяет записывать и прогрывать информацию из топиков. Таким образом, спомощью нее появляется возможность записать определенные ситуации и позднее их воспероизвести и обработать.
rosbag record <topic0>...<topicN>
- дает возможность записать в bag-файл выбранные топики
rosbag record -a
- записывает информацию из всех топиков
rosbag play <bag_file_name>
- проигрывает bag-файл
Эта утилита предоставляет графический интерфейс для других широко используемых програм отладки. Среди них особо удобными могут оказаться следующие:
rqt_graph
- выводит на экран в виде диаграммы все существующие ноды и топики, позволяя отследить работу и связи всех запущенных программ.rqt_tf_tree
- выводит список активных фреймов (систем координат) робота (или модели)rqt_top
- выводит информацию о нодах: номер потока, процент занимаемой памяти, процент использования CPU. С помощью него также можно убить ноду.rqt_topic
- выводит информацию обо всех активных топиках, в том числе можно просматривать информацию в них.rqt_reconfigure
- позволяет динамически (в процессае работы) менять параметры (те, которые передаются при старте) запущенных нод. Данная функцию работает не всегда. Нода также должна поддерживать такую функцию.rqt_publisher
- предосталяет возможность в графическом интерфейсе вводить данные в существующие топики и публиковать их с заданной частотойrqt_bag
- графическое представление утилиты rosbag. Также дает возможность зуписывать и проигрывать выбранные топики.