» » » Управление самобалансирующим роботом EduMip с помощью джойстика PS4 dualshock 4 через ROS

 

Управление самобалансирующим роботом EduMip с помощью джойстика PS4 dualshock 4 через ROS

Автор: admin от 13-06-2018, 12:20, посмотрело: 25

Управление самобалансирующим роботом EduMip с помощью джойстика PS4 dualshock 4 через ROS
Это простой пример про то, как с помощью ROS можно связать несколько устройств по сети и пересылать данные управления.



Под катом в конце — видеодемонстрация управления роботом с джойстика.

драйвер по инструкции.



После установки драйверов и соединения джойстика по блютус, запускаем графическую утилиту jstest-gtk и видим что у нас два джойстика, нам нужен второй, так как на нем есть все кнопки и стики.



Управление самобалансирующим роботом EduMip с помощью джойстика PS4 dualshock 4 через ROS


Так как по умолчанию ROS работает с joy0, то нам это надо переопределить на joy1:



sudo chmod a+rw /dev/input/js1
rosparam set joy_node/dev "/dev/input/js1"


Теперь нам нужно соединить это все в единую сеть. Ноутбук с ROS будет master, а EduMip с BeagleBone Blue ROS соединяться по wifi к ноутбуку. Оба устройства находятся в локальной сети wifi роутера.



На вашем ПК установите переменные среды ROS для поиска мастера ros (roscore) на ПК с команд .bashrc (добавьте эти команды в конец вашего файла .bashrc ):



“export ROS_MASTER_URI=http://192.168.10.101:11311” <- это сообщает ROS IP-адрес машины, на которой выполняется мастер ros (roscore).
“export ROS_IP=192.168.10.101” <- это сообщает ROS IP-адрес этой машины (вашего ПК).


На вашем EduMIP установите переменные среды ROS чтобы он нашел мастер ros (roscore) на ПК с команд .bashrc (добавьте эти команды в конец вашего файла .bashrc ):



“export ROS_MASTER_URI=http://192.168.10.101:11311” <- это сообщает ROS IP-адрес машины, на которой выполняется мастер ros (roscore).
“export ROS_IP=192.168.10.102” <- это говорит ROS IP-адрес этой машины (Ваш EduMIP).


Осталось только написать программу которая будет читать положение стика с джойстика и отправлять в топик, а робот этот топик читать.



// Callback function for joystick pessaged
void joyCallback(const sensor_msgs::Joy::ConstPtr& joy)
{
  // X vel driven by left joystick for and aft
  command_velocity_twist.linear.x = joyaxes[1];
  // heading driven by left joysticj left and right
  command_velocity_twist.angular.z = joyaxes[0];
}

// this function gets called at 10Hz to publish the command_velocity array of 2 floats
void timerCallback(const ros::TimerEvent& event)
{
  cmd_vel_publisher.publish(command_velocity_twist);
}


На вашем ПК вы можете визуально посмотреть nodes и topics, запустив «rqt_graph»:



Управление самобалансирующим роботом EduMip с помощью джойстика PS4 dualshock 4 через ROS


Демонстрация управления роботом с помощью джойстика:





Резюме: С помощью ROS можно построить систему для работа распределенную на несколько устройств и например большие вычисления производить на основном компьютере, на самом же роботе оставить только то что нужно для быстрого реагирования. На BeagleBone Blue стоит программируемая подсистеме реального времени (PRU-ICSS).



PRU-ICSS состоит из микропроцессора на двух 32-битных ядрах, имеющих RISC-архитектуру и работающих на частоте 200МГц. Каждое ядро имеет свою область памяти, а также совместную с Linux область памяти, может использовать выводы общего назначения, расположенные на разъемах P8-P9, и формировать прерывания.



Кроме этого установленный на BeagleBone Blue датчик MPU9250 при изменении положения может формировать прерывание на которой можно повесить свою функцию, так собственно и сделано в EduMip.



Если говорить про следующий шаг эволюции то это ROS2, где одним из отличий является DDS (Data Distribution Service) позволяющий построить сеть разных взаимодействующих роботов и устройств на которых ROS не запущен.

Источник: Хабр / Интересные публикации

Категория: Веб-разработка

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *