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

news/2024/11/5 11:09:41 标签: python, 机器人, 开发语言

目录

  • 一、前言
  • 二、设计思路
  • 三、DH的人类推理原理
  • 四、推理规则解析
  • 五、小结
  • PS.扩展阅读
    • ps1.六自由度机器人相关文章资源
    • ps2.四轴机器相关文章资源
    • ps3.移动小车相关文章资源
    • ps3.wifi小车控制相关文章资源

一、前言

随着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端配套资源源代码已经上传(横屏版),下载地址


http://www.niftyadmin.cn/n/5739387.html

相关文章

Java8 新特性 —— Optional API 详解

本文涉及到的知识点有Lambda表达式,函数式接口以及Stream API,有不了解的小伙伴可以先学习前两篇文章: Java8 新特性 —— Lambda 表达式、函数接口以及方法引用详解 Java8 新特性 —— Stream API 详解 前言 Optional类是Java8新引进的一个…

面向 TP 场景能力全面升级, OceanBase 4.2.5 LTS 版正式发布

去年的 OceanBase 年度发布会中,OceanBase 推出了一体化数据库的首个长期支持版——4.2.1 LTS。这一年来,已有数百位客户在真实的生产环境中对该版本进行了验证并成功上线,证明了OceanBase 在TP场景中的卓越性能。与此同时,越来越…

黑马官网最新2024前端就业课V8.5笔记---CSS篇(2)

盒子模型 画盒子 目标:使用合适的选择器画盒子 新属性 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"vi…

TS-AWG控制电光调制器:推动科技应用新发展的利器

一、电光调制有什么用&#xff1f; 如今&#xff0c;基于光学、光子学和脉冲激光以及电光调制器的应用正变得极为流行&#xff0c;最新一代科学家正在为其实际应用开辟新领域&#xff0c;如汽车激光雷达、医疗解决方案、航空航天和国防、量子和激光传感器。 测试挑战、上市时…

1-ARM Linux驱动开发-MIO控制

一、前言 MIO也属于是字符设备&#xff0c;将MIO复用为GPIO可以实现对LED等外设的控制&#xff0c;其本质是从寄存器层面对硬件的控制。这次主要记录一下GPIO控制LED的驱动。 官网ZYNQ寄存器手册https://docs.amd.com/r/en-US/ug1087-zynq-ultrascale-registers/Overview 二…

Chromium127编译指南 Mac篇(一)- 环境准备详解

概述 在开源浏览器生态系统中&#xff0c;Chromium始终扮演着举足轻重的角色。作为Google Chrome的技术基石&#xff0c;它不仅支撑着全球最受欢迎的浏览器之一&#xff0c;更为众多定制化浏览器项目提供了坚实的基础。对于渴望探索浏览器技术深度&#xff0c;或计划开发自有浏…

微信小程序 https://pcapi-xiaotuxian-front-devtest.itheima.net 不在以下 request 合法域名

微信小程序在调用接口的时候出现以上报错&#xff0c;接口没有问题&#xff0c;是因为小程序自动校验了合法域名 打开本地设置&#xff1a; 勾选不校验合法域名&#xff0c;即可 效果如下&#xff1a;

STM32——IIC

目录 1、什么是时序 1.1、非标准时序 1.2、标准时序 2、STM32的标准时序 3、stm32——IIC 3.1、IIC介绍 3.2、 图示 3.3、IIC时序解析 3.4、IIC到底是什么 3.5、自己生成的IIC 4、配置stm32——IIC 1. 配置I2C 2. 发送数据 3. 接收数据 4. 错误处理 1、什么是时…