Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python Robot Operating System вместо Middleware framework Дмитрий Киселев, Endpoint.com

Python Robot Operating System вместо Middleware framework Дмитрий Киселев, Endpoint.com

Выступление на конференции PyCon Russia 2016

IT-People

July 25, 2016
Tweet

More Decks by IT-People

Other Decks in Programming

Transcript

  1. Robot Operational System (ROS) Современный робот - это набор подсистем,

    на нескольких компьютерах общающихся через сеть. Сенсоры Равновесие Движение
  2. Робот внутри - это граф Камера Лидар Распознавание Управление Логи,

    связь Движение Каждая нода графа отвечает за одну простую функцию, и общается с другими нодами публикуя и принимая сообщения. ROS - это нервная система робота.
  3. Сделали на рос ROS был первоначально разработан в 2007 году

    в Лаборатории Искусственного Интеллекта Стэнфордского Университета В 2008 году развитие продолжается в Willow Garage, научно- исследовательском институте/инкубаторе робототехники, совместно с более чем двадцатью сотрудничающими институтами. Ноды (узлы) не знают друг о друге, знают только о топиках. Легко перестроить сеть. Стартуем с определенным лаунч кофигом.
  4. ROS: Distributed Communication + sudo apt-get install ros-indigo-ros-base Spacenav Node

    Google Earth ROS Topic /controller/position Publisher Subscriber + Сообщения можно отправлять из консоли + В основном ноды написаны на питоне
  5. Код ноды очень простой # Чатик в десять строк import

    rospy from std_msgs.msg import String pub = rospy.Publisher('/pycon/2016/flood', String, queue_size=10) rospy.init_node('dmitry') r = rospy.Rate(10) # 10hz while not rospy.is_shutdown(): pub.publish("Hello PyCon") r.sleep()
  6. Distributed Parameter System Код ноды для правой ноги мало чем

    отличается от кода для левой ноги. Ноды простые, часто отличаются лишь настройками, но их очень много. Roslaunch: На каких машинах Какие ноды С какими параметрами запускаем <launch> <arg name="broadcast_addr" /> <arg name="spnav_path" default=" /dev/input/spacenavigator" /> <param name="/viewport/center" value=" 640x480+640+0" /> <node name="adhoc_browser" pkg="lg_common" type="adhoc_browser.py"> <param name="viewport" value="center"/> </node> </launch>
  7. Code reuse: deb, catkin_make • 1 задача - 1 нода,

    поэтому есть множество уже готовых нод • С catkin_make - легко собрать обычные deb пакеты • Можно использовать C++, Python, Java, Javascript • Есть куча уже написанных нод http://www.ros. org/browse/list.php ◦ Тестирование ◦ Видео/Аудио ◦ Драйверы устройств (Kinect, Leap Motion) ◦ Пользовательский интерфейс ◦ Картография/поиск пути ◦ Распознавание образов ◦ Обработка изображений
  8. Java Script: Roslibjs + Rosbridge • Одна библиотечка • Одна

    строчка в .launch файле И у вас готовый чатик или веб-морда для робота
  9. ROS Это легко и удобно и необязательно для роботов •

    Официальный сайт http://www.ros.org/ • Вики проекта http://wiki.ros.org/ • Список готовых нод http://www.ros.org/browse/list.php • Документация на ROSLib JS http://wiki.ros.org/roslibjs • Документация на ROSPy http://wiki.ros.org/rospy • Доклады с ежегодной конференции http://roscon.ros.org/