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 ``_. 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 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.