Этот контейнер Docker содержит ROS 2 Humble, Gazebo Fortress и симуляцию TurtleBot 4. Контейнер Docker настроен для хорошей работы на обычном оборудовании без видеокарты. Наиболее разумно сконфигурированное оборудование должно иметь возможность запускать моделирование с коэффициентом реального времени не менее 0,2.
Этот контейнер Docker предназначен для использования с этим примером кода для игрушечного узла TB4 и соответствующим докладом PyCon 2024 или семинаром ROSCon 2024.
Этот Docker также включает полную установку ROS 2 Humble. Если вы хотите освежить свои навыки ROS, вы можете пройти учебные пособия по ROS 2. Мы предлагаем вам начать с руководств по CLI.
Этот мастер-класс позволит вам выбрать собственное приключение. Вам предстоит принять два важных решения:
Но подождите, это еще не все! Вы просто хотите опробовать отличные учебные пособия на docs.ros.org, у нас также есть инструкции, как это сделать!
sudo apt install docker.io
sudo usermod -aG docker $(whoami)
source .//bin/activate
activate.Если вы хотите создать контейнер Docker с нуля:
git clone [email protected]:kscottz/turtlebot4_docker.git
docker build . -t tb4
Если вы хотите использовать готовый образ Docker, запустите:
docker pull osrf/icra2023_ros2_gz_tutorial:roscon2024_tutorial_humble_turtlebot4
Давайте начнем с разговора о том, как запустить контейнер. Мы предложили несколько вариантов прохождения мастер-класса. Посмотрите ниже, но пока не запускайте контейнер! У вас есть еще несколько вариантов выбора!
rocker --x11 --devices=/dev/dri osrf/icra2023_ros2_gz_tutorial:roscon2024_tutorial_humble_turtlebot4 bash
rocker --x11 --devices=/dev/dri tb4 bash
Обратите внимание: здесь изменилось только имя контейнера, которое является предпоследним параметром!
Теперь вы должны решить, где вы хотите сохранить свою работу. У вас есть два варианта: начать с нуля и построить все самостоятельно или продолжить работу над готовым проектом. Существует также третий вариант, при котором вы просто запускаете контейнер, но используете внутренние инструменты Docker для сохранения своей работы. Хотя это, безусловно, возможно, мы не рекомендуем этого делать.
Если вы хотите работать с нуля (наш предпочтительный рабочий процесс), тогда все, что вам нужно сделать, это создать каталог:
mkdir tb4_toy
rocker --x11 --devices=/dev/dri --volume=:/opt/ros/overlay_ws/src/tb4_toy bash
, где каталог был заменен вашим новый каталог, а контейнер — это контейнер, который вы хотите использовать.rocker --x11 --devices=/dev/dri --volume=/home/kscottz/Code/tb4_toy/:/opt/ros/overlay_ws/src/tb4_toy tb4 bash
Если вы хотите работать с готовым примером кода, выполните следующие действия.
git clone [email protected]:kscottz/tb4_toy.git
— вот код, если вы просто хотите посмотреть.rocker --x11 --devices=/dev/dri --volume=:/opt/ros/overlay_ws/src/tb4_toy bash
, где каталог был заменен вашим новый каталог, а контейнер — это контейнер, который вы хотите использовать.rocker --x11 --devices=/dev/dri --volume=/home/kscottz/Code/tb4_toy/:/opt/ros/overlay_ws/src/tb4_toy tb4 bash
Обратите внимание, что это руководство потребует от вас постоянной работы внутри контейнера и не должно затрагивать вашу хост-систему. *Если вы изменили внутреннюю конфигурацию контейнера Docker и хотите ее сохранить, вам нужно будет использовать [docker commit](https://docs.docker.com/reference/cli/docker/container/commit/)
для сохранения. твоя работа.
Если на вашем ноутбуке установлена модная видеокарта, вы можете включить ее, опустив строку: --devices=/dev/dri
при запуске контейнера. Если у вас есть дискретная видеокарта, рекомендуем использовать ее! Если у вас нет видеокарты, не волнуйтесь! Мы специально настроили этот семинар для работы на старых ноутбуках.
Контейнер для этого семинара содержит большинство распространенных редакторов терминалов, встречающихся в системах Linux. Вы более чем можете их использовать. Если вы смонтировали свою файловую систему в Docker, вы также можете использовать любой редактор на вашей хост-системе для редактирования файлов. Если вы никогда раньше не использовали редактор терминала, это может быть более простой подход.
У нас есть подробное руководство по использованию этого контейнера без Rocker, доступное здесь. Это руководство включает в себя ряд сценариев Bash, которые упрощают запуск соответствующего контейнера Docker! В этом руководстве также представлены некоторые альтернативные подходы к разработке ROS внутри контейнера.
После запуска контейнера вы можете запустить ROS и Gazebo, выполнив следующие команды:
ros2 launch turtlebot4_ignition_bringup turtlebot4_ignition.launch.py world:=maze
source ./install/setup.bash
colcon build
ros2 launch turtlebot4_ignition_bringup turtlebot4_ignition.launch.py world:=maze
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist "{linear: {x: 30.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}"
ros2 run teleop_twist_keyboard teleop_twist_keyboard
ros2 run tb4_toy toy_node
ros2 service call /do_loopy std_srvs/Trigger '{}'