Open Source Robot Vladim r Petr k vladko.petrik@gmail.com - - PowerPoint PPT Presentation

open source robot
SMART_READER_LITE
LIVE PREVIEW

Open Source Robot Vladim r Petr k vladko.petrik@gmail.com - - PowerPoint PPT Presentation

Robots Robotic Operating System Agile Infrastructure Open Source Robot Vladim r Petr k vladko.petrik@gmail.com http://alpaca.sh.cvut.cz November 3, 2014 1 / 20 Vladim r Petr k vladko.petrik@gmail.com Open Source Robot


slide-1
SLIDE 1

Robots Robotic Operating System Agile Infrastructure

Open Source Robot

Vladim´ ır Petr´ ık vladko.petrik@gmail.com

http://alpaca.sh.cvut.cz

November 3, 2014

1 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-2
SLIDE 2

Robots Robotic Operating System Agile Infrastructure

Table of Contents

1

Robots What is a typical Robot Interfaces Common Sensors

2

Robotic Operating System Introduction to ROS Why ROS? Examples

3

Agile Infrastructure Build server What to test Tests feedback

2 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-3
SLIDE 3

Robots Robotic Operating System Agile Infrastructure What is a typical Robot Interfaces Common Sensors

What is a typical Robot

Hardware entity which is able to move and sense Controlled by low-level architecture

Arduino Raspberry PI (RealTime kernel) VxWorks (RealTime OS)

Connected to computer

3 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-4
SLIDE 4

Robots Robotic Operating System Agile Infrastructure What is a typical Robot Interfaces Common Sensors

What is a typical Robot

Hardware entity which is able to move and sense Controlled by low-level architecture

Arduino Raspberry PI (RealTime kernel) VxWorks (RealTime OS)

Connected to computer

3 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-5
SLIDE 5

Robots Robotic Operating System Agile Infrastructure What is a typical Robot Interfaces Common Sensors

What is a typical Robot

Hardware entity which is able to move and sense Controlled by low-level architecture

Arduino Raspberry PI (RealTime kernel) VxWorks (RealTime OS)

Connected to computer

3 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-6
SLIDE 6

Robots Robotic Operating System Agile Infrastructure What is a typical Robot Interfaces Common Sensors

Mobile Robots

Controlled by velocity command Provides odometry information (number of wheel rotations) Can be integrated to estimate relative possition

4 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-7
SLIDE 7

Robots Robotic Operating System Agile Infrastructure What is a typical Robot Interfaces Common Sensors

Robotics manipulators

Controlled by position based trajectory command 1 Provides absolute (precise) position information It can be used to compute position of the end effector

1Video of robotics folding 5 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-8
SLIDE 8

Robots Robotic Operating System Agile Infrastructure What is a typical Robot Interfaces Common Sensors

Commonly used sensors

Camera Ultrasonic range sensor Laser scanner Xtion / Kinect / LeapMotion Is there a framework/standard for all of mentioned? Robotic Operating System

6 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-9
SLIDE 9

Robots Robotic Operating System Agile Infrastructure What is a typical Robot Interfaces Common Sensors

Commonly used sensors

Camera Ultrasonic range sensor Laser scanner Xtion / Kinect / LeapMotion Is there a framework/standard for all of mentioned? Robotic Operating System

6 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-10
SLIDE 10

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

ROS

6 years old, OSRF Ubuntu, [Arch Linux] Meta-operating system, midleware

Process communication Package management Hardware abstraction Language independence (Python, C++, Lisp)

7 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-11
SLIDE 11

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

ROS

6 years old, OSRF Ubuntu, [Arch Linux] Meta-operating system, midleware

Process communication Package management Hardware abstraction Language independence (Python, C++, Lisp)

7 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-12
SLIDE 12

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Package Management

Everything is organized in packages Package consists of several nodes (piece of code) Nodes comunicates (share information) which each other Example of package: sb image proc

Node: number detector Node: image divider

8 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-13
SLIDE 13

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Nodes communication

Publisher - Subscriber Architecture (Topic) Client - Server Architecture (Service) Rosparam for parametrization of nodes

9 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-14
SLIDE 14

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Nodes communication

Publisher - Subscriber Architecture (Topic) Client - Server Architecture (Service) Rosparam for parametrization of nodes

9 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-15
SLIDE 15

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Nodes communication

Publisher - Subscriber Architecture (Topic) Client - Server Architecture (Service) Rosparam for parametrization of nodes

9 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-16
SLIDE 16

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Nodes communication advance

Services are powerfull but not suitable for longtime goals. ActionLib Suitable for longtime running tasks ( > 1 sec). Build on top of Topics. Non blocking. Preemptable. Example GoTo

Plan collision free path Parametrize and filter path to trajectory Execute trajectory

10 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-17
SLIDE 17

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Nodes communication advance

Services are powerfull but not suitable for longtime goals. ActionLib Suitable for longtime running tasks ( > 1 sec). Build on top of Topics. Non blocking. Preemptable. Example GoTo

Plan collision free path Parametrize and filter path to trajectory Execute trajectory

10 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-18
SLIDE 18

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Nodes communication advance

Services are powerfull but not suitable for longtime goals. ActionLib Suitable for longtime running tasks ( > 1 sec). Build on top of Topics. Non blocking. Preemptable. Example GoTo

Plan collision free path Parametrize and filter path to trajectory Execute trajectory

10 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-19
SLIDE 19

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Nodes communication advance

Services are powerfull but not suitable for longtime goals. ActionLib Suitable for longtime running tasks ( > 1 sec). Build on top of Topics. Non blocking. Preemptable. Example GoTo

Plan collision free path Parametrize and filter path to trajectory Execute trajectory

10 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-20
SLIDE 20

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Why ROS?

Thats all. Nothing special. So why is ROS used across whole robotics comunity? Open Source and simple to use Great marketing (PR2 Robot, turtlebot) Many packages maintained by large community. Interesting for academic reasarchers as reference. Many ”core” packages for visualization and common robotics tasks.

11 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-21
SLIDE 21

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Why ROS?

Thats all. Nothing special. So why is ROS used across whole robotics comunity? Open Source and simple to use Great marketing (PR2 Robot, turtlebot) Many packages maintained by large community. Interesting for academic reasarchers as reference. Many ”core” packages for visualization and common robotics tasks.

11 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-22
SLIDE 22

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Why ROS?

Thats all. Nothing special. So why is ROS used across whole robotics comunity? Open Source and simple to use Great marketing (PR2 Robot, turtlebot) Many packages maintained by large community. Interesting for academic reasarchers as reference. Many ”core” packages for visualization and common robotics tasks.

11 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-23
SLIDE 23

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Visualization package

3D visualization tool for ROS 2 Marker, Markers Array Point cloud Images 2D / 3D Map . . .

2Video Polygon in RVIZ 12 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-24
SLIDE 24

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Example of transformations

Transformations in tree structure Any transformation relative to any frame Buffered in time

13 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-25
SLIDE 25

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Questions ROS

Questions? How would you do the robotics mapping? Create low level controller connectable to PC Write ROS Node sending cmd vel to PC Run odometry integration node which has been already written Run mapping and navigation nodes which have been already written 3

3Video of PR2 Mapping and Mapping Real 14 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-26
SLIDE 26

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Questions ROS

Questions? How would you do the robotics mapping? Create low level controller connectable to PC Write ROS Node sending cmd vel to PC Run odometry integration node which has been already written Run mapping and navigation nodes which have been already written 3

3Video of PR2 Mapping and Mapping Real 14 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-27
SLIDE 27

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Questions ROS

Questions? How would you do the robotics mapping? Create low level controller connectable to PC Write ROS Node sending cmd vel to PC Run odometry integration node which has been already written Run mapping and navigation nodes which have been already written 3

3Video of PR2 Mapping and Mapping Real 14 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-28
SLIDE 28

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Questions ROS

Questions? How would you do the robotics mapping? Create low level controller connectable to PC Write ROS Node sending cmd vel to PC Run odometry integration node which has been already written Run mapping and navigation nodes which have been already written 3

3Video of PR2 Mapping and Mapping Real 14 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-29
SLIDE 29

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

Questions ROS

Questions? How would you do the robotics mapping? Create low level controller connectable to PC Write ROS Node sending cmd vel to PC Run odometry integration node which has been already written Run mapping and navigation nodes which have been already written 3

3Video of PR2 Mapping and Mapping Real 14 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-30
SLIDE 30

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

ROS largest problem?

Let’s criticise ROS is new and thus changing too fast Too many not maintained packages Many academic reasearchers provides their code as ROS package Code / Publish / Throw away Is there any solution how to separate well designed codes? Agile development

15 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-31
SLIDE 31

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

ROS largest problem?

Let’s criticise ROS is new and thus changing too fast Too many not maintained packages Many academic reasearchers provides their code as ROS package Code / Publish / Throw away Is there any solution how to separate well designed codes? Agile development

15 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-32
SLIDE 32

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

ROS largest problem?

Let’s criticise ROS is new and thus changing too fast Too many not maintained packages Many academic reasearchers provides their code as ROS package Code / Publish / Throw away Is there any solution how to separate well designed codes? Agile development

15 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-33
SLIDE 33

Robots Robotic Operating System Agile Infrastructure Introduction to ROS Why ROS? Examples

ROS largest problem?

Let’s criticise ROS is new and thus changing too fast Too many not maintained packages Many academic reasearchers provides their code as ROS package Code / Publish / Throw away Is there any solution how to separate well designed codes? Agile development

15 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-34
SLIDE 34

Robots Robotic Operating System Agile Infrastructure Build server What to test Tests feedback

Build server

Goal: Needs something to build required codes periodically and checking for possible defects. Build server Connected to git and issue tracker Will automatically report errors

16 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-35
SLIDE 35

Robots Robotic Operating System Agile Infrastructure Build server What to test Tests feedback

Build server

Goal: Needs something to build required codes periodically and checking for possible defects. Build server Connected to git and issue tracker Will automatically report errors

16 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-36
SLIDE 36

Robots Robotic Operating System Agile Infrastructure Build server What to test Tests feedback

Build server

Goal: Needs something to build required codes periodically and checking for possible defects. Build server Connected to git and issue tracker Will automatically report errors

16 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-37
SLIDE 37

Robots Robotic Operating System Agile Infrastructure Build server What to test Tests feedback

Build server

Goal: Needs something to build required codes periodically and checking for possible defects. Build server Connected to git and issue tracker Will automatically report errors

16 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-38
SLIDE 38

Robots Robotic Operating System Agile Infrastructure Build server What to test Tests feedback

What to test

”Functionality is just side effect of well designed code.” Dependencies (ros dependency checker) Unit tests (gtest) Integration tests (rostest)

17 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-39
SLIDE 39

Robots Robotic Operating System Agile Infrastructure Build server What to test Tests feedback

Tests feedback

How to motivate programmers to use test driven development? They are experienced and know it is needed We will use some sort of measurement function and specify threshold Test Coverage Tools

18 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-40
SLIDE 40

Robots Robotic Operating System Agile Infrastructure Build server What to test Tests feedback

Tests feedback

How to motivate programmers to use test driven development? They are experienced and know it is needed We will use some sort of measurement function and specify threshold Test Coverage Tools

18 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-41
SLIDE 41

Robots Robotic Operating System Agile Infrastructure Build server What to test Tests feedback

Tests feedback

How to motivate programmers to use test driven development? They are experienced and know it is needed We will use some sort of measurement function and specify threshold Test Coverage Tools

18 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-42
SLIDE 42

Robots Robotic Operating System Agile Infrastructure Build server What to test Tests feedback

Tests feedback

How to motivate programmers to use test driven development? They are experienced and know it is needed We will use some sort of measurement function and specify threshold Test Coverage Tools

18 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-43
SLIDE 43

Robots Robotic Operating System Agile Infrastructure Build server What to test Tests feedback

Conclusion

To conclude: ROS is great tool but it is not perfect. It provides core infrastructure simplifying the development. Hardware abstraction and comunity packages. There is nothing better yet. But: ROS is under heavy development. Changing too often and usually versions incompatibility. Many non tested packages. In Alpaca Robotics Team we decided to focus on agile development to lowerize this problems for our purposes.

19 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-44
SLIDE 44

Robots Robotic Operating System Agile Infrastructure Build server What to test Tests feedback

Questions

Questions? Thanks for attention.

20 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot

slide-45
SLIDE 45

Robots Robotic Operating System Agile Infrastructure Build server What to test Tests feedback

Questions

Questions? Thanks for attention.

20 / 20 Vladim´ ır Petr´ ık vladko.petrik@gmail.com Open Source Robot