TIAGo robot ROS Tutorial 4: OpenCV

Eager to program robotics applications? TIAGo robot’s simulation is open source and is available online: even if you don’t have the platform physically, you can work with it! The simulation is perfect for enhancing your coding abilities and also for getting started in robotics. TIAGo has a set of comprehensive tutorials of all levels to download its simulation and easily develop robotics applications.

Remember you have handy resources that PAL Robotics put available:

After the Tutorial 1 (Control), Tutorial 2 (Navigation), and Tutorial 3 (MoveIt!), the fourth open-source ROS Tutorial will give you the right means to start using OpenCV on TIAGo!

Breaking news! PAL Robotics’ Open Call for loaning TIAGo Robot to teams who want to participate to the 1st SciRoc Challenge has been extended until February 1st. Interested? 👉👉👉 http://erl.pal-robotics.com/

OpenCV_robotics-vision-ros-tutorialWhat is OpenCV?

OpenCV is an open-source library on computer vision and is a helpful tool for computational efficiency with a strong focus on real-time applications. The library has more than 47 thousand users worldwide and is broadly used in the field of advanced robotics. One key point of OpenCV is its flexibility to merge with ROS (the standard middleware for all PAL Robotics’ robots) to easily create computer vision applications out of the box.

How to use OpenCV on TIAGo robot

Teach TIAGo robot how to detect and track an object, a person, a face or the environment with these selected tools available at the OpenCV library. Get started in becoming the master of Computer Vision with TIAGo robot’s ROS simulation!

Beginner Level:

  1. opencv-tiago-robot-aruco_tutorial

    TIAGo robot learning to detect fiducial markers using the ArUco library.

    Track Sequential (C++): An easy way of detecting and tracking basic movements or shapes, in a static environment. This code gives a demonstration of some basic operations within OpenCV, to implement a simple tracker based on image subtraction, thresholding, morphological operations, and blob segmentation.

  2. Corner Detection (C++): This tutorial shows how to use the Shi-Tomasi and Harris corner detector algorithms, often used in the OpenCV library, changing two simple parameters.
  3. Find Keypoints (C++/Python): In order to track objects more effectively, or against a dynamic background, a method is to detect keypoints in a static image of the target object, create a keypoint profile, and match this against a feed of images. In this tutorial, you will be able to go through most of the feature detectors of OpenCV and to see how image sharpening and contrast affects the detection of features.
  4. Matching (C++/Python): This tutorial shows how to find matches between the keypoints detected and thereby see if the image contains a certain object, by using feature detection in two images.
  5. ArUco marker detection (C++): This tutorial is about teaching TIAGo robot to detect fiducial markers using the ArUco library and to get its 3D pose.

Advanced Level:

  1. opencv-tiago-robot-person_detection_02

    Person detection.

    Person detection (C++): ROS node using the OpenCV person detector based on an Adaboost cascade of HoG.

  2. Face detection (C++) Example of ROS node embedding OpenCV’s face detector, based on an Adaboost cascade of Haar features.
  3. Planar object detection and pose estimation (C++): Planar textured object detection based on feature matching between live video feed of TIAGo and a reference image of the object. The pose of the object is determined by homography estimation and provided the size of the object.

Share your creations with us!

We would love to see your awesome ideas turned into – a simulated – reality! Share your results with us by sending them to marketing@pal-robotics.com.

Find other tutorials on Control, Navigation, MoveIt! and PCL at TIAGo’s ROS Wiki and in our blog as well.

By | 2019-01-16T10:14:55+00:00 January 16th, 2019|Articles|