Примеры
Для простоты понимания, как взаимодействовать с роботом через ROS и LCM, мы сделали ряд примеров. Если вы хотите делать собственно ПО для робота, настоятельно рекомендуем сначала изучить эти примеры. В файлах примеров имеются комментарии. Зная общие принципы Python и ROS, вы без труда сможете в них разобраться. Запускать примеры можно как в симуляторе, так и на реальном роботе.
Все примеры, касающиеся ROS, лучше всего запускать с вашего компьютера, который подключен к роботу по сети. Чтобы подключиться, следуйте инструкциям в разделах Подключение к роботу по сети и Подключение к ROS на роботе.
Пример, касающийся LCM (demo_lcm.py), запускайте на бортовом компьютере робота.
Ниже приведен общий принцип работы с примерами:
Скачайте пакет mors_demo в своё рабочее пространство ROS
cd <ROS-workspace>/src
git clone https://github.com/voltdog/mors_demo.git
Произведите компиляцию
cd <ROS-workspace>
catkin_make
Чтобы не уменьшить риск поломки робота, в первый раз запускайте каждый пример, установив робота на стойку.
Запустите любой пример из папке scripts
rosrun mors_demo demo_body.py
Если во время выполнения примеров вы наблюдаете рывки, то обратитесь к разделу Устранение неполадок.
Описание примеров
demo_actions
Робот встает, и по очереди начинает исполнять заскриптованные команды: даёт одну лапу, даёт другую лапу, кувыркается, садится и машет лапой, садится на несколько секунд и затем встает. В конце робот ложится на землю и отключает питание с двигателей.
Перед запуском убедитесь, что слева от робота есть 1.5 м свободного пространства!
Запуск скрипта:
rosrun mors_demo demo_actions.py
demo_body
Робот встает и начинает перемещать корпус, меняя своё линейное положение и ориентацию. По завершении, робот ложится и снимает питание с двигателей.
Запуск скрипта:
rosrun mors_demo demo_body.py
demo_joints
В этом примере показано, как напрямую управлять сочленениями ног. Во время работы скрипта, робот вращает двигателями по синусоидальной траектории с разными амплитудами.
Обязательно установите робота на стойку перед запуском этого примера! Будьте аккуратны: робот достаточно сильно размахивает ногами.
Запуск скрипта:
rosrun mors_demo demo_joints.py
demo_lcm
Этот пример делает то же самое, что и demo_joints.py, но только взаимедействие в приводами происходит напрямую через LCM. Во время работы скрипта производится вывод в консоль текущих показаний датчиков угла поворта сочленений.
Этот пример нужно запускать только на бортовом компьютере робота. Для запуска произведите следующие действия:
Подключитесь к роботу через SSH или RDP.
Перейдите в ros-воркспейс и скачайте пакет mors_demo:
cd mors_ws/src
git clone https://github.com/voltdog/mors_demo.git
Произведите сборку пакета:
cd ~/mors_ws
catkin_make --only-pkg-with-deps mors_demo
Завершите работу ubuntu-сервиса mors.service
sudo systemctl stop mors.service
Запустите скрипт инициализации приводов
cd ~
./start_offsets.sh
Если вы видите постоянно бегущие данные и они не прекращаются, то не обращайте на это внимание.
В новом терминале запустите roscore:
roscore
Еще в одном терминале запустите пример:
rosrun mors_demo demo_lcm.py
Если потом вы решить запустить другие примеры или включить управление роботом с джойстика, то это можно сделать тремя способами:
перезагрузить робот
запустить launch-файл управляющего ПО:
roslaunch mors bringup.launch
запустить ubuntu-сервис
sudo systemctl start mors.service
demo_leds
Пример показывает, как взаимодействовать с пьезодинамиком и светодиодом на корпусе робота. При запуске скрипта, светодиод по очереди начинает переключать цвета и моргать, а динамик подавать сигналы с разными частотами.
Запуск скрипта:
rosrun mors_demo demo_leds.py
demo_legs
Файл содержит пример кода управления стопами шагающего робота МОРС. Во время демонстрационного примера робот двигает стопами по окружности. Каждая нога отрабатывает движение в своей плоскости.
Перед запуском примера, поставьте робота на стойку!
Запуск скрипта:
rosrun mors_demo demo_legs.py
demo_sensors
Файл содержит пример кода для получения данных с датчиков робота. Во время работы скрипта, данные выводятся в консоль. Во время работы файла, вы можете управлять роботом в любом режиме.
Список выводимых данных:
углы поворота сочленений
кватернион углового положения
линейные ускорения
температура
входное напряжение
потребляемый ток
состояние кнопки на корпусе
Запуск скрипта:
rosrun mors_demo demo_sensors.py
demo_walk
Файл содержит пример управления ходьбой робота (вдоль осей XY и вокруг оси Z).
Перед запуском примера, убедитесь, что сперереди у робота есть минимум 3 метра свободного пространства!
Запуск скрипта:
rosrun mors_demo demo_walk.py
Last updated