Skip to content

X3vvv/IFYP-COMP

Repository files navigation

xArm-Python-SDK

Overview

xArm Python SDK

Caution

  • During use, people should stay away from the robot arm to avoid accidental injury or damage to other items by the robot arm.
  • Protect the arm before use.
  • Before you exercise, please make sure you don't encounter obstacles.
  • Protect the arm before unlocking the motor.

Installation

Install is not necessary, you can run examples without installation.Only Python3 is supported.

  • download

    git clone https://github.com/xArm-Developer/xArm-Python-SDK.git
  • install

    python setup.py install
  • other steps

    1. Go to Google Cloud Platform, create and download service account key (usually a json file), add replace the service account key file path in main.py to your own.
    2. Install gcloud and deploy
    3. Get an OpenAI API key from your OpenAI account and replace the API key file path in main.py into your own.

Doc

Update Summary

  • 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)
  • 1.11.0

    • Support transparent transmission
      • 240: set_tgpio_modbus_timeout(..., is_transparent_transmission=True)
      • 241: getset_tgpio_modbus_data(..., is_transparent_transmission=True)
    • Modified the centroid unit of the ft_sensor_iden_load and ft_sensor_cali_load interfaces to millimeters (originally meters)
  • 1.10.0

    • Use monotonic time
    • Fix several bugs
  • 1.9.10

    • Support Lite6 Model
    • Fix several bugs
  • 1.9.0

    • Support friction parameter identification interface
    • Support relative motion
    • Support xarm6-type11 firmware
    • Repair time-consuming interface (identification) failure due to heartbeat mechanism
    • Fix several bugs
  • 1.8.4

    • Support the Six-axis Force Torque Sensor (not a third party)
    • Add threads to handle callbacks
    • Modify the reporting processing logic and optimize the processing of sticky packets
    • Fixed frequent switching of the pause state causing the program to hang
    • Fix the program hangs when setting the mechanical claw position in speed mode
    • Fix relative movement in unsynchronized position
  • 1.8.0

    • Support for blocky code conversion and operation of xArmStudio-1.8.0
    • The Velocity interface supports the duration parameter (requires firmware 1.8.0 or higher)
    • Added identification interface (current identification and torque identification) (requires firmware 1.8.0 or higher)
    • Support linear track interface (requires firmware 1.8.0 or higher)
    • Support calling some studio APIs

Note: Before running the example, please modify the ip value in the robot.conf file to the robot arm 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

    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()
  • 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()
  • 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.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 Track

    arm.get_linear_track_pos()
    arm.get_linear_track_status()
    arm.get_linear_track_error()
    arm.get_linear_track_is_enabled()
    arm.get_linear_track_on_zero()
    arm.get_linear_track_sci()
    arm.get_linear_track_sco()
    
    arm.clean_linear_track_error(...)
    arm.set_linear_track_enable(...)
    arm.set_linear_track_speed(...)
    arm.set_linear_track_back_origin(...)
    arm.set_linear_track_pos(...)
    arm.set_linear_track_stop(...)
  • FT Sensor

    arm.set_impedance(...)
    arm.set_impedance_mbk(...)
    arm.set_impedance_config(...)
    arm.config_force_control(...)
    arm.set_force_control_pid(...)
    arm.ft_sensor_set_zero(...)
    arm.ft_sensor_iden_load(...)
    arm.ft_sensor_cali_load(...)
    arm.ft_sensor_enable(...)
    arm.ft_sensor_app_set(...)
    arm.ft_sensor_app_get(...)
    arm.get_ft_sensor_data(...)
    arm.get_ft_senfor_config(...)
    arm.get_ft_sensor_error(...)
  • Other

    arm.set_pause_time(...)
    arm.shutdown_system(...)
    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

2023 Inter-department Final Year Project of PolyU computing department.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors