# MyCobot 320 [toc] ## Python API使用说明 API(Application Programming Interface)又称应用程序编程接口函数,是预先定义好的函数,使用以下函数接口时,请在一开始就导入我们的API库,输入如下代码,否则无法运行成功: ```python # 示例 from pymycobot import MyCobot320 mc = MyCobot320('/dev/ttyAMA0', 115200) # 获取所有关节当前的角度 angles = mc.get_angles() print(angles) # 将 1关节移动到 40,速度设置为 20 mc.send_angle(1, 40, 20) ``` ### 1. 系统状态 #### 1.1 `get_system_version()` - **功能:** 获取机器主控版本(pico固件版本) - **返回值:** 固件版本号 #### 1.2 `get_atom_version()` - **功能:** 获取机器末端atom版本 - **返回值:** 固件版本号 #### 1.3 `get_basic_version()` - **功能:** 获取 M5 版本的basic固件版本 - **返回值:** `float` 固件版本 ### 2. 机器人整体运行状态 #### 2.1 `power_on()` - **功能:** atom 打开通信(默认打开) - **返回值:** - `1`: 完成 #### 2.2 `power_off()` - **功能:** 机械臂掉电 - **返回值:** - `1`: 完成 #### 2.3 `is_power_on()` - **功能:** 判断机械臂是否上电 - **返回值:** - `1`: 上电 - `0`: 掉电 - `-1`: 错误 #### 2.4 `release_all_servos(data=None)` - **功能:** 放松所有机械臂关节 - **参数**:`data`(可选):关节放松方式,默认为阻尼模式,若提供 `data`参数可指定为非阻尼模式(1-Undamping)。 - **返回值:** - `1`: 完成 #### 2.5 `focus_servo(servo_id)` - **功能:** 单个舵机上电 - **参数:** - `servo_id:` int, 1-6 - **返回值:** - `1`: 完成 #### 2.6 `is_controller_connected()` - **功能:** Atom通信是否连接 - **返回值:** - `1`: 连接 - `0`: 未连接 - `-1`: 错误数据 #### 2.7 `read_next_error()` - **功能:** 机器人错误检测 - **返回值:** list len 6 - `0`: 无异常 - `1`: 通讯断开 - `2`: 通讯不稳定 - `3`: 伺服异常 #### 2.8 `get_fresh_mode()` - **功能:** 查询运动模式 - **返回值:** - `0`: 插补模式 - `1`: 刷新模式 #### 2.9 `set_fresh_mode()` - **功能:** 设置刷新模式 - **参数:** - `1`: 总是首先执行最新的命令。 - `0`: 以队列的形式按顺序执行指令。 #### 2.10 `get_robot_status()` - **功能:** 获取机器人自检状态,看重要参数是否都正常。 - **异常说明:** - 0: 通信异常,请检查线路、舵机固件版本是否正常、电源是否插上、固件是否烧录正确,波特率是否正确等 - 1: 伺服电机型号错误,需要更换电机 - 2: 伺服电机固件版本较低,需要使用FD升级 - 3: 伺服电机p值异常,默认32,此异常会自动恢复 - 4: 伺服电机D值异常,默认8,此异常会自动恢复 - 5: 伺服电机I值异常,默认0,此异常会自动恢复 - 6: 伺服电机顺时针不灵敏区参数异常,默认3,此异常会自动恢复 - 7: 伺服电机逆时针不灵敏区参数异常,默认3,此异常会自动恢复 - 8: 伺服电机相位异常,此异常会自动恢复 - 9: 伺服电机返回延时异常,默认0,此异常会自动恢复 - 10: 伺服电机最小启动力异常,默认0,此异常会自动恢复 - 11: 伺服电机异常,当舵机异常时,无法控制机器运动,请查询舵机反馈接口get_servo_status,查看具体报错 - 255: 未知错误 #### 2.11 `focus_all servos()` - **功能:** 所有舵机上电 - **返回值:** - `1`: complete #### 2.12 `set_vision_mode()` - **功能:** 设置视觉跟踪模式,限制刷新模式下send_coords的姿态翻转。(仅适用于视觉跟踪功能) - **参数:** - `1`: 打开 - `0`: 关闭 - **返回值:** - `1`: 完成 ### 3. MDI运行与操作 #### 3.1 `get_angles()` - **功能:** 获取所有关节的度数 - **返回值**:`list`所有度数的浮点列表 #### 3.2 `send_angle(id, degree, speed)` - **功能:** 向机械臂发送一个关节度数 - **参数:** - `id`:关节 id,范围 int 1-6 - `degree`:度数值(`float`)
关节 Id 范围
1 -168 ~ 168
2 -135 ~ 135
3 -145 ~ 145
4 -148 ~ 148
5 -168 ~ 168
6 -180 ~ 180
- `speed`:机械臂运动速度及范围 1~100 - **返回值:** - `1`: 完成 #### 3.3 `send_angles(angles, speed)` - **功能:** 将所有角度发送到机械臂的所有关节 - **参数:** - `angles`:度数列表(`List[float]`),长度 6 - `speed`:(`int`)1 ~ 100 - **返回值:** - `1`: 完成 #### 3.4 `get_coords()` - **功能:** 从基于基准的坐标系获取机械臂坐标 - **返回值:** 坐标浮点列表:[x, y, z, rx, ry, rz] #### 3.5 `send_coord(id, coord, speed)` - **功能:** 向机械臂发送一个坐标 - **参数:** - `id`:向机械臂发送一个坐标,1-6 对应 [x, y, z, rx, ry, rz] - `coord`:坐标值(`float`)
坐标 ID 范围
x -350 ~ 350
y -350 ~ 350
z -41 ~ 523.9
rx -180 ~ 180
ry -180 ~ 180
rz -180 ~ 180
- `speed`:(`int`)1-100 - **返回值:** - `1`: 完成 #### 3.6 `send_coords(coords, speed, mode)` - **功能:**:发送整体坐标和姿态,将机械臂头部从原点移动到您指定的点 - **参数:** - `coords`: 坐标列表,值`[x,y,z,rx,ry,rz]`,长度6 - `speed` (`int`):1 ~ 100 - `mode:`(`int`) 0 - 非线性,1 - 直线运动 - **返回值:** - `1`: 完成 #### 3.7 `pause()` - **功能:** 控制指令暂停核心并停止所有运动指令 - **返回值**: - `1` - 已停止 - `0` - 没有停止 - `-1` - 错误 #### 3.8 `sync_send_angles(angles, speed, timeout=15)` - **功能:** 同步状态下发送角度,到达目标点后返回 - **参数:** - `angles`:角度值列表(`List[float]`),长度 6 - `speed`:(`int`)1 ~ 100 - `timeout`: 默认15秒 - **返回值:** - `1`: 完成 #### 3.9 `sync_send_coords(coords, speed, mode=0, timeout=15)` - **功能:** 同步状态下发送坐标,到达目标点后返回 - **参数:** - `coords`:坐标值列表(`List[float]`),长度6 - `speed`:(`int`)1~100 - `mode`:(`int`)0-非线性(默认),1-直线运动 - `timeout`: 默认15秒 - **返回值:** - `1`: 完成 #### 3.10 `get_angles_coords()` - **功能:**获取关节角度和坐标 - **返回值:**一个长度为12的列表,前六位为角度信息,后六位为坐标信息。 #### 3.11 `is_paused()` - **功能:** 检查程序是否暂停移动命令 - **返回值:** - `1` - 已暂停 - `0` - 没有暂停 - `-1` - 错误 #### 3.12 `resume()` - **功能:** 恢复机器人运动并完成上一个命令 - **返回值:** - `1`: 完成 #### 3.13 `stop()` - **功能:** 停止机器人运动 - **返回值**: - `1` - 已停止 - `0` - 没有停止 - `-1` - 错误 #### 3.14 `is_in_position(data, flag)` - **功能** : 判断是否在某个位置。 - **参数:** - `data`:提供一组数据,可以是角度,也可以是坐标值,如果输入角度长度范围是6,如果输入坐标值长度范围是6 - `flag`(值范围0或1) - `0`: 角度 - `1`: 坐标 - **返回值**: - `1` - 到达 - `0` - 未到达 - `-1 ` - 错误 #### 3.15 `is_moving()` - **功能:** 判断机器人是否运动 - **返回值:** - `1` 运动中 - `0` 未运动 - `-1` 错误 #### 3.16 `angles_to_coords(angles)` - **功能** : 将角度转为坐标。 - **参数:** - `angles`:`list` 所有角度的浮点列表。 - **返回值**: `list` 所有坐标的浮点列表。 #### 3.17 `solve_inv_kinematics(target_coords, current_angles)` - **功能** : 将坐标转为角度。 - **参数:** - `target_coords`: `list` 所有坐标的浮点列表。 - `current_angles`: `list` 所有角度的浮点列表,机械臂当前角度 - **返回值**: `list` 所有角度的浮点列表。 ### 4. JOG运行与操作 #### 4.1 `jog_angle(joint_id, direction, speed)` - **功能:** 点动控制角度 - **参数**: - `joint_id`:表示机械臂的关节,用关节ID表示,范围是1~6 - `direction(int)`:控制机械臂运动的方向,输入`0`为负值运动,输入`1`为正值运动 - `speed`:1~100 - **返回值:** - `1`: 完成 #### 4.2 `jog_coord(coord_id, direction, speed)` - **功能:** 点动控制坐标 - **参数:** - `coord_id`: (`int`) 机械臂坐标范围:1~6 - `direction`: (`int`) 控制机臂运动方向,`0` - 负值运动,`1` - 正值运动 - `speed`: 1 ~ 100 - **返回值:** - `1`: 完成 #### 4.3 `jog_rpy(end_direction, direction, speed)` - **功能:** 使末端绕基坐标系中固定轴旋转 - **参数:** - `end_direction`: (`int`) Roll、Pitch、Yaw(1-3) - `direction`: (`int`) 控制机臂运动方向,`1` - 正转,`0` - 反转 - `speed`: (`int`) 1 ~ 100 - **返回值:** - `1`: 完成 #### 4.4 `jog_increment_angle(joint_id, increment, speed)` - **功能**:角度步进,单关节角度增量控制 - **参数**: - `joint_id`:1-6 - `increment`:基于当前位置角度的增量移动 - `speed`:1~100 - **返回值:** - `1`: 完成 #### 4.5 `jog_increment_coord(id, increment, speed)` - **功能**:坐标步进,单坐标增量控制 - **参数**: - `id`:坐标轴 1-6 - `increment`:基于当前位置坐标的增量移动 - `speed`:1~100 - **返回值:** - `1`: 完成 #### 4.6 `set_encoder(joint_id,coder,speed)` - **功能**:设置单关节旋转为指定的潜在值 - **参数** - `joint_id`:(`int`) 1-6 - `encoder`:0~4096 - `speed`:1~100 - **返回值:** - `1`: 完成 #### 4.7 `get_encoder(joint_id)` - **功能**: 将单关节旋转设置为指定的电位值 - **参数** - `joint_id`: (`int`) 1-6 - **返回值:** (`int`) 关节电位值 #### 4.8 `set_encoders(encoders, speed)` - **功能**: 设置机械手六个关节同步执行到指定位置。 - **参数** - `joint_id`: (`int`) 1-6 - `encoder`: 0 ~ 4096 - `speed`: 1 ~ 100 - **返回值:** - `1`: 完成 #### 4.9 `get_encoders()` - **功能**:获取机械臂的六个关节电位值。 - **返回值**:(`list`)电位值列表 ### 5. 运行状态及设置 #### 5.1 `get_joint_min_angle(joint_id)` - **功能:** 获取指定关节的最小运动角度 - **参数:** - `joint_id` : 输入关节ID(范围1-6) - **返回值**:`float` 角度值 #### 5.2 `get_joint_max_angle(joint_id)` - **功能:** 获取指定关节的最大运动角度 - **参数:** - `joint_id` : 输入关节ID(范围1-6) - **返回值**:`float` 角度值 #### 5.3 `set_joint_min(id, angle)` - **功能:** 设置最小关节角度限制 - **参数:** - `id` : 输入关节ID(范围1-6) - `angle`: 参考 [send_angle()](#32-send_angleid-degree-speed) 接口中对应关节的限制信息,不得小于最小值 - **返回值:** - `1`: 完成 #### 5.4 `set_joint_max(id, angle)` - **功能:** 设置最大关节角度限制 - **参数:** - `id` :输入关节ID(范围1-6) - `angle`:参考 [send_angle()](#32-send_angleid-degree-speed) 接口中对应关节的限制信息,不得大于最大值 - **返回值:** - `1`: 完成 ### 6. 关节电机控制 #### 6.1 `is_servo_enable(servo_id)` - **功能:** 检测关节连接状态 - **参数:** `servo id` 1-6 - **返回值:** - `1`: 连接成功 - `0`: 未连接 - `-1`: 错误 #### 6.2 `is_all_servo_enable()` - **功能:** 检测所有关节连接状态 - **返回值:** - `1`: 连接成功 - `0`: 未连接 - `-1`: 错误 #### 6.3 `set_servo_calibration(servo_id)` - **功能:** 校准指定关节,设置当前位置为角度零点,对应电位值为2048 - **参数**: - `servo_id`: 1 - 6 - **返回值:** - `1`: 完成 #### 6.4 `release_servo(servo_id)` - **功能:** 放松指定的单个舵机 - **参数**: - `servo_id`: 1 ~ 6 - **返回值:** - `1`: 放松成功 - `0`: 放松失败 - `-1`: 错误 #### 6.5 `focus_servo(servo_id)` - **功能**:上电指定舵机 - **参数**: `servo_id`: 1 ~ 6 - **返回值:** - `1`: 上电成功 - `0`: 上电失败 - `-1`: 错误 #### 6.6 `set_servo_data(servo_id, data_id, value, mode=None)` - **功能:** 设置舵机指定地址的数据参数 - **参数**: - `servo_id`: (`int`) 关节 id 1 - 6 - `data_id`: (`int`) 数据地址 - `value`: (`int`) 0 - 4096 - `mode`: 0 - 表示值为一个字节(默认),1 - 1 表示值为两个字节。 #### 6.7 `get_servo_data(servo_id, data_id, mode=None)` - **功能:** 读取舵机指定地址的数据参数。 - **参数**: - `servo_id`: (`int`) 关节id 1 - 6 - `data_id`: (`int`) 数据地址 - `mode`: 0 - 表示值为一个字节(默认),1 - 表示值为两个字节。 - **返回值:** 0 ~ 4096 #### 6.8 `joint_brake(joint_id)` - **功能:** 使关节在运动时停止,缓冲距离与现有速度正相关 - **参数**: - `joint_id`: (`int`) 关节id 1 - 6 - **返回值:** - `1`: 完成 ### 7. 伺服状态值 #### 7.1 `get_servo_speeds()` - **功能**:获取所有关节的运动速度 - **返回值**: 一个列表 #### 7.2 `get_servo_currents()` - **功能**:获取关节电流 - **返回值**:一个列表, 0 ~ 3250 mA #### 7.3 `get_servo_voltages()` - **功能**:获取关节电压 - **返回值**: 一个列表, 电压值小于24 V #### 7.4 `get_servo_status()` - **功能**:获取所有关节的运动状态 - **返回值**: 列表,[电压,传感器,温度,电流,角度,过载],值为`0`表示无错误,值为`1`表示有错误 - **异常说明**: - 0: 伺服电机欠压/过压,查看电压,如果为0,需要修改舵机参数;如果大于实际,可能散热片损坏 - 1: 伺服电机磁编码异常 - 2: 伺服电机过温 - 3: 伺服电机过流 - 5: 伺服电机过载 #### 7.5 `get_servo_temps()` - **功能**:获取关节温度 - **返回值**: 一个列表,单位摄氏度 ### 8. 机械臂末端IO控制 #### 8.1 `set_color(r, g, b)` - **功能**: 设置机械臂末端灯光颜色 - **参数**: - `r (int)`: 0 ~ 255 - `g (int)`: 0 ~ 255 - `b (int)`: 0 ~ 255 - **返回值:** - `1`: 完成 #### 8.2 `set_digital_output(pin_no, pin_signal)` - **功能:** 设置IO状态 - **参数** - `pin_no` (int): 引脚号 - `pin_signal` (int): 0 / 1, 输入0表示设置为运行状态,输入1表示停止状态 - **返回值:** - `1`: 完成 #### 8.3 `get_digital_input(pin_no)` - **功能:** 获取IO状态 - **参数**: `pin_no` (int) - **返回值**: 当返回的值为0表示在工作状态运行,1表示停止状态 #### 8.4 `set_pin_mode(pin_no, pin_mode)` - **功能:** 设置原子中指定引脚的状态模式。 - **参数** - `pin_no` (int): 引脚号 - `pin_mode` (int): 0 - 运行状态, 1 - 停止状态, 2 - 上拉模式 - **返回值:** - `1`: 完成 ### 9. 机械臂末端夹爪控制 #### 9.1 `set_gripper_state(flag, speed, _type_1=None)` - **功能**: 让夹爪以指定的速度进入到指定的状态 - **参数**: - `flag (int) `: 0 - 打开 1 - 关闭, 254 - 释放 - `speed (int)`: 1 ~ 100 - `_type_1 (int)`: - `1` : 自适应夹爪 (默认是自适应夹爪) - `2` : 五指灵巧手 - `3` : 平行夹爪 - `4` : 柔性夹爪 - **返回值:** - `1`: 完成 #### 9.2 `set_gripper_value(gripper_value, speed, gripper_type=None)` - **功能**: 让夹爪以指定的速度转动到指定的位置 - **参数**: - `gripper_value (int) `: 0 ~ 100 - `speed (int)`: 1 ~ 100 - `gripper_type (int)`: - `1` : 自适应夹爪 (默认是自适应夹爪) - `2` : 五指灵巧手 - `3` : 平行夹爪 - `4` : 柔性夹爪 - **返回值:** - `1`: 完成 #### 9.3 `set_gripper_calibration()` - **功能**: 将夹爪的当前位置设置为零位 - **返回值:** - `1`: 完成 #### 9.4 `init_electric_gripper()` - **功能**:电动夹爪初始化(插入和移除夹爪后需初始化一次) - **返回值:** - `1`: 完成 #### 9.5 `set_electric_gripper(status)` - **功能**:设置电动夹爪模式 - **参数**: - `status`:0 - 打开,1 - 关闭。 - **返回值:** - `1`: 完成 #### 9.6 `set_gripper_mode(mode)` - **功能**:设置夹爪模式 - **参数**: - `mode`:0 - 透明传输。1 - 端口模式。 - **返回值:** - `1`: 完成 #### 9.7 `get_gripper_mode()` - **功能**:获取夹爪模式 - **返回值**: - `mode`:0 - 透明传输。1 - 端口模式。 ### 10. 设置底部IO输入/输出状态 #### 10.1 `set_basic_output(pin_no, pin_signal)` - **功能**:设置底部引脚号的工作状态。 - **参数**: - `pin_no` (`int`) 设备底部标注的编号仅取数字部分 - `pin_signal` (`int`): 0 - 低电平,设置为运行状态. 1 - 高电平,停止状态。 - **返回值:** - `1`: 完成 #### 10.2 `get_basic_input(pin_no)` - **功能:** 获取底部引脚号的工作状态 - **参数:** - `pin_no` (`int`) 表示机器人底部的具体引脚号。 - **返回值:** 0 - 低电平,运行状态. 1 - 高电平,停止状态 ### 11. TOF #### 11.1 `get_tof_distance()` - **功能:** 获取检测到的距离(需要外部距离检测器) - **返回值:** 检测到的距离值,单位为mm。 ### 12. 坐标变换 #### 12.1 `set_tool_reference(coords)` - **功能:** 设置工具坐标系 - **参数**: - `coords`: (`list`) [x, y, z, rx, ry, rz]. - **返回值:** - `1`: 完成 #### 12.2 `get_tool_reference(coords)` - **功能:** 获取工具坐标系 - **返回值:** (`list`) [x, y, z, rx, ry, rz] #### 12.3 `set_world_reference(coords)` - **功能:** 设置世界坐标系 - **参数**: - `coords`: (`list`) [x, y, z, rx, ry, rz]. - **返回值:** - `1`: 完成 #### 12.4 `get_world_reference()` - **功能:** 获取世界坐标系. - **返回值:** `list` [x, y, z, rx, ry, rz]. #### 12.5 `set_reference_frame(rftype)` - **功能:** 设置基坐标系 - **参数:** - `rftype`: 0 - 基坐标(默认) 1 - 世界坐标. - **返回值:** - `1`: 完成 #### 12.6 `get_reference_frame()` - **功能:** 获取基坐标系 - **返回值:** (`list`) [x, y, z, rx, ry, rz]. #### 12.7 `set_movement_type(move_type)` - **功能:** 设置移动类型 - **参数**: - `move_type`: 1 - movel, 0 - moveJ. - **返回值:** - `1`: 完成 #### 12.8 `get_movement_type()` - **功能:** 获取移动类型 - **返回值:** - `1` - movel - `0` - moveJ #### 12.9 `set_end_type(end)` - **功能:** 设置末端坐标系 - **参数:** - `end (int)`: `0` - 法兰(默认), `1` - 工具 - **返回值:** - `1`: 完成 #### 12.10 `get_end_type()` - **功能:** 获取末端坐标系 - **返回值:** - `0` - 法兰(默认) - `1` - 工具 ### 13. 树莓派 -- GPIO #### 13.1 `gpio_init()` - **功能**: 初始化 GPIO 模块,设置 BCM 模式 #### 13.2 `gpio_output(pin, v)` - **功能**: 设置GPIO输出值 - **参数** - `pin` (`int`) 引脚编号 - `v` (`int`):0 -设置为低电平 1 -设置为高电平 ### 14. utils(模块) 该模块支持一些帮助方法,使用之前在文件开头输入代码导入模块: ```python from pymycobot import utils ``` #### 14.1 `utils.get_port_list()` - **功能**: 获取当前所有串口号列表 - **返回值:** 串口列表(`list`) #### 14.2 `utils.detect_port_of_basic()` - **功能**: 返回第一个检测到的 M5 Basic 的串口号。(只会返回一个串口号) - **返回值:** 返回检测到的端口号,如果没有监测到串口号则返回:None ### 15. Pro 力控夹爪 #### 15.1 `set_pro_gripper(gripper_id, address, value)` - **功能**:设置Pro力控夹爪参数,可以设置多种参数功能。具体请查看如下表格。 - **参数**: - `gripper_id` (`int`): 夹爪ID,默认14,取值范围 1 ~ 254。 - `address` (`int`): 夹爪的指令序号。 - `value` :指令序号对应的参数值。
功能 gripper_id address value
设置夹爪ID 14 3 1 ~ 254
设置夹爪使能状态 14 10 0或者1, 0 - 掉使能; 1 - 上使能
设置夹爪顺时针可运行误差 14 21 0 ~ 16
设置夹爪逆时针可运行误差 14 23 0 ~ 16
设置夹爪最小启动力 14 25 0 ~ 254
IO输出设置 14 29 0, 1, 16, 17
设置IO张开角度 14 30 0 ~ 100
设置IO闭合角度 14 31 0 ~ 100
设置舵机虚位数值 14 41 0 ~ 100
设置夹持电流 14 43 1 ~ 254
- **返回值**: - 请查看如下表格:
功能 返回值
设置夹爪ID 0 - 失败; 1 - 成功
设置夹爪使能状态 0 - 失败; 1 - 成功
设置夹爪顺时针可运行误差 0 - 失败; 1 - 成功
设置夹爪逆时针可运行误差 0 - 失败; 1 - 成功
设置夹爪最小启动力 0 - 失败; 1 - 成功
IO输出设置 0 - 失败; 1 - 成功
设置IO张开角度 0 - 失败; 1 - 成功
设置IO闭合角度 0 - 失败; 1 - 成功
设置舵机虚位数值 0 - 失败; 1 - 成功
设置夹持电流 0 - 失败; 1 - 成功
#### 15.2 `get_pro_gripper(gripper_id, address)` - **功能**:获取Pro力控夹爪参数,可以获取多种参数功能。具体请查看如下表格。 - **参数**: - `gripper_id` (`int`): 夹爪ID,默认14,取值范围 1 ~ 254。 - `address` (`int`): 夹爪的指令序号。
功能 gripper_id address
读取固件主版本号 14 1
读取固件次版本号 14 2
读取夹爪ID 14 4
读取夹爪顺时针可运行误差 14 22
读取夹爪逆时针可运行误差 14 24
读取夹爪最小启动力 14 26
读取IO张开角度 14 34
读取IO闭合角度 14 35
获取当前队列的数据量 14 40
读取舵机虚位数值 14 42
读取夹持电流 14 44
- **返回值**: - 查看如下表格(若返回值为 -1,则表示读不到数据):
功能 返回值
读取固件主版本号 主版本号
读取固件次版本号 次版本号
读取夹爪ID 1 ~ 254
读取夹爪顺时针可运行误差 0 ~ 254
读取夹爪逆时针可运行误差 0 ~ 254
读取夹爪最小启动力 0 ~ 254
读取IO张开角度 0 ~ 100
读取IO闭合角度 0 ~ 100
获取当前队列的数据量 返回当前绝对控制队列中的数据量
读取舵机虚位数值 0 ~ 100
读取夹持电流 1 ~ 254
#### 15.3 `set_pro_gripper_angle(gripper_id, gripper_angle)` - **功能**:设置力控夹爪角度。 - **参数**: - `gripper_id` (`int`): 夹爪ID,默认14,取值范围1 ~ 254。 - `gripper_angle` (`int`): 夹爪角度,取值范围 0 ~ 100。 - **返回值**: - 0 - 失败 - 1 - 成功 #### 15.4 `get_pro_gripper_angle(gripper_id)` - **功能**:读取力控夹爪角度。 - **参数**: - `gripper_id` (`int`): 夹爪ID,默认14,取值范围 1 ~ 254。 - **返回值**:`int` 0 ~ 100 #### 15.5 `set_pro_gripper_open(gripper_id)` - **功能**:打开力控夹爪。 - **参数**: - `gripper_id` (`int`): 夹爪ID,默认14,取值范围 1 ~ 254。 - **返回值**: - 0 - 失败 - 1 - 成功 #### 15.6 `set_pro_gripper_close(gripper_id)` - **功能**:关闭力控夹爪。 - **参数**: - `gripper_id` (`int`): 夹爪ID,默认14,取值范围 1 ~ 254。 - **返回值**: - 0 - 失败 - 1 - 成功 #### 15.7 `set_pro_gripper_calibration(gripper_id)` - **功能**:设置力控夹爪零位。(首次使用需要先设置零位) - **参数**: - `gripper_id` (`int`): 夹爪ID,默认14,取值范围 1 ~ 254。 - **返回值**: - 0 - 失败 - 1 - 成功 #### 15.8 `get_pro_gripper_status(gripper_id)` - **功能**:读取力控夹爪夹持状态。 - **参数**: - `gripper_id` (`int`): 夹爪ID,默认14,取值范围 1 ~ 254。 - **返回值:** - `0` - 正在运动。 - `1` - 停止运动,未检测到夹到物体。 - `2` - 停止运动,检测到夹到物体。 - `3` - 检测到夹到物体之后,物体掉落。 #### 15.9 `set_pro_gripper_torque(gripper_id, torque_value)` - **功能**:设置力控夹爪扭矩。 - **参数**: - `gripper_id` (`int`): 夹爪ID,默认14,取值范围 1 ~ 254。 - `torque_value` (`int`) :扭矩值,取值范围 100 ~ 300。 - **返回值**: - 0 - 失败 - 1 - 成功 #### 15.10 `get_pro_gripper_torque(gripper_id)` - **功能**:读取力控夹爪扭矩。 - **参数**: - `gripper_id` (`int`): 夹爪ID,默认14,取值范围 1 ~ 254。 - **返回值:** (`int`) 100 ~ 300 #### 15.11 `set_pro_gripper_speed(gripper_id, speed)` - **功能**:设置力控夹爪速度。 - **参数**: - `gripper_id` (`int`): 夹爪ID,默认14,取值范围 1 ~ 254。 - `speed` (int): 夹爪运动速度,取值范围 1 ~ 100。 - **返回值**: - 0 - 失败 - 1 - 成功 #### 15.12 `get_pro_gripper_default_speed(gripper_id, speed)` - **功能**:读取力控夹爪默认速度。 - **参数**: - `gripper_id` (`int`): 夹爪ID,默认14,取值范围 1 ~ 254。 - **返回值**:夹爪默认运动速度,范围 1 ~ 100。 #### 15.13 `set_pro_gripper_abs_angle(gripper_id, gripper_angle)` - **功能**:设置力控夹爪绝对角度。 - **参数**: - `gripper_id` (`int`): 夹爪ID,默认14,取值范围 1 ~ 254。 - `gripper_angle` (`int`): 夹爪角度,取值范围 0 ~ 100。 - **返回值**: - 0 - 失败 - 1 - 成功 #### 15.14 `set_pro_gripper_pause(gripper_id)` - **功能**:暂停运动。 - **参数**: - `gripper_id` (`int`) 夹爪ID,默认14,取值范围 1 ~ 254。 - **返回值**: - 0 - 失败 - 1 - 成功 #### 15.15 `set_pro_gripper_resume(gripper_id)` - **功能**:运动恢复。 - **参数**: - `gripper_id` (`int`) 夹爪ID,默认14,取值范围 1 ~ 254。 - **返回值**: - 0 - 失败 - 1 - 成功 #### 15.16 `set_pro_gripper_stop(gripper_id)` - **功能**:停止运动。 - **参数**: - `gripper_id` (`int`) 夹爪ID,默认14,取值范围 1 ~ 254。 - **返回值**: - 0 - 失败 - 1 - 成功 ## MyCobot 320 Socket > 注意: > raspberryPi版本 仅支持python3 > 使用此类前提的机械臂有服务器,并且已经开启服务。 使用TCP/IP控制机械臂 ### 1. 客户端 ```python # 示例 from pymycobot import MyCobot320Socket # 默认使用端口 9000 mc = MyCobot320Socket("192.168.10.10",9000) res = mc.get_angles() print(res) mc.send_angles([0,0,0,0,0,0],20) ... ``` ### 2. 服务端 服务端文件在`demo文件夹`中,具体请检查demo文件夹中的[Server_320.py](../demo/Server_320.py)文件。 ### 3. socket 控制 > 注意: > 大部分方法与 MyCobot320 类相同,这里只列出新方法。 #### 3.1 `set_gpio_mode(mode)` - **功能**: 设置树莓派GPIO针脚模式 - **参数** - `mode` (`str`) "BCM" 或者 "BOARD" 进入相应模式 #### 3.2 `set_gpio_out(pin_no, mode)` - **功能**: 设置引脚作为输入或者输出 - **参数** - `pin_no` (`int`) 引脚编号. - `mode` (`str`) `in` - 输入 ; `out` - 输出 #### 3.3 `set_gpio_output(pin_no, state)` - **功能**: 将引脚设置为高,低电平 - **参数** - `pin_no` (`int`) 引脚编号. - `state` (`int`) 0-设置为低电平 1-设置为高电平 #### 3.4 `get_gpio_in(pin_no)` - **功能**: 获取引脚电平状态 - **参数** - `pin_no` (`int`) 引脚编号 - **返回值:** 0 为低电平 1 为高电平