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.5-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.5-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.5-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.5-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.5-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for frankz-0.19.0.5-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 0f9565c608e18bc1bccf98d6111207de6ad7c3115daad20ac8a81753c5eb9507
MD5 e2c1ed9a6df7c2679df2a1127c37d67a
BLAKE2b-256 ac39b8a53a8d641ed72a8ad2c5f49daf088e61590b1e3ed0caf880593ae5ed9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for frankz-0.19.0.5-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 0cfbd4544d7a5f7807798c6f4e18524ac5bc699b17e123f317d4ca8dd15053ce
MD5 17f34100ab7f2b6acd748b24aa47d5e6
BLAKE2b-256 563603ca5bf0a42cdde3e6f35a71635c98ddaa8e605bbb6a9fd48e25ef51770c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for frankz-0.19.0.5-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 fdb2f35e3f3570a30bdeac4fb8e482c8da376d5e3287d56cc27d1a6b708e302c
MD5 5f8e26eabfc5e1899200cefa1f955faf
BLAKE2b-256 e6aa072a45040f5e4a29a40223ee7b9e334218975ac7925d5f56c196780ae97c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for frankz-0.19.0.5-cp39-cp39-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 ef24521f3eab2163214958d654bd78c706cdc21f51201c59c40dbde99ea3955a
MD5 aa738f457025a919d3d6d30d1d5fb8a1
BLAKE2b-256 73863bac79048d5925b584fb09baca6938b5964f656015dc11475d9ee4ca8e53

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