python机器人Agent编程——实现一个机器人DH参数自动生成Agent(上)

目录

一、前言

随着LLM技术的发展,尤其是融入思维链技术、Agent框架、知识图谱等技术,越来越显示出大模型的数学推理能力。

Denavit和Hartenberg(DH)标记法用于描述串联连杆机构的几何形状,是机器人学的基本工具。有了这样的机械臂描述,就可以利用既定的算法技术来找到运动学解、雅可比矩阵、动力学、运动规划和仿真等。然而,构建一个DH模型,对于普通人有一定的门槛,需要进行刻意练习,不适合工程实现。

本篇系尝试利用LLM技术设计实现一个Agent,实现功能是能够根据机械臂各关节坐标的简单认知输入,自动完成DH建模和参数表的生成。使得DH这个建模过程变得不那么晦涩难弄。

二、设计思路

  • 使用语言:python
  • 使用的框架:openai swarm或langchain
  • 大模型选择:Qwen 2.5
  • 构建主要工具:旋转平移符号转换规则、搜索
  • 记忆模块:构造结构化类存储记忆
  • 规划决策模块:思维链,根据《A simple and systematic approach to assigning Denavit-Hartenberg parameter》核心思想形成推理模块
  • 自我评价模块:检查判断推理任务完成
  • 行动模块:能够根据推理结果执行任务

三、DH的人类推理原理

这里主要介绍2002的一个文章,该文章提出了一个简单而系统的方法来分配Denavit-Hartenberg参数,即,可以通过人类直觉性的知识构建的从基座到末端的变换乘积,即坐标系的一系列直观的平移、旋转右乘变换形状如下:

对应机械臂puma:

,并通过他提供的一些列转化公式,如下:

对直观所得形状进行启发式符号推导转化,最终得到DH格式形状:

其中A为:

即DH规定的参数变化顺序,先扰z轴旋转,再沿z轴平移,再沿x轴平移,再饶x轴旋转。(跟MDH正好相反,见博文N轴机械臂的MDH正向建模,及python算法

该方法将DH建模的过程从纯人类DH规则经验,转化为了直观坐标变换经验+纯数学推理任务,降低了DH建模规则学习的门栏,但是事实上,确又筑起了另一个壁垒,就是提高了数学推导的门栏。

我们接下来要做的是把这个壁垒也打破,彻底打掉DH建模的门槛。

四、推理规则解析

根据以上的符号推理系统,总结出进行推理的大致步骤有:

  1. 合并Ty轴运动
  2. 根据A矩结构,查漏补缺,在一定距离窗口进行搜索变换
  3. 局部和全局的协调推理
  4. 停止标准,完成制定自由度N的所有A矩阵
  5. 基本原子操作:交换位置操作(RT左右互换),合并操作(同类合并),分解操作(在A矩缺Rz和Rx时进行构造),移动(T的右移)
    agent需要正对第二个分析进行规划和决策,并调用合适的原子操作进行转化推导,并需要对全局和局部进行终止条件的判断。

五、小结

本篇通过分析一种DH数学方法,结合大模型Agent的技术手段,对关于实现DH参数自动生成的智能体有了一个初步的想法。接下来的篇幅需要通过python编程一步一步来实现这个idea。

[------------本篇完-------------]

PS.扩展阅读


对于python机器人编程感兴趣的小伙伴,可以进入如下链接阅读相关咨询

ps1.六自由度机器人相关文章资源

(1) 对六自由度机械臂的运动控制及python实现(附源码)

(2) N轴机械臂的MDH正向建模,及python算法

ps2.四轴机器相关文章资源

(1) 文章:python机器人编程------用python实现一个写字机器人

(2)python机器人实战------0到1创建一个自动是色块机器人项目-CSDN直播

(3)博文《我从0开始搭建了一个色块自动抓取机器人,并实现了大模型的接入和语音控制-(上基础篇)》的vrep基础环境

(3)博文《我从0开始搭建了一个色块自动抓取机器人,并实现了大模型的接入和语音控制-(上基础篇)》的vrep基础环境

(4)实现了语音输入+大模型指令解析+机器视觉+机械臂流程打通

ps3.移动小车相关文章资源

(1)python做了一个极简的栅格地图行走机器人,到底能干啥?[第五弹]------解锁蒙特卡洛定位功能-CSDN博客

(2) 对应python资源:源码地址

(3)python机器人编程------差速AGV机器、基于视觉和预测控制的循迹、自动行驶(上篇)_agv编程-CSDN博客

(4)python机器人编程------差速AGV机器、基于视觉和预测控制的循迹、自动行驶(下篇)_agv路线规划原则python-CSDN博客

对应python及仿真环境资源:源码链接


ps3.wifi小车控制相关文章资源

web端配套资源源代码已经上传(竖屏版),下载地址

仿真配套资源已经上传:下载地址

web端配套资源源代码已经上传(横屏版),下载地址

相关推荐
Main. 245 分钟前
C++ 继承
开发语言·c++
sevevty-seven6 分钟前
java重要知识点 JVM基本结构
java·开发语言·jvm
TANGLONG2228 分钟前
【初阶数据结构与算法】复杂度分析练习之轮转数组(多种方法)
java·c语言·数据结构·c++·python·算法·面试
提笔惊蚂蚁14 分钟前
java-web-day7-会话跟踪技术
java·开发语言·前端·程序人生
蚍蜉撼树谈何易15 分钟前
C++线程池
开发语言·c++
水水阿水水22 分钟前
第二章:C语言基础(三)
linux·c语言·开发语言·算法
恒风521223 分钟前
空元组同一空间,空列表不是同一空间print(a is b, c is d)
python
爱吃涮毛肚的肥肥(暂时吃不了版)28 分钟前
Linux高阶——1103—修改屏蔽字&&信号到达及处理流程&&时序竞态问题
linux·运维·服务器·开发语言·c++·后端
尘浮生31 分钟前
Java项目实战II基于Java+Spring Boot+MySQL的高校办公室行政事务管理系统(源码+数据库+文档)
java·开发语言·数据库·spring boot·后端·maven·intellij-idea
码农小伙1 小时前
java设计模式之监听者模式
java·开发语言·设计模式