Skip to main content

Frankz - Python wrapper for libfranka Franka robot control library

Project description

Frankz

Modern Python wrapper for Franka Research 3 robot control library.

Features

  • Joint Motion: Move robot to specific joint configurations with smooth trajectories
  • Trajectory Execution: Execute waypoint-based joint trajectories
  • Cartesian Control: Move end-effector to target poses in Cartesian space
  • Real-time Feedback: Monitor robot state and hardware status

Installation

pip install frankz

Requirements: Ubuntu 22.04/24.04, Python 3.9-3.12

Quick Start

Connect to your robot and move to a target pose:

import frankz
import numpy as np

# Your robot IP
robot_ip = "172.16.0.3"

# Check hardware status: is it realtime kernel? your ethernet is fast enough? (it will move)
if frankz.is_good_hardware(robot_ip):
    print("Robot ready for operation")

# Get current end-effector pose
pose = frankz.get_current_ee_pose(robot_ip)
print(f"Current position: {pose[:3, 3]}")

# Move to target joint configuration
target_joints = np.array([0.0, -0.785, 0.0, -2.356, 0.0, 1.571, 0.785])
frankz.move_to_joint(target_joints, robot_ip, max_velocity_factor=0.5)

Motion Examples

Joint Space Motion

# Simple joint move with custom speed
frankz.move_to_joint(
    target_joints,
    robot_ip,
    max_velocity_factor=0.3,      # 30% of max velocity
    max_acceleration_factor=0.3,   # 30% of max acceleration
    max_jerk_factor=0.3            # 30% of max jerk
)

Trajectory Following

# Execute multi-waypoint trajectory
waypoints = [
    np.array([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]),
    np.array([0.5, -0.5, 0.5, -0.5, 0.5, -0.5, 0.5]),
    np.array([0.0, -0.785, 0.0, -2.356, 0.0, 1.571, 0.785]),
]

frankz.move_joints_through_trajectory(waypoints, robot_ip)

Cartesian Motion

# Move end-effector to target pose
target_pose = np.eye(4)
target_pose[:3, 3] = [0.3, 0.0, 0.5]  # Set target position

frankz.move_ee_to(
    target_pose, robot_ip,
    max_trans_velocity_factor=0.5,   # Translation limits
    max_trans_acceleration_factor=0.5,
    max_trans_jerk_factor=0.5,
    max_rot_velocity_factor=0.5,     # Rotation limits
    max_rot_acceleration_factor=0.5,
    max_rot_jerk_factor=0.5
)

Version Compatibility

Frankz version follows libfranka versioning:

  • 0.19.0.X corresponds to libfranka 0.19.0
  • 0.20.0.X corresponds to libfranka 0.20.0

The fourth digit represents the frankz patch level for that libfranka version.

License

Apache 2.0

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

frankz-0.19.0.8-cp312-cp312-manylinux_2_39_x86_64.whl (10.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

frankz-0.19.0.8-cp311-cp311-manylinux_2_39_x86_64.whl (10.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

frankz-0.19.0.8-cp310-cp310-manylinux_2_39_x86_64.whl (10.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ x86-64

frankz-0.19.0.8-cp39-cp39-manylinux_2_39_x86_64.whl (10.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.39+ x86-64

File details

Details for the file frankz-0.19.0.8-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for frankz-0.19.0.8-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 ac3108ce2c0010ef97e5c956dad6c5b2b89abbe4eca68b51fb7e1f47149798c8
MD5 cfb837fd29b09aa60396e60204ec864f
BLAKE2b-256 fbb079012c9ed1b992d489ef24d92f3c772c06674181854b0ecd636d80b33cf2

See more details on using hashes here.

File details

Details for the file frankz-0.19.0.8-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for frankz-0.19.0.8-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 44d5b8258a159f8597ff7b7da38d399851e38ebf62b98aa6544c34d8728352df
MD5 b8fb0fa50be1e2cb833b9970f9d2e62d
BLAKE2b-256 bd8d40cef05762f4fb6d05fee40da0a9d401243376e035ed41ceec167ad26628

See more details on using hashes here.

File details

Details for the file frankz-0.19.0.8-cp310-cp310-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for frankz-0.19.0.8-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 3df4a843040399cd0ac660b96607ead99a9dae8839d0521909bff6db1a71bc27
MD5 dfb82d4bdd683436af0ce5b7d513ee8a
BLAKE2b-256 85629588cb623892c64c7777cfae8b4573b64150078f939687b1060991b5786d

See more details on using hashes here.

File details

Details for the file frankz-0.19.0.8-cp39-cp39-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for frankz-0.19.0.8-cp39-cp39-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 fc2f3c20cf1edba998e2f47f187644dfad3de6de41e292cfdd50442051cee949
MD5 c982b3c0f3adc3202ec4d1182c5628a3
BLAKE2b-256 48a343fdd9daf00b0249d4717b307dcb81b46f37269908f64d3b3d534564c5f7

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