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

File metadata

File hashes

Hashes for frankz-0.19.0.7-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 e9e887ef041faf868b2d3dcddf527b93fe856d4438bcccdb032b90d9e52280b5
MD5 ec2ae3e83895ca07765ebeb3c196d93b
BLAKE2b-256 8b898fc0db851d07823df107d39c8b7a94262569ee8b0975fe3958138f94bb47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for frankz-0.19.0.7-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 dae6e23299603b5fb73502de8dd3013955829c4d9ddbb5b668e2a9b11db32220
MD5 5d02002fd8a834c8c751ad57fd9ad79d
BLAKE2b-256 83facb3feca07ea3e44f03b852b6f95705727b3b86dcefdaa9c6aafba3f69fc4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for frankz-0.19.0.7-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 306acc4bb80e66aba1f0304e22640e58ab1d832ab0315c435c6bdd6c82fbbad4
MD5 6fa9a6466d006f0eddc68a94fefcef46
BLAKE2b-256 9ba44734fd346a72b91ecbb8cfacbc0cf24aa9f980d22733872c93df431078f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for frankz-0.19.0.7-cp39-cp39-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 9072b78b7fd625692818696bc6359d04c59e91cbc8b936fd0d28fce94cac2430
MD5 51b92d0cb383cd257ed0e5980d1322c5
BLAKE2b-256 88ba9e92da0be63b06a6305b5c78ae0ce457f60c5c46190f4b8470e49e4148dc

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