Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

xArm-Developer/xArm-Python-SDK

Open more actions menu

Repository files navigation

xArm-Python-SDK

PyPI Downloads

Overview

xArm Python SDK

Caution

  • Please keep away from the robot arm to avoid personal injury or equipment damage.
  • Make sure to do a safety assessment before moving to prevent collisions.
  • Protect the arm before unlocking the joint.

Installation

  you can run examples without installation.Only Python3 is supported.

  • Install from source code
    • download
      git clone https://github.com/xArm-Developer/xArm-Python-SDK.git
      cd xArm-Python-SDK
    • install
      • install with build
        pip install build
        python -m build
        pip install dist/xarm_python_sdk-1.16.0-py3-none-any.whl
      • install with source code
        pip install .
  • Install from pypi
    pip install xarm-python-sdk

Doc

Update Summary

  • 1.17.0

    • Change some API names
  • 1.16.0

    • Added parameter to support get raw data of the Six-axis Force Torque Sensor
    • Added an interface to control xArm Gripper G2
    • Optimize the interface for controlling BIO Gripper G2
    • Extend the get_joint_states interface
  • 1.15.0

    • Added the Six-axis Force Torque Sensor collision detection related interfaces
    • Added support for the new version of BIO Gripper control interface
  • 1.14.7

    • Fixed the problem that single joint or direction movement fails in some cases (valid from firmware 2.5.0)
    • Added standard ModbusTcp client and Gcode client
    • GPIO control supports immediate execution
    • Support new version of vacuum gripper
    • Support the studio-2.5.0 blockly project conversion to python
  • 1.13.30

    • Supports obtaining unsaved trajectory recording duration
    • Fix the abnormal path of running blockly program in some cases
    • Fix the return format of getting C23 and C38 errors
    • Supports obtaining identification status
  • 1.13.19

    • Friction identification supports xarm7_mirror model
    • Fix the abnormal return value of blockly conversion robotiq related interface
  • 1.13.0

    • Compatible with the standard Modbus TCP protocol, providing part of the standard Modbus TCP protocol interface
  • 1.12.2

    • Support partial Task feedback (requires firmware version greater than or equal to v2.1.0)
  • 1.11.6

    • Correct the ambiguity that the set_position_aa interface is true when both relative and is_tool_coord are true. After the correction, when is_tool_coord is true, relative is invalid (previously is_tool_coord was invalid when relative was true)
  • 1.11.5

    • Optimization pause time is too long (wait=true)
    • Add common motion api (Enabled after firmware version 1.11.100)
    • The Cartesian motion-related interface adds the motion_type parameter to determine the planning method (Enabled after firmware version 1.11.100)

API Change List

OLD API NAME NEW API NAME
set_impedance set_ft_sensor_admittance_parameters
set_impedance_mbk set_ft_sensor_admittance_parameters
set_impedance_config set_ft_sensor_admittance_parameters
set_force_control_pid set_ft_sensor_force_parameters
config_force_control set_ft_sensor_force_parameters
ft_sensor_set_zero set_ft_sensor_zero
ft_sensor_iden_load iden_ft_sensor_load_offset
ft_sensor_cali_load set_ft_sensor_load_offset
ft_sensor_enable set_ft_sensor_enable
ft_sensor_app_set set_ft_sensor_mode
ft_sensor_app_get get_ft_sensor_mode
get_linear_track_registers get_linear_motor_registers
get_linear_track_pos get_linear_motor_pos
get_linear_track_status get_linear_motor_status
get_linear_track_error get_linear_motor_error
get_linear_track_is_enabled get_linear_motor_is_enabled
get_linear_track_on_zero get_linear_motor_on_zero
get_linear_track_sci get_linear_motor_sci
get_linear_track_sco get_linear_motor_sco
clean_linear_track_error clean_linear_motor_error
set_linear_track_enable set_linear_motor_enable
set_linear_track_speed set_linear_motor_speed
set_linear_track_back_origin set_linear_motor_back_origin
set_linear_track_pos set_linear_motor_pos
set_linear_track_stop set_linear_motor_stop
get_suction_cup get_vacuum_gripper
set_suction_cup set_vacuum_gripper
shutdown_system system_control
get_ik get_inverse_kinematics
get_fk get_forward_kinematics
set_sleep_time set_pause_time
get_gpio_digital get_tgpio_digital
set_gpio_digital set_tgpio_digital
get_gpio_analog get_tgpio_analog

   Before running the example, please modify the IP in robot.conf to corresponding IP you want to control.

  • 2001-move_joint --> xarm5 --- xarm6 --- xarm7
  • 2002-move_joint --> xarm5 --- xarm6 --- xarm7
  • 2003-move_joint --> xarm5 --- xarm6 --- xarm7
  • 2004-move_joint --> xarm5 --- xarm6 --- xarm7
  • 2005-move_arc_joint --> xarm5 --- xarm6 --- xarm7
  • Import

    from xarm.wrapper import XArmAPI
    arm = XArmAPI('COM5')
    arm = XArmAPI('192.168.1.113')
    arm = XArmAPI('192.168.1.113', do_not_open=False)
    arm = XArmAPI('192.168.1.113', is_radian=False)
  • Connect/Disconnect

    arm.connect(...)
    arm.disconnect()
  • Move

    arm.reset(...)
    arm.set_position(...)
    arm.set_servo_angle(...)
    arm.set_servo_angle_j(...)
    arm.set_servo_cartesian(...)
    arm.move_gohome(...)
    arm.move_circle(...)
    arm.emergency_stop()
    arm.set_position_aa(...)
    arm.set_servo_cartesian_aa(...)
    arm.vc_set_joint_velocity(...)
    arm.vc_set_cartesian_velocity(...)
  • Set

    arm.set_servo_attach(...)
    arm.set_servo_detach(...)
    arm.set_state(...)
    arm.set_mode(...)
    arm.motion_enable(...)
    arm.set_pause_time(...)
  • Get

    arm.get_version()
    arm.get_state()
    arm.get_is_moving()
    arm.get_cmdnum()
    arm.get_err_warn_code()
    arm.get_position(...)
    arm.get_servo_angle(...)
    arm.get_position_aa(...)
    arm.get_pose_offset(...)
  • Setting

    arm.set_tcp_offset(...)
    arm.set_tcp_jerk(...)
    arm.set_tcp_maxacc(...)
    arm.set_joint_jerk(...)
    arm.set_joint_maxacc(...)
    arm.set_tcp_load(...)
    arm.set_collision_sensitivity(...)
    arm.set_teach_sensitivity(...)
    arm.set_gravity_direction(...)
    arm.config_tgpio_reset_when_stop(...)
    arm.config_cgpio_reset_when_stop(...)
    arm.set_report_tau_or_i(...)
    arm.set_self_collision_detection(...)
    arm.set_collision_tool_model(...)
    arm.clean_conf()
    arm.save_conf()
  • Gripper/Gripper G2

    arm.set_gripper_enable(...)
    arm.set_gripper_mode(...)
    arm.set_gripper_speed(...)
    arm.set_gripper_position(...)
    arm.get_gripper_position()
    arm.get_gripper_err_code()
    arm.clean_gripper_error()
    
    # only Gripper G2
    arm.get_gripper_g2_position()
    arm.set_gripper_g2_position(...)
  • BIO Gripper

    arm.set_bio_gripper_enable(...)
    arm.set_bio_gripper_speed(...)
    arm.open_bio_grippe(...)
    arm.close_bio_gripper(...)
    arm.get_bio_gripper_status()
    arm.get_bio_gripper_error()
    arm.clean_bio_gripper_error()
    
    # only BIO Gripper G2
    arm.get_bio_gripper_g2_position()
    arm.set_bio_gripper_g2_position(...)
  • RobotIQ Gripper

    arm.robotiq_reset()
    arm.robotiq_set_activate(...)
    arm.robotiq_set_position(...)
    arm.robotiq_open(...)
    arm.robotiq_close(...)
    arm.robotiq_get_status(...)
  • Modbus of the end tools

    arm.set_tgpio_modbus_timeout(...)
    arm.get_tgpio_modbus_timeout(...)
    arm.set_tgpio_modbus_baudrate(...)
    arm.get_tgpio_modbus_baudrate(...)
    arm.getset_tgpio_modbus_data(...)
  • GPIO

    # Tool GPIO
    arm.get_tgpio_digital(...)
    arm.set_tgpio_digital(...)
    arm.get_tgpio_analog(...)
    arm.set_tgpio_digital_with_xyz(...)
    # Controller GPIO
    arm.get_cgpio_digital(...)
    arm.get_cgpio_analog(...)
    arm.set_cgpio_digital(...)
    arm.set_cgpio_analog(...)
    arm.set_cgpio_digital_input_function(...)
    arm.set_cgpio_digital_output_function(...)
    arm.get_cgpio_state()
    arm.set_cgpio_digital_with_xyz(...)
    arm.set_cgpio_analog_with_xyz(...)
  • Linear Motor

    arm.get_linear_motor_pos()
    arm.get_linear_motor_status()
    arm.get_linear_motor_error()
    arm.get_linear_motor_is_enabled()
    arm.get_linear_motor_on_zero()
    arm.get_linear_motor_sci()
    arm.get_linear_motor_sco()
    
    arm.clean_linear_motor_error(...)
    arm.set_linear_motor_enable(...)
    arm.set_linear_motor_speed(...)
    arm.set_linear_motor_back_origin(...)
    arm.set_linear_motor_pos(...)
    arm.set_linear_motor_stop(...)
  • FT Sensor

    arm.set_ft_sensor_enable(...)
    arm.set_ft_sensor_mode(...)
    arm.get_ft_sensor_mode(...)
    arm.set_ft_sensor_zero(...)
    arm.iden_ft_sensor_load_offset(...)
    arm.set_ft_sensor_load_offset(...)
    arm.set_ft_sensor_admittance_parameters(...)
    arm.set_ft_sensor_force_parameters(...)
    arm.get_ft_sensor_data(...)
    arm.get_ft_senfor_config(...)
    arm.get_ft_sensor_error(...)
  • Other

    arm.set_pause_time(...)
    arm.system_control(...)
    arm.clean_error()
    arm.clean_warn()
    arm.set_counter_reset()
    arm.set_counter_increase(...)
  • Register/Release

    arm.register_report_callback(...)
    arm.register_report_location_callback(...)
    arm.register_connect_changed_callback(callback)
    arm.register_state_changed_callback(callback)
    arm.register_mode_changed_callback(callback)
    arm.register_mtable_mtbrake_changed_callback(callback)
    arm.register_error_warn_changed_callback(callback)
    arm.register_cmdnum_changed_callback(callback)
    arm.register_temperature_changed_callback(callback)
    arm.register_count_changed_callback(callback)
    arm.release_report_callback(callback)
    arm.release_report_location_callback(callback)
    arm.release_connect_changed_callback(callback)
    arm.release_state_changed_callback(callback)
    arm.release_mode_changed_callback(callback)
    arm.release_mtable_mtbrake_changed_callback(callback)
    arm.release_error_warn_changed_callback(callback)
    arm.release_cmdnum_changed_callback(callback)
    arm.release_temperature_changed_callback(callback)
    arm.release_count_changed_callback(callback)
  • Property

    arm.connected
    arm.default_is_radian
    arm.version
    arm.position
    arm.last_used_position
    arm.tcp_speed_limit
    arm.tcp_acc_limit
    arm.last_used_tcp_speed
    arm.last_used_tcp_acc
    arm.angles
    arm.joint_speed_limit
    arm.joint_acc_limit
    arm.last_used_angles
    arm.last_used_joint_speed
    arm.last_used_joint_acc
    arm.tcp_offset
    arm.state
    arm.mode
    arm.joints_torque
    arm.tcp_load
    arm.collision_sensitivity
    arm.teach_sensitivity
    arm.motor_brake_states
    arm.motor_enable_states
    arm.has_err_warn
    arm.has_error
    arm.has_warn
    arm.error_code
    arm.warn_code
    arm.cmd_num
    arm.device_type
    arm.axis
    arm.gravity_direction
    arm.gpio_reset_config
    arm.count
    arm.temperatures
    arm.voltages
    arm.currents
    arm.cgpio_states

About

Python SDK for UFACTORY robots, 850, xArm5/6/7, and Lite6.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.