Spring 2018 CIS 693, EEC 693, EEC 793: Autonomous Intelligent Robotics Instructor: Shiqi Zhang http://eecs.csuohio.edu/~szhang/teaching/18spring/
Ubuntu 14.04 + ROS Indigo 2
ROS: Robot Operatins System 3
Intelligent robot Action selection Motion Planning Sensing Navigation Learning Modeling the world Obstacle avoidance Multirobot coordination Perception Cognition Action Sensors Actuators External world 4
Example: TurtleBot Microsoft Kinect 'create' base TurtleBot 5
Software architecture ● Software architecture is important for robotics because: – Large code-bases – Integration of many different (dynamic) set of devices – Many different options for a single component 6
Controlling robots using code 7
Straightforward approach ● Write a program to perform robot's 'cognitive' functions ● The program includes: – Code to interface with the camera – Code to interface with the robot base – Code to understand the images and control the robot base ● Once implemented, the system works well and efficiently 8
Straightforward approach Specific Serial programming camera driver specific to 'Create' SOFTWARE HARDWARE USB-USB USB-Serial This approach suffers from a problem. Any ideas? This approach suffers from a problem. Any ideas? 9
An example problem... ● We later realized 'create' base is too slow (0.5 m/s). ● How easy it is to use a Segway base instead (up to 1.7 m/s)? Could I have implemented my code differently to make Could I have implemented my code differently to make this transition easier? this transition easier? 10
An example problem... ● We later realized 'create' base is too slow (0.5 m/s). ● How easy it is to use a Segway base instead (up to 1.7 m/s)? Could I have implemented my code differently to make Could I have implemented my code differently to make this transition easier? this transition easier? 11
Using robot middleware Provide an abstraction layer and drivers between Provide an abstraction layer and drivers between computation and embodiment computation and embodiment 12
Using robot middleware middleware middleware SOFTWARE HARDWARE USB-Serial USB-USB 13
The advantages ● Reuseability – Reuse existing code and drivers written for other robots, platforms and/or research projects ● Portability – Easier to switch to another robotic platform ● Easier to expand functionality 14
ROS (Robot Operating System) ● A very popular robot middleware package 15 www.ros.com
ROS (Robot Operating System) 16
ROS (Robot Operating System) ● A very the most popular robot middleware package ● Peer-to-peer architecture among nodes over a network – A node is a process that performs some computation – Topics are named buses over which nodes exchange messages – Nodes communicate with each other by publishing and subscribing to topics – Services enable request-response communications between nodes 17
ROS nodes, messages, and topics response Node Node Service Node request Node Node Node Topic publish subscribe Node Node Node 18
How it works... Ball following USB-Serial USB-USB 19
How it works... vision control ROS master camera 'create' USB-Serial USB-USB 20
How it works... I will receive images I will receive blobs on topic "image" and on topic "blobs" vision control publish blobs on topic and publish "blobs" velocities on topic "cmd_vel" ROS master I will publish I will receive images on velocities on camera 'create' topic "image" topic "cmd_vel" USB-Serial USB-USB 21
How it works... blobs on 'blobs' vision control images Velocities on ROS master on 'image' 'cmd_vel' camera 'create' SET UP COMMUNICATIONS USB-Serial USB-USB 22
To summarize... ● Robot middleware improves software's reusability and portability ● ROS is a very popular robot middleware – Thousands of packages – More than 100 robot platforms ● Important ROS concepts – Node – Topic – Message – Service 23
Reading materials ● ROS tutorials http://www.ros.org/wiki/ROS/Tutorials – ● ROS paper: 'ROS: an open-source Robot Operating System', 2009 – 24
Demo 25
THE END 26
Recommend
More recommend