Skip to main content

Python client for the Franka Desk REST API (FCI, joints, safety, configuration)

Project description

franka_desk

Python client for the Franka Desk REST API. Automates the web-UI steps required before libfranka / franka_ros2 can connect to a Franka Research robot: taking the control token, unlocking the joints, and activating the FCI (Franka Control Interface).

Installation

pip install franka_desk

Requires Python ≥ 3.11 and requests. For local development:

pip install -e ".[dev]"   # editable install with pytest + responses

Usage

from franka_desk import FrankaDeskClient

# Context manager: brings the robot up on enter, tears it down on exit.
with FrankaDeskClient("https://<robot-ip>", "<username>", "<password>") as client:
    # FCI is active and joints are unlocked here — connect libfranka / franka_ros2.
    ...
# On exit: FCI deactivated, joints locked, control token released.

Or drive the lifecycle manually:

client = FrankaDeskClient("https://<robot-ip>", "<username>", "<password>")
client.bring_up()      # take token, wait until ready, unlock joints, activate FCI
# ... run your control loop ...
client.tear_down()     # deactivate FCI, lock joints, release token

Individual operations (take_control_token, unlock_joints, activate_fci, reboot, get_system_state, …) are also exposed for finer control.

Errors

All failures raise a subclass of FrankaDeskError, so you can catch broadly or narrowly:

  • AuthenticationError — wrong username/password.
  • UserStopEngaged — the user/emergency stop is pressed (joints can't unlock).
  • TokenUnavailable / TokenExpired — the control token is held elsewhere or stale.
  • FrankaConnectionError / ServiceUnavailable / OperationError — transport / 5xx / operation failures.

ROS 2 integration

The franka_desk_bringup package wraps this client in a ROS 2 node (fci_activator) that activates the FCI on startup and publishes the robot's readiness.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

franka_desk-0.1.0.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

franka_desk-0.1.0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file franka_desk-0.1.0.tar.gz.

File metadata

  • Download URL: franka_desk-0.1.0.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for franka_desk-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a6bba446d4a338ceda52b8b24939ba8b6ba957ae91c636052b0c9a2612b391f0
MD5 a593ec5ee4c00ce29619da38181103ab
BLAKE2b-256 4e0417c2422156bbb191b7da8c63db8db4b9dbeac416c34a84610df725d7ea42

See more details on using hashes here.

File details

Details for the file franka_desk-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: franka_desk-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for franka_desk-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 61130218acf0245f9dc31ff587ea3425e4540069e74dbc9d6506e0c175c000ff
MD5 993e559d4bb48753fc3d723cb7ff127a
BLAKE2b-256 5f718e9bc5027b5999676ce29db6907b3496945ef07285b53483f014c6916cb2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page