API Overview

Available APIs

API

Brief

flexiv::rdk::Device

Interface with the robot device(s).

flexiv::rdk::FileIO

Interface for file transfer with the robot. The robot must be put into IDLE mode when transferring files.

flexiv::rdk::Gripper

Interface with the robot gripper.

flexiv::rdk::Maintenance

Interface to carry out robot maintenance operations. The robot must be in IDLE mode when triggering any operations.

flexiv::rdk::Model

Interface to access certain robot kinematics and dynamics data.

flexiv::rdk::Robot

Main interface with the robot, containing several function categories and background services.

flexiv::rdk::Safety

Interface to change robot safety settings. The robot must be in IDLE mode when applying any changes. A password is required to authenticate this interface.

flexiv::rdk::Scheduler

Real-time scheduler that can simultaneously run multiple periodic tasks. Parameters for each task are configured independently.

flexiv::rdk::Tool

Interface to online update and interact with the robot tools. All changes made to the robot tool system will take effect immediately without needing to reboot. However, the robot must be put into IDLE mode when making these changes.

flexiv::rdk::WorkCoord

Interface to online update and interact with the robot’s work coordinates. All updates will take effect immediately without a power cycle. However, the robot must be in IDLE mode when applying changes.

Access by OS and programming language

The supported OS and programming languages can form various OS-language combinations like Linux-C++, Windows-Python, etc. In RDK, API access varies by such combination: Linux-C++ and macOS-C++ have full access to all APIs, while the other combinations have partial access as listed below:

API

Unix-C++

Windows-C++

Any-Python

flexiv::rdk::Device

Full

Full

Full

flexiv::rdk::FileIO

Full

Full

Full

flexiv::rdk::Gripper

Full

Full

Full

flexiv::rdk::Maintenance

Full

Full

Full

flexiv::rdk::Model

Full

Full

Full

flexiv::rdk::Robot

Full

Full

Partial (exclusion: functions marked as “Real-time”)

flexiv::rdk::Safety

Full

Full

Full

flexiv::rdk::Scheduler

Full

None

None

flexiv::rdk::Tool

Full

Full

Full

flexiv::rdk::WorkCoord

Full

Full

Full

Besides APIs, access to data structures and enums also varies by the OS-language combination:

Data Structures / Enums

Unix-C++

Windows-C++

Any-Python

flexiv::rdk::RobotInfo

Full

Full

Full

flexiv::rdk::RobotStates

Full

Full

Full

flexiv::rdk::PlanInfo

Full

Full

Full

flexiv::rdk::JPos

Full

Full

Full

flexiv::rdk::Coord

Full

Full

Full

flexiv::rdk::GripperParams

Full

Full

Full

flexiv::rdk::GripperStates

Full

Full

Full

flexiv::rdk::SafetyLimits

Full

Full

Full

flexiv::rdk::ToolParams

Full

Full

Full

flexiv::rdk::CoordType

Full

Full

Full

flexiv::rdk::OperationalStatus

Full

Full

Full

flexiv::rdk::Mode

Full

Full

Partial (exclusion: real-time modes)

Note

Unix means Linux and macOS.

API documentation

The complete and detailed API documentation of the latest release can be found at https://www.flexiv.com/software/rdk/api. The API documentation of a previous release can be generated manually using Doxygen. For example, on Linux:

sudo apt install doxygen-latex graphviz
cd flexiv_rdk
git checkout <previous_release_tag>
doxygen doc/Doxyfile.in

The generated API documentation is under flexiv_rdk/doc/html/ directory. Open any html file with your browser to view it.