大象机器人------2、坐标控制

news2024/9/21 19:37:23

坐标控制

主要用于实现智能规划路线让机械臂从一个位置到另一个指定位置。分为[x,y,z,rx,ry,rz],其中[x,y,z]表示的是机械臂头部在空间中的位置(该坐标系为直角坐标系),[rx,ry,rz]表示的是机械臂头部在该点的姿态(该坐标系为欧拉坐标)。算法的实现以及欧拉坐标的表示需要一定的学术知识,这里不对其过多的讲解,我们只要懂得直角坐标系就可以很好的使用这个函数了。

注意: 在设置坐标时,不同系列的机械臂关节构造有所不同,同一组坐标,不同系列的机械臂会展示不同的姿态。

回到首页

回到首页

目录

1 单参数坐标

单个轴转动:1.1 send_coord(id,coord,speed)

2 多参数坐标

获取坐标:2.1 get_coords()移动到某位置:2.2 send_coords(coords, speed, mode)
设置工具坐标系:2.3 set_tool_reference(coords)获取工具坐标系:2.4 get_tool_reference()
获取世界坐标:2.5 get_world_reference()设置世界坐标系:2.6 set_world_reference(coords)
设置基坐标系:2.7 set_reference_frame(rftype)获取基坐标系:2.8 get_reference_frame()
获取末端坐标系:2.9 set_end_type(end)

3.0 get_end_type()

3 案例


1 单参数坐标

1.1 send_coord(id,coord,speed)

  • 功能: 发送单个坐标值给机械臂进行移动
  • 参数说明:
    • id:代表机械臂的坐标,六轴有六个坐标,四轴有四个坐标,有特定的表示方法 X坐标的表示法:Coord.X.value,也有简易的表示方法:如X轴可以填写1,Y填写2,以此类推
    • coord:输入您想要到达的坐标值
    • speed:表示机械臂运动的速度,范围是0-100
  • 返回值: 无

2 多参数坐标

2.1 get_coords()

  • 功能: 获取当前坐标和姿态
  • 返回值: list包含坐标和姿态的列表
    • 六轴:长度为 6,依次为 [x, y, z, rx, ry, rz]
    • 四轴:长度为 6,依次为 [x, y, z, rx]

2.2 send_coords(coords, speed, mode)

  • 功能: 发送整体坐标和姿态,让机械臂头部从原来点移动到您指定点。
  • 参数说明:
    • coords:
      • 六轴:[x,y,z,rx,ry,rz]的坐标值,长度为6
      • 四轴:[x,y,z,rx]的坐标值,长度为4
    • speed: 表示机械臂运动的速度,范围是0-100
    • mode: ( int): 取值限定 0 和 1。
      • 0 表示机械臂头部移动的路径为非线性,即随机规划路线,只要机械臂头部以保持规定的姿态移动到指定点即可。
      • 1 表示机械臂头部移动的路径为线性的,即智能规划路线让机械臂头部以直线的方式移动到指定点。
  • 返回值: 无

2.3 set_tool_reference(coords)

  • 功能: 设置工具坐标系。
  • 参数说明:
    • coords:
      • 六轴:[x,y,z,rx,ry,rz]的坐标值,长度为6, x,y,z的范围为-280 ~ 280,rx,ry,yz的范围为-314 ~ 314
  • 返回值: 无

2.4 get_tool_reference()

  • 功能: 获取工具坐标系。
  • 返回值: 返回一个长度为6的坐标列表

2.5 get_world_reference()

  • 功能: 获取世界坐标系。
  • 返回值: 返回一个长度为6的坐标列表

2.6 set_world_reference(coords)

  • 功能: 设置世界坐标系。
  • 参数说明:
    • coords:
      • 六轴:[x,y,z,rx,ry,rz]的坐标值,长度为6, x,y,z的范围为-280 ~ 280,rx,ry,yz的范围为-314 ~ 314
  • 返回值: 无

2.7 set_reference_frame(rftype)

  • 功能: 设置基坐标系。
  • 参数说明:
    • rftype: 0 - 基坐标系(默认),1 - 世界坐标系
  • 返回值: 无

2.8 get_reference_frame()

  • 功能: 获取基坐标系。
  • 返回值: 0 - 基坐标系,1 - 世界坐标系,-1 - 通信失败

2.9 set_end_type(end)

  • 功能: 设置末端坐标系。
  • 参数说明:
    • end: 0 - 法兰(默认),1 - 工具
  • 返回值: 无

3.0 get_end_type()

  • 功能: 获取末端坐标系。
  • 返回值: 0 - 法兰(默认),1 - 工具,-1 - 通信失败

3 案例

下面是MyCobot控制代码。

myCobot:

from pymycobot.mycobot import MyCobot
from pymycobot.genre import Coord
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)

# 获取当前头部的坐标以及姿态
coords = mc.get_coords()
print(coords)

# # 智能规划路线,让头部以线性的方式到达[57.0, -107.4, 316.3]这个坐标,以及保持[-93.81, -12.71, -163.49]这个姿态,速度为80mm/s
mc.send_coords([57.0, -107.4, 316.3, -93.81, -12.71, -163.49], 80, 1)

# 设置等待时间1.5秒
time.sleep(1.5)

# 智能规划路线,让头部以线性的方式到达[-13.7, -107.5, 223.9]这个坐标,以及保持[165.52, -75.41, -73.52]这个姿态,速度为80mm/s
mc.send_coords([-13.7, -107.5, 223.9, 165.52, -75.41, -73.52], 80, 1)

# 设置等待时间1.5秒
time.sleep(1.5)

# 仅改变头部的x坐标,设置头部的x坐标为-40。让其智能规划路线让头部移动到改变后的位置,,速度为70mm/s
mc.send_coord(Coord.X.value, -40, 70)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2127569.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何将镜像推送到docker hub

前言 这一篇应该是最近最后一篇关于docker的博客了,咱来个有始有终,将最后一步——上传镜像给他写完,废话不多说,直接进入正题。 登录 首先需要确保登录才能推送到你的仓库中去,在终端输入docker login,输入用户名和…

通信工程学习:什么是HSS归属用户服务器

HSS:归属用户服务器 HSS(归属用户服务器,Home Subscriber Server)是IP多媒体子系统(IMS)中控制层的一个重要组成部分,它扮演着存储和管理用户相关信息的核心角色。以下是关于HSS归属用户服务器的…

中断映射及相关函数例程的控制流

GPIO 和 EXTIx 的映射关系 GPIOx0(xA~G)对应 EXTI0 ; GPIOx1(xA~G)对应 EXTI1 ; GPIOx2(xA~G)对应 EXTI2 ; GPIOx15(xA~G)对应 EXTI15 &…

java重点学习-集合

七 集合 7.1 复杂度分析 7.2 数组 1.数组(Array)是一种用连续的内存空间存储相同数据类型 数据的线性数据结构。 2.数组下标为什么从0开始 寻址公式是:baseAddressi*dataTypeSize,计算下标的内存地址效率较高 3.查找的时间复杂度 随机(通过下标)查询的时间复杂度是O…

通信工程学习:什么是CSCF会话控制功能、P-CSCF代理会话控制功能、I-CSCF询问会话控制功能、S-CSCF服务会话控制功能

一、CSCF会话控制功能 CSCF(Call Session Control Function)会话控制功能是IP多媒体子系统(IMS)内部的核心功能实体,主要负责处理多媒体呼叫会话过程中的信令控制。CSCF在整个IMS网络中起着至关重要的作用,…

第 9 章图像分割

图像分割是将一幅图像分割成有意义区域的过程。区域可以是图像的前景与背景或图像中一些单独的对象。这些区域可以利用一些诸如颜色、边界或近邻相似性等特征进行构建。本章中,我们将看到一些不同的分割技术。 9.1 图割(Graph Cut) 图论中的…

STL和C++11

1 补充知识点 c与c区别 c语言和C不能说一个面向过程,一个面向对象: 面向过程和面向对象只是一种编程思想,不是针对某一种语言的。Linux内核中的C语言就是运用面向对象的思想编写的。只是说,在实现面向对象编程时,C提…

线性因子模型 - PCA的流形解释篇

序言 线性因子模型,作为数据降维与特征提取的重要工具,在机器学习和统计分析领域发挥着关键作用。其中,主成分分析( PCA \text{PCA} PCA)作为线性因子模型的一种经典形式,其流形解释为我们深入理解数据结构…

VBA V3高级视频行为分析系统(含源码)

项目介绍 VBA V3是一个高级的视频行为分析系统,旨在通过实时或离线视频流来检测和分析人类的行为模式。该系统可以识别多种行为,如入侵检测、跌倒检测、异常行为识别等,并能提供实时警报和详细的行为报告。系统的设计充分考虑了易用性和扩展…

3GPP协议入门——物理层基础(三)

1. 栅格 1.1 全局栅格 5G频段范围是0-100GHz,在这100GHz的范围内,划分出了3279165个栅格,这些栅格从0开始编号,一直到编号3279165,每一个编号都代表一个绝对的频域位置,这些编号就叫做NR-ARFCN。   编号和频率范围如…

汽车免拆诊断案例 | 2013款捷豹XF车偶尔无法起动

故障现象 一辆2013款捷豹XF车,搭载3.0 L机械增压发动机(型号为AJ126),累计行驶里程约为20.6万km。车主反映,该车发动机偶尔无法起动,同时组合仪表上会提示很多故障信息;多按几次起动按钮或等待…

【GeekBand】C++设计模式笔记1_介绍

课程目标 理解松耦合设计思想掌握面向对象设计原则掌握重构技法改善设计掌握GOF核心设计模式 什么是设计模式 目标:复用,以不变应万变 GOF设计模式 从面向对象谈起 深入理解面向对象 向下:深入理解三大面向对象机制 封装:隐藏…

linux驱动开发-磁盘管理

在Linux系统中,mount命令是一种非常常见且有用的工具,用于将文件系统连接到指定的挂载点。通过使用mount命令,管理员可以访问和管理存储设备上的文件和目录,包括硬盘驱动器、CD或DVD驱动器、闪存驱动器等。 一、mount基本语法 mo…

非线性规划及其MATLAB实现

目录 引言 非线性规划的基本模型 非线性规划的求解方法 非线性规划的MATLAB实现 例子:多目标优化问题的非线性规划求解 表格总结:MATLAB常用非线性规划函数 实例:使用MATLAB求解非线性投资决策问题 结论 引言 非线性规划(…

Haskell中的数据交换:通过http-conduit发送JSON请求

无论是客户端与服务器之间的通信,还是服务之间的API调用,都需要一种高效、可靠的方法来传输数据。在众多编程语言中,Haskell以其强大的类型系统和函数式编程特性,为构建可靠和高效的数据交换提供了坚实的基础。本文将介绍如何在Ha…

基于ssm+vue+uniapp的食堂线上预约点餐系统小程序

开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…

亚信安慧AntDB-M 只读事务提交优化

一、事务操作介绍 数据库系统一般有三种开启和提交事务方法: 配置autocommit1时,隐式开启事务,每执行一条DML的SQL语句,数据库系统会隐式的自动执行commit逻辑提交事务,不需要用户输入commit执行提交。 配置autocomm…

Qt第三课 ----------按钮的控件属性

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

视频推拉流/直播点播EasyDSS平台安装失败并报错“install mediaserver error”是什么原因?

TSINGSEE青犀视频推拉流/直播点播EasyDSS平台支持音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务,在应用场景中可实现视频直播、点播、转码、管理、录像、检索、时移回看等。此外,平台还支持用户自行上传视频文件,也可…

openeuler-无法dnf安装包问题

有个openEuler release 22.09系统机器,需要dnf安装些包等 [rootlydb ~]# more /etc/openEuler-release openEuler release 22.09 [rootlydb ~]# dnf -y install lrzsz OS …