- Установка Ubuntu (либо docker+WSL)
-
Установка ROS
- устанавливаем версию -desktop-full (http://wiki.ros.org/noetic/Installation/Ubuntu)
-
запуск окружения ROS
Чтобы в терминале можно было работать с ROS, нужно его запускать каждый раз…
или добавить source /opt/ros/noetic/setup.bash в конфигурационный файл .bashsrc
комада для этого
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
- Устанвока IDE
Чтобы установить редактор VS Code выполните sudo snap install code --classic
В VS code имеются полезные расширения, которые облегчат работу (их желательно установить): Python, Cmake, ROS.
установить roscore можно командой sudo apt install python3-roslaunch (Если вдруг его нет) printenv | grep ROS
- выводит все важные параметры из env
- Откройте файл ~/.bashrc в текстовом редакторе и проверьте содержимое.
-
Запустим ROS Master
Для это воспользуемся командой
roscore
-
В новом терминале (не закрываем предыдущий) попробуем запустить что-то, для этого воспользуемся уже установленным пакетом rospy_tutorials
rosrun rospy_tutorials talker
(rosrun
запускает ноду из пакета)Мы должны уваидеть, как talker публикует сообщения с содержанием Hello world
-
Откроем еще один терминал и запустим в нем другую ноду из того же пакета
rosrun rospy_tutorials listener
-
Воспользуемся утилитой
rqt_graph
, которая показывает вычислительный граф. Таким образом, мы можем наглядно видеть, как организован обмен данными. -
Остановим все ранее запущенное и запустим другую ноду из другого пакета, воспользовавшимь командой
rosrun turtlesim turtlesim_node
Снова запустим
rqt_graph
и проверим вычислительный граф, что мы видим? -
Чтобы черепашка двигалась, нам необходимо отправить “правильное” сообщение в “правильный” топик.
Как определить, в какой топик нам надо отправить сообщение?
-
Как определить тип сообщения? Для этого можно воспользоваться командой
rostopic type [topic_name]
далее можно поискать в документации информацию по названию типа сообщения, либо воспользоваться командой
rosmsg show [msg_type_name]
-
Отправлять сообщения можно из терминала, или из другой ноды. Рассмотрим вариант отправки сообщения из терминала:
rostopic pub [topic] [msg_type] [args]
Чтобы значения подставились дефолтные, можно нажать TAB TAB
-
Воспользуемся вторым способом (отправка сообщений из другой ноды) новом терминале запустим
rosrun turtlesim turtle_teleop_key
и снова посмотрим на граф.
В итоге можно увидеть, что узел /teleop_turtle публикует сообщения в топик /turtle1/cmd_vel а который подписан /turtlesim и.д.
-
Также можно посмотреть в терминале, что именно публикуется в топик при помощи команды
rostopic echo /turtle1/pose
-
Также можно посмотреть, с какой частотой публикуются сообщения
rostopic hz /turtle1/pose
-
Поток данных зачастую удобнее смотреть в виде графика, для этого можно воспользоваться иструментом rqt_plot
rosrun rqt_plot rqt_plot
Исследование пакета
Задание 1: найти расположение пакета rospy_tutorials
Задание 2: найти список всех установленных пакетов ROS
Задание 3: найти файлы, которые запускались при вызове ноды listener
и publisher
Оставить комментарий