当前位置: 首页 > news >正文

大象机械人------1、关节控制

回到首页

目录

1 单关节控制

角度控制:1.1 send_angle(id, degree, speed)电位值控制:1.2 set_encoder(joint_id, encoder)

2 多关节控制

获取所有角度:2.1 get_angles()角度控制:2.2 send_angles(degrees, speed)
电位值控制:2.3 set_encoders(encoders, sp)同步角度控制:2.4 sync_send_angles(degrees, speed, timeout=7)
获取所有关节弧度:2.5 get_radians()弧度值控制:2.6 send_radians(radians, speed)

3 案例


关节控制

对于串联式多关节机器人,关节空间的控制是针对机器人各个关节的变量进行的控制,目标是让机器人各个关节按照一定速度达到目标位置。

注意:在设置角度时,不同系列的机械臂限位有所不同,具体可查看对应型号的参数介绍。

1 单关节控制

1.1 send_angle(id, degree, speed)

  • 功能: 发送指定的单个关节运动至指定的角度

  • 参数说明:

    • id: 代表机械臂的关节,六轴有六个关节,四轴有四个关节,有特定的表示方法 关节一的表示法:Angle.J1.value(也可以用数字1-6来表示)

    • degree: 表示关节的角度

    • speed:表示机械臂运动的速度,范围0~100

  • 返回值: 无

回到首页

1.2 set_encoder(joint_id, encoder)

  • 功能: 发送指定的单个关节运动至指定的电位值

  • 参数说明:

    • joint_id: 代表机械臂的关节,六轴有六个关节,四轴有四个关节,有特定的表示方法 关节一的表示法:Angle.J1.value(也可以用数字1-6来表示)

    • encoder:表示机械臂的电位值,取值范围是 0 ~ 4096

  • 返回值: 无

回到首页

2 多关节控制

2.1 get_angles()

  • 功能: 获取所有关节角度

  • 返回值: list一个浮点值的列表代,表所有关节的角度

回到首页

2.2 send_angles(degrees, speed)

  • 功能: 发送所有角度给机械臂所有关节

  • 参数说明:

    • degrees(List[float])包含所有关节的角度 , 六轴机器人有六个关节所以长度为 6,四轴长度为4,如6轴的表示方法为:[20,20,20,20,20,20]

    • speed: 表示机械臂运动的速度,取值范围是0-100

  • 返回值: 无

回到首页

2.3 set_encoders(encoders, speed)

  • 功能: 发送电位值给机械臂所有关节

  • 参数说明:

    • encoder:表示机械臂的电位值,取值范围是 0 ~ 4096,六轴长度为6,四轴长度为4,如6轴的表示方法为:[2048,2048,2048,2048,2048,2048]

    • sp: 表示机械臂运动的速度,取值范围是0-100

  • 返回值: 无

回到首页

2.4 sync_send_angles(degrees, speed, timeout=7)

  • 功能: 同步发送角度,到达目标点返回

  • 参数说明:

    • degrees: 每个关节的角度值列表 List[float]

    • speed: ( int)机械臂运动的速度,取值范围是0-100

    • timeout:时间默认7s

回到首页

2.5 get_radians()

  • 功能: 获取所有关节的弧度

  • 返回值: list包含所有关节弧度值的列表

回到首页

2.6 send_radians(radians, speed)

  • 功能:发送弧度值给机械臂所有关节

  • 参数说明:

    • radians:表示机械臂的弧度值,取值范围是 -5~5

  • 返回值: list包含所有关节弧度值的列表

回到首页

3 案例

以下是MyCobot控制代码。

  • MyCobot:

from pymycobot.mycobot import MyCobot
from pymycobot.genre import Angle
from pymycobot import PI_PORT, PI_BAUD  # 当使用树莓派版本的mycobot时,可以引用这两个变量进行MyCobot初始化
import time# MyCobot 类初始化需要两个参数:
#   第一个是串口字符串, 如:
#       linux: "/dev/ttyUSB0"
#       windows: "COM3"
#   第二个是波特率:
#       M5版本为: 115200
#
#    如:
#       mycobot-M5:
#           linux:
#              mc = MyCobot("/dev/ttyUSB0", 115200)
#           windows:
#              mc = MyCobot("COM3", 115200)
#       mycobot-raspi:
#           mc = MyCobot(PI_PORT, PI_BAUD)
#
# 初始化一个MyCobot对象
# 这里为 windows版本创建对象代码
mc = MyCobot("COM3", 115200)# 通过传递角度参数,让机械臂每个关节移动到对应[0, 0, 0, 0, 0, 0]的位置
mc.send_angles([0, 0, 0, 0, 0, 0], 50)# 设置等待时间,确保机械臂已经到达指定位置
time.sleep(2.5)# 让关节1移动到90这个位置
mc.send_angle(Angle.J1.value, 90, 50)
# 设置等待时间,确保机械臂已经到达指定位置
time.sleep(2)# 以下代码可以让机械臂左右摇摆
# 设置循环次数
while num > 0:# 让关节2移动到50这个位置mc.send_angle(Angle.J2.value, 50, 50)# 设置等待时间,确保机械臂已经到达指定位置time.sleep(1.5)# 让关节2移动到-50这个位置mc.send_angle(Angle.J2.value, -50, 50)# 设置等待时间,确保机械臂已经到达指定位置time.sleep(1.5)num -= 1# 让机械臂缩起来。你可以手动摆动机械臂,然后使用get_angles()函数获得坐标数列,
# 通过该函数让机械臂到达你所想的位置。
mc.send_angles([88.68, -138.51, 155.65, -128.05, -9.93, -15.29], 50)# 设置等待时间,确保机械臂已经到达指定位置
time.sleep(2.5)# 让机械臂放松,可以手动摆动机械臂
mc.release_all_servos()

回到首页 

http://www.lryc.cn/news/436124.html

相关文章:

  • 油电叉车倒车防撞报警系统精准探测
  • Java学习路线:从零基础到高级开发者的完整指南
  • 【Java算法】递归
  • NIDS——suricata(三)
  • 运动耳机哪个牌子最好用?年度精选五款好用的骨传导耳机推荐
  • 鞋服企业信息化建设若干架构分享
  • 比较顺序3s1和3s2的搜索难度
  • Vue3 el-switch @change事件在初始化时会自动调用问题
  • 全面解析性能测试中的瓶颈分析与优化策略!
  • 2018年Android面试题含答案--适合中高级(下)
  • 基于SSM的汽车租赁系统+LW示例参考
  • [晕事]今天做了件晕事44 wireshark 首选项IPv4:Reassemble Fragented IPv4 datagrams
  • Unity人工智能开发学习心得
  • 0911,类与类之间的关系,设计原则,工厂模式
  • 【2024最新版】零基础Python快速入门篇
  • 掌握Go语言中的映射、常量与指针
  • @35岁的网安人 答应我拿下这些证书
  • flutter Image
  • 基于RP2350 MCU的树莓派Pico 2开发板及MicroPython编程使用
  • Docker数据挂载本地目录
  • 身份证实名认证接口如何用C#实现
  • Java开发者无痛丝滑入门Python
  • 【STM32】呼吸灯实现
  • SQLSERVER查看包含某个字段的所有表
  • 【编程基础知识】mysql中的insert into ... on DUPLICATE key和replace into的性能对比
  • 【CSS in Depth 2 精译_024】4.2 弹性子元素的大小
  • 你需要尝试的5种讲故事模板
  • 只需两步便可生成 51 单片机最精准的延时函数
  • TETFN情感计算的实践复现(论文复现)
  • 游戏各个知识小点汇总