pyuarm API

Classes

class pyuarm.uarm.UArm(port_name=None, timeout=2, debug=False, logger=None)

Bases: object

close(*args, **kwargs)
close_report_position(*args, **kwargs)
connect(*args, **kwargs)
connection_state

Return the uArm Connection status. :return: boolean

disconnect(*args, **kwargs)
firmware_version
get_analog(*args, **kwargs)
get_digital(*args, **kwargs)
get_is_moving(*args, **kwargs)
get_polar(*args, **kwargs)
get_position(*args, **kwargs)
get_report_position(*args, **kwargs)
get_rom_data(*args, **kwargs)
get_servo_angle(*args, **kwargs)
get_tip_sensor(*args, **kwargs)
hardware_version
reset()

Reset include below action: - Attach all servos - Move to default position (0, 150, 150) with speed 100mm/min - Turn off Pump/Gripper - Set Wrist Servo to Angle 90 :return:

send_and_receive(msg)

This function will block until receive the response message. :param msg: String Serial Command :return: (Integer msg_id, String response) and None if no response

send_msg(msg)

This function will send out the message and return the serial_id immediately. :param msg: String, Serial Command :return:

set_buzzer(*args, **kwargs)
set_gripper(*args, **kwargs)
set_polar_coordinate(*args, **kwargs)
set_position(*args, **kwargs)
set_pump(*args, **kwargs)
set_report_position(*args, **kwargs)
set_servo_angle(*args, **kwargs)
set_servo_attach(*args, **kwargs)
set_servo_detach(*args, **kwargs)
set_wrist(*args, **kwargs)
exception pyuarm.uarm.UArmConnectException(errno, message=None)

Bases: exceptions.Exception

pyuarm.uarm.catch_exception(func)

Exception

class pyuarm.UArmConnectException(errno, message=None)

Constants

TO-DO

Module Functions and attributes

pyuarm.tools.list_uarms

pyuarm.tools.list_uarms.check_port_plug_in(serial_id)
pyuarm.tools.list_uarms.get_port_property(port_name)
pyuarm.tools.list_uarms.get_uarm_port_cli()
pyuarm.tools.list_uarms.uarm_ports()

pyuarm.tools.firmware

pyuarm.tools.firmware.catch_exception(func)
pyuarm.tools.firmware.download(*args, **kwargs)
pyuarm.tools.firmware.exit_fun()
pyuarm.tools.firmware.flash(*args, **kwargs)
pyuarm.tools.firmware.gen_flash_cmd(port, firmware_path, avrdude_path=None, debug=False)
pyuarm.tools.firmware.get_latest_firmware_version(branch='pro')
pyuarm.tools.firmware.read_std_output(*args, **kwargs)

pyuarm.tools.calibrate

pyuarm.tools.calibrate This is part of pyuarm. Provide the calibrate information query. Include three sections. 1. Linear Offset 2. Manual Offset 3. Complete flag If you want to calibrate uArm. Please use uArm assistant.

pyuarm.tools.calibrate.exit_fun()
pyuarm.tools.calibrate.read_completed_flag(uarm, flag_type)

Read Complete Flag from EEPROM :param uarm: uArm instance :param flag_type: protocol.CALIBRATION_FLAG, protocol.CALIBRATION_LINEAR_FLAG, procotol.CALIBRATION_SERVO_FLAG :return:

pyuarm.tools.calibrate.read_linear_offset(uarm)

Read Linear Offset from uArm EEPROM :param uarm: uArm instance :return:

pyuarm.tools.calibrate.read_manual_offset(uarm)

Read Manual Offset from uArm EEPROM :param uarm: uArm instance :return:

pyuarm.tools.calibrate.run()

pyuarm.tools.miniterm

class pyuarm.tools.miniterm.SerialMode(uarm)

Bases: cmd.Cmd

default(line)
do_EOF(args)
do_quit(args)
intro = 'Welcome to Serial Mode.'
prompt = 'Serial >>> '
uarm = None
class pyuarm.tools.miniterm.UArmCmd(port=None, debug=False, *args, **kwargs)

Bases: cmd.Cmd

FIRMWARE = ['version', 'force', 'upgrade']
ON_OFF = ['on', 'off']
SERVO_STATUS = ['attach', 'detach']
arm = None
complete_pump(text, line, begidx, endidx)
complete_servo(text, line, begidx, endidx)
do_EOF(args)

Quit, if uarm is connected, will disconnect before quit

do_alert(arg)

alert control buzzer format: alert frequency duration eg. alert 1 1

do_connect(arg)

connect, Open uArm Port, if more than one uArm Port found, will prompt options to choose. Please connect to uArm before you do any control action

do_disconnect(arg)

disconnect, Release uarm port.

do_get_angle(arg)

get_angle Read current servo angle. format: read_angle servo_number servo_number: - 0 bottom servo, - 1 left servo, - 2 right servo, if no servo_number provide, will list all servos angle eg. >>> get_angle Current Servo Angles: b:17.97, l:112.72, r:17.97, h:151.14

do_get_position(arg)

get_position get current coordinate

do_help(arg)
do_pump(arg)

pump turn on/off pump

do_quit(args)

Quit, if uarm is connected, will disconnect before quit

do_serial(arg)

Raw Serial Mode You could direct input the communication protocol here.

do_servo(arg)

Servo status format: - servo attach servo_number - servo detach servo_number servo_number: - 0 bottom servo, - 1 left servo, - 2 right servo, - 3 hand servo - all eg. - servo attach all - servo detach all

do_set_angle(arg)

set_angle format: write_angle servo_number angle servo_number: - 0 bottom servo, - 1 left servo, - 2 right servo, - 3 hand servo eg. >>> set_angle 0 90 succeed

do_set_position(arg)

set_position, move to destination coordinate. format: set_position X Y Z or move_to X Y Z S X,Y,Z unit millimeter, S means Speed, unit mm/s eg. set_position 100 200 150

do_sp(args)

same with set_position

help_msg = 'Shortcut:\nQuit: Ctrl + D, or input: quit\nClear Screen: Ctrl + L'
intro = 'Welcome to use uArm Command Line - v0.1.6\nShortcut:\nQuit: Ctrl + D, or input: quit\nClear Screen: Ctrl + L\n\nInput help for more usage'
prompt = '>>> '
ruler = '-'