CS 378: Autonomous Intelligent Robotics Instructor: Jivko Sinapov - - PowerPoint PPT Presentation

cs 378 autonomous intelligent robotics
SMART_READER_LITE
LIVE PREVIEW

CS 378: Autonomous Intelligent Robotics Instructor: Jivko Sinapov - - PowerPoint PPT Presentation

CS 378: Autonomous Intelligent Robotics Instructor: Jivko Sinapov http://www.cs.utexas.edu/~jsinapov/teaching/cs378/ Introduction to Point Cloud Library (PCL) Announcements Homework 6 is out, due 4/5 Announcements Homework 6 is out, due 4/5


slide-1
SLIDE 1

CS 378: Autonomous Intelligent Robotics

Instructor: Jivko Sinapov

http://www.cs.utexas.edu/~jsinapov/teaching/cs378/

slide-2
SLIDE 2

Introduction to Point Cloud Library (PCL)

slide-3
SLIDE 3

Announcements

Homework 6 is out, due 4/5

slide-4
SLIDE 4

Announcements

Homework 6 is out, due 4/5

slide-5
SLIDE 5

Final Project Timeline

  • Project Proposal due: Mar. 29th Apr. 1st
  • Project Presentations / Demos: Last Week
  • f Class (May 3rd and 5th)
  • Final Report due: May 11th
slide-6
SLIDE 6

Project Proposal

  • Format: PDF, single spaced
  • Submit on Canvas
  • Also, post PDF on Discussion Forum,

state the project name and team members

slide-7
SLIDE 7

Installing our code base

  • Github page:

– https://github.com/utexas-bwi/bwi

slide-8
SLIDE 8

Introduction to Point Cloud Library (PCL)

slide-9
SLIDE 9

Main References

  • “Rusu, Radu Bogdan, and Steve Cousins. "3d is here:

Point cloud library (pcl)." Robotics and Automation (ICRA), 2011 IEEE International Conference on. IEEE, 2011.”

  • “Tutorial: Point Cloud Library – USC Robotics Research

Lab”

slide-10
SLIDE 10

Why PCL?

slide-11
SLIDE 11

The Impact of OpenCV

slide-12
SLIDE 12

Traditional 3D sensors

slide-13
SLIDE 13

Latest Technology

slide-14
SLIDE 14

3D is now cheap!

slide-15
SLIDE 15

What is PCL?

 Open Source C++ Library:

 http://pointclouds.org/

 Cross-platform*

 (Ubuntu 12.04+, Windows 7+, Mac)

 Strives to be the equivalent of OpenCV for 3D

slide-16
SLIDE 16

Who is developing it?

slide-17
SLIDE 17

Who is paying for it?

slide-18
SLIDE 18

What is a PCL point cloud?

# .PCD v0.7 - Point Cloud Data file format VERSION 0.7 FIELDS x y z SIZE 4 4 4 TYPE F F F COUNT 1 1 1 WIDTH 2500 HEIGHT 1 VIEWPOINT 0 0 0 1 0 0 0 POINTS 2500 DATA ascii

  • 0.0017353802 0.063134596 -0.047117598
  • 0.00391143 0.064091198 -0.047013

0.00073380599 0.064106099 -0.047437999 0.0021609101 0.063522704 -0.047437999 0.0072039799 0.063331202 -0.0471754

  • 0.0013178901 0.065206803 -0.0471658

0.00238145 0.0648202 -0.047421999 0.00742169 0.064781599 -0.0471754

  • 0.00240529 0.065845296 -0.046584301

0.0021517898 0.0657662 -0.047015704 . .

slide-19
SLIDE 19

Types of Point Clouds

 XYZ:

slide-20
SLIDE 20

Types of Point Clouds

 XYZRGB:

slide-21
SLIDE 21

Types of Point Clouds

 XYZ+Normals:

slide-22
SLIDE 22

PCL Breakdown

slide-23
SLIDE 23

PCL Breakdown

slide-24
SLIDE 24

Getting a Point Cloud from an OpenNI Sensor

 Code sample and Demo

slide-25
SLIDE 25

PCL Breakdown

slide-26
SLIDE 26

Downsampling a Point Cloud

slide-27
SLIDE 27

Change Detection using Octree

slide-28
SLIDE 28

Octrees

An octree is a tree data structure in which each internal node has exactly eight children. Octrees are most often used to partition a three dimensional space by recursively subdividing it into eight

  • ctants. Octrees are the three-dimensional analog of quadtrees.
slide-29
SLIDE 29

Octrees

Application: change detection

slide-30
SLIDE 30

Segmentation

slide-31
SLIDE 31

Example: finding the floor and the table

slide-32
SLIDE 32

Robots and Tables

slide-33
SLIDE 33

An Example in 2D

slide-34
SLIDE 34

An Example in 2D

slide-35
SLIDE 35

An Example in 2D

slide-36
SLIDE 36

An Example in 2D

slide-37
SLIDE 37

An Example in 2D

slide-38
SLIDE 38

An Example in 2D

slide-39
SLIDE 39

An Example in 2D

slide-40
SLIDE 40

An Example in 2D

slide-41
SLIDE 41

An Example in 2D

slide-42
SLIDE 42

An Example in 2D

...and so on until line stops changing

slide-43
SLIDE 43

RANSAC

“Random sample consensus (RANSAC) is an iterative method to estimate parameters of a mathematical model from a set of observed data which contains

  • utliers. “ - Wikipedia
slide-44
SLIDE 44

RANSAC

[https://upload.wikimedia.org/wikipedia/commons/c/c0/RANSAC_LINIE_Animiert.gif]

slide-45
SLIDE 45

RANSAC

[http://www.visual-experiments.com/blog/wp-content/uploads/2012/04/ransac_line_fitting1.gif]

slide-46
SLIDE 46

Finding a plane using RANSAC

slide-47
SLIDE 47

Cylinder Detection with RANSAC

https://www.youtube.com/watch?v=tasdvsnGCH0

slide-48
SLIDE 48

Cluster Extraction

slide-49
SLIDE 49

Cluster Extraction

slide-50
SLIDE 50

Cluster Extraction

Cluster 1 Cluster 2

slide-51
SLIDE 51

Cluster Extraction in PCL

  • Code example
slide-52
SLIDE 52

Further Applications

  • Obstacle Detection:

– https://www.youtube.com/watch?v=jHKzBMK k4hY

  • Tracking 3D objects:

– https://www.youtube.com/watch?v=NzRME9 ZEOnY

slide-53
SLIDE 53

Resources

  • Main website: https://ointclouds.org
  • Tutorials:

http://pointclouds.org/documentation/tutorials/

  • API: http://docs.pointclouds.org/1.7.2/
  • Blog: http://pointclouds.org/blog/
slide-54
SLIDE 54
slide-55
SLIDE 55
slide-56
SLIDE 56

THE END

slide-57
SLIDE 57