What is 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:
- TIAGo’s Official ROS Wiki.
- Set of TIAGo tutorials in ROS and Gazebo.
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? Check it our here!
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:
- 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.
- 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.
- 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.
- 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.
- 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:
- Person detection (C++): ROS node using the OpenCV person detector based on an Adaboost cascade of HoG.
- Face detection (C++) Example of ROS node embedding OpenCV’s face detector, based on an Adaboost cascade of Haar features.
- 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 through the contact page on our website!
Find other guides and info in our blog as well.