机器人与3D视觉 Robotics Toolbox Python 二 空间位姿描述

空间位姿描述

二维空间位姿描述

二维空间位姿表示方法

from spatialmath.base import *
from spatialmath import *
T1 = SE2(x=3,y=3,theta=30,unit="deg")
trplot2(T1.A,frame="T1",dims=[0, 5, 0, 5])
T2=transl2(3, 4)
trplot2(T2,frame="T2",dims=[0, 5, 0, 5],color='red')

在这里插入图片描述

三维空间姿态描述

R1=SO3.Rx(60,"deg")*SO3.Ry(30,"deg")*SO3.Rz(50,"deg") #绕x轴旋转60°,再绕y轴旋转30°,再绕z轴旋转50°
trplot(R1.A,frame="A", color= "b")#画出旋转矩阵R1
tranimate(R1.A,fram="A", color= "b")#将R1的变换做成动画
R2=SO3.Rz(50,"deg")*SO3.Ry(30,"deg")*SO3.Rx(60,"deg");#绕z轴旋转50°,再绕y轴旋转30°,再绕x轴旋转60°
trplot(R2.A,frame="B", color="r")#画出旋转矩阵R2
tranimate(R2.A,frame="B",color= "r")#将R2的变换做成动画

在这里插入图片描述

角度表示法

欧拉角表示方法

>>> R3=SO3.Rz(0.1)*SO3.Ry(0.2)*SO3.Rz(0.3)#构造旋转矩阵R3
>>> print(R3)
   0.9021   -0.3836    0.1977    
   0.3875    0.9216    0.01983
  -0.1898    0.05871   0.9801

>>> R4=eul2r(0.1,0.2,0.3)# 欧拉角转化为旋转矩阵
>>> print(R4)
[[ 0.902113   -0.38355704  0.19767681]
 [ 0.3875172   0.92164909  0.01983384]
 [-0.18979606  0.0587108   0.98006658]]
>>> eul=tr2eul(R3.A)# 旋转矩阵转化为欧拉角
>>> print(eul)
[0.1 0.2 0.3]
>>>

RPY角表示方法

>>> R5=SO3.Rz(0.3)*SO3.Ry(0.2)*SO3.Rx(0.1)# 构造旋转矩阵R5
>>> print(R5)
   0.9363   -0.2751    0.2184    
   0.2896    0.9564   -0.03696
  -0.1987    0.09784   0.9752

>>> R6=rpy2r(0.3,0.2,0.1)# rpy角转化为旋转矩阵
>>> print(R6)
[[ 0.97517033 -0.03695701  0.21835066]
 [ 0.0978434   0.95642509 -0.27509585]
 [-0.19866933  0.28962948  0.93629336]]
>>> rpy=tr2rpy(R5.A)# 旋转矩阵转化为rpy角
>>> print(rpy)
[0.1 0.2 0.3]

双向量表示法

a=[1, 0, 0]
o=[0, 1, 0]
R7=SE3.OA(o,a) #将双向量o,a转化为旋转矩阵R7
trplot(R7.A,frame="A", color= "b")#画出旋转矩阵R7

在这里插入图片描述

向量旋转角表示法

vec=[1,0,0]
R8=angvec2tr(theta=20,v=vec,unit='deg')
trplot(R8,frame="A", color= "b")#画出旋转矩阵R8

在这里插入图片描述

四元素表示法

s=0.98335
v=[0.034271, 0.10602, 0.14357]
Q=UnitQuaternion(s,v) # 组成四元数
R9=q2r(Q.A) #四元数转为旋转矩阵
Q1=r2q(R9)  #旋转矩阵转为四元数
rul=Q.eul(unit='deg') #四元数转为欧拉角
rpy=Q.rpy(unit='deg',order='zyx')  #四元数转为rpy角
trplot(R9,frame="R9", color= "b")#画出旋转矩阵R9

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Robotics Toolbox for Python是一款基于Python编程语言开发的机器人学工具箱,可以用于机器人建模、运动规划、运动控制等方面的应用,而且是开源免费的。对于机器人模型的创建,该工具箱提供了丰富的函数库和类别,可以方便地创建出各种复杂的机器人模型,例如斯坦福机器人模型。 首先要准确地了解斯坦福机器人的结构和参数信息,可以通过官方网站或其他文献资料获取。斯坦福机器人是一个17自由度的人形机器人,包括两条腿、两只手臂、头和躯干,每个关节都可以通过舵机或驱动器传动控制。根据机器人的结构和运动特性,可以使用Robotics Toolbox for Python提供的类别和函数库创建机器人模型。 例如,可以使用Robot类别创建机器人对象,设置机器人的尺寸、质量、关节参数、关节限制等。还可以使用Link类别创建机器人的关节对象,设置关节的位置、方向、长度、转动角度等。另外,还可以使用Trajectory类别创建机器人的轨迹对象,用于指定机器人的运动路径和速度等。 在创建完机器人模型后,可以使用Robot类别提供的各种运动控制函数来控制机器人的运动,例如设置机器人的关节角度、速度和加速度等,实现机器人的姿态控制、运动规划等功能。 总之,使用Robotics Toolbox for Python可以方便地创建和控制各种机器人模型,包括斯坦福机器人模型。需要掌握一定的机器人学知识和Python编程基础,才能更好地使用该工具箱。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值