Object Pose Estimation in Robotics Using a Low-Cost RGB-D Camera - - PowerPoint PPT Presentation

object pose estimation in robotics using a low cost rgb d
SMART_READER_LITE
LIVE PREVIEW

Object Pose Estimation in Robotics Using a Low-Cost RGB-D Camera - - PowerPoint PPT Presentation

Object Pose Estimation in Robotics Using a Low-Cost RGB-D Camera Alexander Ganslandt & Andreas Svensson Background Picking up an object in a structured and predefined environment is no match for todays industrial robots The


slide-1
SLIDE 1

Object Pose Estimation in Robotics Using a Low-Cost RGB-D Camera

Alexander Ganslandt & Andreas Svensson

slide-2
SLIDE 2

Background

  • Picking up an object in a structured and predefined

environment is no match for today’s industrial robots

  • The task becomes more cumbersome when the objects

are moved by e.g. a human operator

  • With today's increasing demand for human-robot

interaction and cooperation, the robot needs to be able to adapt to unstructured environments

slide-3
SLIDE 3

Problem

  • Can we estimate the pose of an object i.e. position and

rotation using an RGB-D camera?

  • How accurately can we measure the pose of the object?
  • Can we transform the pose estimation into the robot’s

coordinate reference system?

slide-4
SLIDE 4

Contents

  • Basics

○ RGB-D Camera Introduction ○ Point Clouds and Point Cloud Library

  • Project Description and Results

○ Constructing Point Cloud Models ○ Object Pose Estimation ○ Connecting to a Robot

  • Future Work and Conclusion
slide-5
SLIDE 5

RGB-D Camera Introduction

  • RGB camera + Depth sensor 2.5 D
  • Time-of-Flight (laser, phase-shift)
  • Passive triangulation
  • Active triangulation (structured light)
slide-6
SLIDE 6
  • Small RGB-D camera using

structured light

  • Low-cost (around $149)
  • Uses Intel RealSense SDK

with lots of examples

  • Poor and incomplete

documentation

Intel RealSense SR300

slide-7
SLIDE 7

Point Cloud

  • Set of data points

in 3D

  • Can contain color

information

slide-8
SLIDE 8

Point Cloud Library (PCL)

  • Library for 2D/3D image and point cloud processing
  • Large scale, open source and cross-platform

○ Well written documentation ○ Great tutorials ○ Supports many point cloud formats (PCD OBJ PLY)

  • Written in C++

○ Some support for Visual Studio (2008 and 2010)

slide-9
SLIDE 9

Constructing Point Cloud Models

  • We need a 3D model of the object for the pose

estimation

  • Achieved by segmentation and merging point clouds

from different views

slide-10
SLIDE 10

Constructing Point Cloud Models

slide-11
SLIDE 11

Constructing Point Cloud Models

Segmentation

  • RANSAC to find and remove plane
  • Euclidean Cluster Extraction to extract point cloud of
  • bject
slide-12
SLIDE 12

Constructing Point Cloud Models

Random sample consensus (RANSAC)

  • Mainly used as an outlier detector
  • RANSAC to remove a plane:

○ Equation of a plane: ax+by+cz+d = 0 ○ Inliers are points in a close proximity of the plane ○ Find the set of inliers to the plane and remove them

slide-13
SLIDE 13

Constructing Point Cloud Models

Euclidean Cluster Extraction

  • Searches for the set of neighbors of a point that are

within a sphere

  • Uses a Kd-tree structure for finding the nearest

neighbors

slide-14
SLIDE 14

Constructing Point Cloud Models

slide-15
SLIDE 15

Constructing Point Cloud Models

Pairwise registration

  • Two consecutive segments have different rotation and

translation.

  • Pairwise registration tries to find the transformation

between the segments

  • Once the transformation has been found the point clouds

are merged and smoothed.

slide-16
SLIDE 16

Constructing Point Cloud Models

Pairwise registration - Finding the transformation

  • First a pose estimation algorithm is used to find a rough

transformation using a heavily downsampled version of the segment (more on this later)

  • Once a rough estimate of the transformation has been

found an Iterative Closest Point (ICP) algorithm is used to get a better estimate using the full size of the sample set

  • The point cloud in the second image is then transformed

to match the point cloud in the first image

slide-17
SLIDE 17

Constructing Point Cloud Models

Iterative Closest Point (ICP)

  • Used to minimize the distance between two point clouds.
  • Achieved by estimating a rotation R and translation t
  • This is done by minimizing a cost function:
  • Convergence is improved if the point clouds are initially

close

slide-18
SLIDE 18

Constructing Point Cloud Models

slide-19
SLIDE 19

Final Point Cloud Model

slide-20
SLIDE 20

Final Point Cloud Model

  • Extracted model is far from perfect

○ Hard to achieve a true 3D model of symmetric

  • bjects
  • Alternatively:

○ Create and use a CAD model of the object ○ Use 3D-scanning software (price) ○ Reconstruct the 3D image by using the RGB images

■ Extract matching features and use triangulation

slide-21
SLIDE 21

Object Pose Estimation

  • We want to estimate 6-DoF

○ Position of object (3-DoF) ○ Rotation of object (3-DoF)

slide-22
SLIDE 22

Pipeline - Input

slide-23
SLIDE 23

Pipeline - Downsample

slide-24
SLIDE 24

Pipeline - Remove largest plane

slide-25
SLIDE 25

Pipeline - Extract clusters

slide-26
SLIDE 26

Pipeline - Estimate normals

slide-27
SLIDE 27

Pipeline - Estimate features

  • Encode a points geometrical properties
  • We use Fast Point Feature Histograms (FPFH)

○ Looks at the k-neighborhood of each point ○ Computes features based on direction of normals

  • Many different point feature representations available

○ Viewpoint Feature Histogram (2010) ○ Color Point Pair Feature (2015)

slide-28
SLIDE 28

Pipeline - Estimate pose

slide-29
SLIDE 29

Pipeline - Estimate pose

slide-30
SLIDE 30

Pipeline - Estimate pose

slide-31
SLIDE 31

Pipeline - Estimate pose

slide-32
SLIDE 32

Pipeline - Estimate pose

slide-33
SLIDE 33

Pipeline - Estimate pose

slide-34
SLIDE 34

Pipeline - Estimate pose

slide-35
SLIDE 35

Pipeline - Estimate pose

slide-36
SLIDE 36

Results

slide-37
SLIDE 37

Results

slide-38
SLIDE 38

Connecting to a Robot

  • Find transformation from camera to robot coordinate

system

  • Euclidean transformation

○ Need at least 3 points expressed in both coordinate systems

  • Could be done automatically using pose estimation
  • Could also directly estimate pose of robot if it is visible
slide-39
SLIDE 39

Problem

  • Can we estimate the pose of an object i.e. position and

rotation using an RGB-D camera?

  • How accurately can we measure the pose of the object?
  • Can we translate the pose estimation into the robot’s

coordinate reference system?

slide-40
SLIDE 40

Future Work

  • Autonomous robot-camera calibration
  • Using RGB data in features
  • Estimating pose for multiple identical objects
  • Using multiple RGB-D cameras to avoid occlusions
slide-41
SLIDE 41

Thank you for listening!

Questions?