sudo apt install ros-jazzy-desktop![]() | ![]() |
Счетчиков Юрий Андреевич
Общие сведения о ROS
Установка ROS2
Базовый пример
Ноды и топики
Консольные инструменты
remaping
Работа в симуляторе
не ОС а framewrok
модульная структура (принуждает писать код лучше)
использует Яндекс, Starline и сотни других компаний
большое сообщество разработчиков (>30к репозиториев на github)
![]() |
![]() |

https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html
на ПК выбираем: ros-jazzy-desktop
sudo apt install ros-jazzy-desktopдоходим до "Setup environment"
добавляем пункты в .bashrc
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrchttps://docs.ros.org/en/jazzy/Tutorials/Beginner-CLI-Tools.html
$ ros2 run turtlesim turtlesim_node
$ ros2 run turtlesim turtle_teleop_key![]() |
![]() |
$ rqt_graph
Я представлял объекты как биологические клетки и/или отдельные компьютеры в сети, способные общаться только при помощи сообщений Источник

message - сообщение, пакет данных определенного формата
topic - канал обмена message одного типа
publisher - тот кто отправляет сообщениями в topic
subscriber - тот кто читает сообщениями из topic
namespace - способ группировать имена node, topic для избегания конфликтов (что-то вроде папок)
$ ros2 node list
$ ros2 node info /turtlesim$ ros2 topic list
$ ros2 topic info /turtle1/cmd_vel
$ ros2 topic echo /turtle1/cmd_vel$ ls /dev/input/js*
$ ros2 run joy joy_node --ros-args -p dev:="/dev/input/js0"
$ ros2 topic list
$ ros2 topic info /joy
$ ros2 topic echo /joy![]() |
$ sudo apt install ros-jazzy-joy ros-jazzy-teleop-twist-joy
$ ros2 run teleop_twist_joy teleop_node
$ rqt_graph

$ $ ros2 run teleop_twist_joy teleop_node --ros-args \
--remap cmd_vel:=/turtle1/cmd_vel \
-p axis_linear.x:=4 -p axis_angular.yaw:=3 \
-p scale_linear.x:=1.0 -p scale_angular.yaw:=1.0 \
-p require_enable_button:=falsehttps://sdb.smtu.ru/nextcloud/s/dX2Dw6kR62kKW95
$ cd ros2/sim-lin/
$ sudo chmod +x WS_SIM_UBUNTU.x86_64
$ ./WS_SIM_UBUNTU.x86_64https://sdb.smtu.ru/nextcloud/s/dX2Dw6kR62kKW95
Клонируем в папку ~/ros2: https://sdb.smtu.ru/gitlab/marinerobotics/ros-usv-teleop
Запускаем:
$ cd ~/ros2/ros-usv-teleop/usv_ws
$ colcon build
$ source install/setup.bash
$ ros2 launch movement_usv main.launch.pyros2 run turtlesim turtle_teleop_key \
--ros-args -r /turtle1/cmd_vel:=/ws/twist_pilot$ ros2 topic list
$ ros2 run teleop_twist_joy teleop_node --ros-args --remap cmd_vel:=/ws/twist_pilotros2 run turtlesim turtlesim_node --ros-args -r /turtle1/cmd_vel:=/ws/twist_pilotУстановка ROS2
Что такое ROS и почему он нужен?
Простой пример
Консольные инструменты
remaping
Управление симулятором

Установка ROS2 https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html | https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html |
Официальная справка https://docs.ros.org/en/jazzy/Tutorials/Beginner-CLI-Tools.html | https://docs.ros.org/en/jazzy/Tutorials/Beginner-CLI-Tools.html |
установить пакет mouse_teleop (ros-jazzy-mouse-teleop)
установить пакет twist_stamper (ros-jazzy-twist-stamper)
пробросить управление от мышки к черепахе и к катамарану в симуляторе, чтобы управлять черепахой и катамараном
склонировать репозиторий 3 https://sdb.smtu.ru/gitlab/marinerobotics/lesson-03
в файле lesson_03.sh указать список команд, которые нужно ввести в различных консолях, чтобы всё заработало
работаем как и ранее - в своей ветке

ros2 run twist_stamper twist_unstamper --ros-args \
-r cmd_vel_in:=/mouse_vel -r cmd_vel_out:=/turtle1/cmd_vel