Навигация в файловой системе ROS

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск

Навигация в файловой системе ROS

1. Краткий обзор концепции файловой системы

  • Packages: Пакеты являются низким уровнем организации программного обеспечения. Они могут содержать все что угодно: библиотеки, инструменты, исполняемые файлы и др.
  • Manifest: Манифест является описанием пакета, главная задача которого - определение зависимостей между пакетами.
  • Stacks: Стеки являются коллекциями пакетов, образующих высокоуровневые библиотеки.
  • Stack Manifest: Манифест для стека.

В файловой системе легко определить пакет то, или стек:

  • Пакет представляет собой каталог с файлом manifest.xml.
  • Стек представляет собой каталог с файлом stack.xml.

Filesystem.png

2. Инструменты файловой системы

2.1. Использование rospack и rosstack

rospack и rosstack являются частью rospack утилиты.

Использование:

$ rospack find [имя_пакета]

$ rosstack find [имя_стека]

Пример:

$ rospack find roscpp

Вернется:

YOUR_INSTALL_PATH/ros/core/roscpp

2.2. Использование roscd

roscd является частью rosbash утилиты. Позволяет изменить текущую директорию непосредственно на директорию пакета или стека.

Использование:

$ roscd [locationname[/subdir]]

Пример:

$ roscd roscpp

Чтобы убедиться, что директория была изменена на директорию пакета roscpp, нужно посмотреть текущую директорию с помощью bash команды pwd

$ roscd roscpp/include

$ pwd

Вы должны увидеть:

YOUR_INSTALL_PATH/ros/core/roscpp/include

При выполнении roscd без аргументов произойдет переход к $ROS_ROOT .

2.3. Использование rosls

rosls является частью rosbash утилит, она позволяет просмотреть содержание пакета или стека по его имени, а не по пути к нему.

Использование:

$ rosls [locationname[/subdir]]

Пример:

$ rosls roscpp_tutorials

Вернется:

add_two_ints_client listener_unreliable
add_two_ints_server listener_with_tracked_object
add_two_ints_server_class listener_with_userdata
anonymous_listener Makefile
babbler manifest.xml
CMakeLists.txt node_handle_namespaces
custom_callback_processing notify_connect
listener srv
listener_async_spin talker
listener_multiple time_api
listener_single_message timers
listener_threaded_spin