首页 > 编程语言 >基于深度学习的机器人智能控制算法 笔记

基于深度学习的机器人智能控制算法 笔记

时间:2024-11-02 08:47:49浏览次数:3  
标签:q1 机器人 控制算法 robot 笔记 逆解 np te data

正解/逆解

求正解/逆解有现成的库,参考https://github.com/petercorke/robotics-toolbox-python,代码如下:

import roboticstoolbox as rtb
import numpy as np
np.set_printoptions(precision=6, suppress=True)
robot = rtb.models.Panda()

qr = np.array([0, -0.3, 0, -2.2, 0, 2.0, np.pi / 4])
qz = np.zeros(7)

print("正解")
te = robot.fkine(qr)
print(te.data[0])

print("逆解")
# 可能存在多个逆解,若不设置seed, 多次执行返回的结果可能不一样
# q1 = robot.ikine_LM(te.data[0], q0=qz).q
q1 = robot.ikine_LM(te.data[0], q0=qz, seed=1234).q
print(q1)

# 检查逆解是否正确
assert np.allclose(te.data[0], robot.fkine(q1).data[0])

输出:

正解
[[ 0.995004  0.        0.099833  0.484047]
 [ 0.       -1.       -0.       -0.      ]
 [ 0.099833  0.       -0.995004  0.41263 ]
 [ 0.        0.        0.        1.      ]]
逆解
[ 2.684527  0.329245 -2.734035 -2.197693  0.147658  1.990311  0.668895]

可视化也很方便

robot.plot(qr, backend="swift", block=True)

输出:

STEP格式文件

可以将STEP格式转换为GLB格式,参考https://github.com/trimesh/cascadio,代码如下:

import cascadio
cascadio.step_to_glb("wrist_mount.step", "wrist_mount.glb", 0.1, 0.5)

import trimesh
trimesh.load("wrist_mount.glb").show()

摄像头基础知识

焦点/焦距/视场角/光圈/景深/光学畸变,参考https://www.optmv.com/content/details113_4276.html

标签:q1,机器人,控制算法,robot,笔记,逆解,np,te,data
From: https://blog.csdn.net/weixin_42885381/article/details/143427018

相关文章

  • C++详细笔记(五)
    1.类和对象1.1运算符重载(补)1.运算符重载中,参数顺序和操作数顺序是一致的。2.一般成员函数重载为成员函数,输入流和输出流重载为全局函数。3.由1和2只正常的成员函数默认第一个参数为this指针而重载中参数顺序和操作数顺序要一致,则导致使用时为d<<cout;(不符合使用习惯正常为......
  • 侯捷C++学习笔记
    classcomplex{public:complex(doubler=0,doublei=0) //构造函数complex,没有返回值:re(r),im(i)   //初值列{} //(大气的写法)上面等同于complex(doubler=0,doublei=0){re=r;im=i;} complex&operator+=(constcomplex&);//passbyreference ......
  • ctf web赛道基础 万字笔记
    《Java代码审计》http://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247484219&idx=1&sn=73564e316a4c9794019f15dd6b3ba9f6&chksm=c0e47a67f793f371e9f6a4fbc06e7929cb1480b7320fae34c32563307df3a28aca49d1a4addd&scene=21#wechat_redirect《Web安全》http......
  • UEFI 笔记 001 —— 什么是 ACPI method
    声明:个人笔记,概不负责所谓ACPImethod本质上就是Callback是在OS主导下,OS发起的,对SystemFirmware的调用。类似在Windows上用C编写Win32应用,需要实现一堆OS要求的Callback函数。ACPImethod的提供者,事实上在实现OS要求的Callback所不同的是,OS调用C应......
  • 4-10分钟搭建个免费的博客(个人笔记),初识wordpress
    最近几年博客的开源项目wordpress火得不行,今天借着使用宝塔的机会,快速试了一下,发现其功能确实比较全面,使用起来学习成本也非常低。把这个过程记录下来,让一个绝对的新手,按着操作,也可以搭建起来。同时也截图一下wordpress的后台,让大家通过本篇文章,对wp也有个直观的认识。为了加速......
  • Mysql学习笔记4--用户权限
    Mysql学习笔记4--用户权限新建用户root登陆ssh登陆服务器,然后以root账户登陆Mysql。sudomysql-uroot-p创建新用户CREATEUSER'John_Lennon'@'%'IDENTIFIEDBY'Beatles!666';创建一个新用户John_Lennon,密码为Beatles!666。其中@后面的%代表可以从任意IP登陆此账......
  • 深信服学习笔记-Day0.5
    01信息收集之DNS信息查询综合实验whois查询站长之家查询利用nslookup工具进行域名查询(windows中的命令提示符中进行操作,kali终端中使用dig进行查询使用DNS子域名爆破工具,针对子域名进行爆破,同时解析出对应的IP地址。在github上查找subDomainsBrute工具。--在03子域名收集......
  • 越疆机器人与上位机的通讯
        越疆机器人的开发终于整完了。整体来说这个算比较简单,但是由于本身越疆是通过他们自己的上位机进行控制与通讯,并不是单纯用lua解释器去运行,因此效率属实不算高。最近也是在搞UR的开发,这个真的是一言难尽,明天加班的时候再吐槽。    首先确认一点,越疆机器人......
  • 学习笔记(二十二):ArkTS语言-空安全
    概述:默认情况下,ArkTS中的所有类型都是不可为空的,因此类型的值不能为空。这类似于TypeScript的严格空值检查模式(strictNullChecks),但规则更严格letx:number=null;//编译时错误lety:string=null;//编译时错误letz:number[]=null;//编译时错误可以为......
  • 学习笔记(二十):ArkTS语言-函数
    一、函数声明包含其名称、参数列表、返回类型和函数体functiongetName(defaultName:string):string{returndefaultName==='Alice'?defaultName:"Tom"} 二、可选参数格式可为name?:TypefunctiongetName(defaultName?:string):string{returndefaultName==null......