Flat Object Grasping Library (FOG)  0.2.1
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Getting Started

The FOG library is structured in the modules listed here.

The easiest way to use the library is to create a ROS package which depends on the library and defines the main interface. An example of such a package is provided with the library as fog_ros package.

Defining the Interface

In order to define the interface for the FOG simply create your own interface class which inherits from the fog::Interface class and implements all the pure virtual functions. For example, you have to implement code of how to acquire the object's point cloud. It could be by subscribing to a ROS topic, by reading from a database using PCL etc, its your choice. See the detailed API of the class in order to implement the interface.

Grasping an Object

You main method should create a pointer to your interface and then should create a fog::FlatObjectGrasper object. Calling the main function of this class will start the whole pipeline for grasping the object. Notice, that probably you need pointers to Robot arm, hand or F/T sensor. FOG uses the Robot interfaces as defined in AUTh-ARL Core Stack, but this optional. If you want to use another API for communicating with your robots you can do so.

#include <your_pkg/interface.h>
#include <fog>
// ...
auto interface = std::make_shared<your_pkg::Interface>(arm_robot, hand_robot, sensor, arm_rviz);
fog::FlatObjectGrasper fog(interface);