三轴机械臂逆运动学解算(附代码)

这篇具有很好参考价值的文章主要介绍了三轴机械臂逆运动学解算(附代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

三轴机械臂逆运动学解算(附代码)

机械臂运动位姿的求解有两种方式

一、正运动学

通过控制已知的连轴(舵机或电机)的旋转角度,求出机械臂终端的空间坐标

二、逆运动学

通过已知的抓取点的空间坐标,求解出三个舵机所需要转动的角度,这里主要讲解逆运动学解法

三轴机械臂逆运动学解算(附代码)
​​

此处θ1 ,θ2, θ3是三个舵机所需转动的角度 ,γ是杆3相对于x轴的夹角,根据刚体旋转,逆运动学求解,会得到两个解,即有两种姿态,相对于前一个杆逆时针旋转的夹角为正,顺时针为负。如上图第一种姿态(上折线),θ1<0,θ2<0,θ3>0

三、求解

(这里就第一种姿态求解)

①求B点坐标

已知空间点A坐标x,y。(因为三杆必然处于同于平面,若涉及z坐标,则机械臂下方云台的解算应考虑在内。

Bx = x - L3*cos(γ);

By = y - L3*sin(γ);

②求出θ1

cosβ = (Bx^2+ By^2 + L1^2 -L2^2) / (2* L1 *sqrt(Bx^2 +By^2));

β = acos(cosβ)*180/pi;

α = atan2(By,Bx)*180/pi;

θ1=-(pi/2-α-β); //数学上θ1为正,但应用上应为负值

③求出θ2

cosθ2 = (Bx^2 + By^2 - L1^2 - L2^2)/(2* L1 *L2);

θ2 = - acos(cosθ2 )*180/pi; //同理θ2改为负值

④求出θ3(这里的γ需预先定好)

通过γ = θ1 + θ2 + θ3

求出θ3 = γ- θ1- θ2

至此三个角度结算完毕

四、代码实现

#include “stdio.h”
#include “math.h”
float theta[3];
#define pi 3.1415
void caculate(float x, float y, float z, float * ptheta)
{
float L1 = 0.14; //杆长
float L2 = 0.11;
float L3 = 0.04;
Bx=x-L3; //这里设置γ为-90
By=y;
lp=Bx* Bx+By* By;
if (sqrt(lp)>=L1+L2 || sqrt(lp)<=fabs(L1-L2))
printf(“unreached”);
alpha = atan2(By,Bx);
beta = acos((L1* L1+lp-L2* L2)/(2* L1* sqrt(lp))); //这里使用弧度制
ptheta[0] = -(pi/2.0-alpha-beta);
ptheta[1] = acos((L1* L1+L2* L2-lp)/(2* L1 *L2))-pi;
ptheta[2] = -ptheta[0] -ptheta[1]- pi/2;
}

caculate(0.14, 0.09, 0.1, theta);

ROS moveit仿真效果

三轴机械臂逆运动学解算(附代码)
参考博客
(https://blog.csdn.net/xinglucao/article/details/86534402?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164432010116780261924975%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=164432010116780261924975&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~hot_rank-1-86534402.nonecase&utm_term=%E4%B8%89%E8%BD%B4%E6%9C%BA%E6%A2%B0%E8%87%82%E6%8E%A7%E5%88%B6%E7%AE%97%E6%B3%95&spm=1018.2226.3001.4450)

​修改:代码中部分 * 没有打出来文章来源地址https://www.toymoban.com/news/detail-440794.html

void caculate(float x, float y, float z, float *ptheta)
{
	float L1 = 0.14; //杆长
	float L2 = 0.11;
	float L3 = 0.04;
	float alpha, beta, lp, Bx, By;
	Bx=x-L3; //这里设置γ为-90
	By=y;
	lp=Bx*Bx+By*By;
	if (sqrt(lp)>=L1+L2 || sqrt(lp)<=fabs(L1-L2))
		return 1;
	alpha = atan2(By,Bx);
	beta = acos((L1*L1+lp-L2*L2)/(2*L1*sqrt(lp))); //这里使用弧度制
	ptheta[0] = -(pi/2.0-alpha-beta);
	ptheta[1] = acos((L1*L1+L2*L2-lp)/(2*L1*L2))-pi;
	ptheta[2] = -ptheta[0] -ptheta[1]- pi/2.0;
	return 0;
}

到了这里,关于三轴机械臂逆运动学解算(附代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • matlab机械臂建模运动学仿真+轨迹规划

    1.内容参考B站视频:https://www.bilibili.com/video/BV1q44y1x7WC?spm_id_from=333.337.search-card.all.click 2.工具箱10.4版下载 https://download.csdn.net/download/yohnyang/86099523 3.关于机器人控制相关算法的C++实现可以详见我的专栏 :https://blog.csdn.net/yohnyang/category_12119720.html Link类使用介绍:https://blog.csdn.

    2024年02月01日
    浏览(28)
  • 机械臂速成小指南(九):正运动学分析

    👨‍🏫🥰🥳需要机械臂相关资源的同学可以在我的CSDN主页中寻找哦🤖😽🦄 指南目录📖: 🎉🎉机械臂速成小指南(零点五):机械臂相关资源🎉🎉 机械臂速成小指南(零):指南主要内容及分析方法 机械臂速成小指南(一):机械臂发展概况 机械臂速成小指南(二

    2023年04月18日
    浏览(27)
  • (6)六轴机械臂的运动学正、逆解

    下面在前面的ur5机械臂的DH参数基础是对其正逆解进行求解,为了后面能在MATLAB中利用stl文件进行实际显示,这里以标准DH参数为例进行讲解。( 修正DH参数在用plot3d函数是显示失败,不知道是不是这个函数只能显示标准dh参数的机械臂模型,有知道的网友可以在评论里告知一

    2023年04月09日
    浏览(40)
  • MATLAB - 使用运动学 DH 参数构建机械臂

           使用 Puma560® 机械手机器人的 Denavit-Hartenberg (DH) 参数,逐步建立刚体树形机器人模型。在连接每个关节时,指定其相对 DH 参数。可视化机器人坐标系,并与最终模型进行交互。 DH 参数定义了每个刚体通过关节与其父体连接的几何形状。这些参数遵循四种变换惯例:

    2024年01月16日
    浏览(30)
  • aubo-i5机械臂(1)-正运动学求解

    目录 1.DH表建立 2.Matlab实现正运动学求解  注:使用改进DH表建立的  根据公式求出相邻连杆的变换矩阵 因公式相同,则使用for循环求出相邻连杆的齐次变换矩阵并相乘得出末端到基座的其次变换矩阵。

    2024年02月02日
    浏览(43)
  • 基于STM32F103控制舵机 仿真 简单二轴机器人逆运动学(20220615完成 正在处理三轴)

    本项目基于 正点原子精英(stm32f103zet6) 控制小舵机 模拟 二轴机器人逆运动学控制。 目录 概述: 1. 我的问题总结 2.stm32控制部分 与机械部分 2.1 对于二轴机器人设计 2.2 stm32 输出 pwm 2.3 舵机控制 3.正运动学 3.1 D-H建模下对姿态的描述 4.逆运动学 4.1 几何解法 4.2 代数解法 4.3 多重

    2023年04月20日
    浏览(48)
  • 六自由度机器人(机械臂)运动学建模及运动规划系列(一)——简介

    毕业设计做了六轴机器人相关的课题,做完之后学到很多,在这里分享一下。本篇首先对六轴机器人及其研究内容进行简单的介绍。 六轴机器人中的六轴指个六自由度,由关节和连杆组成。常见的六轴机器人为 串联型旋转关节机器人 。这里以一款川崎机器人为例,展示一下

    2024年02月02日
    浏览(34)
  • article-六轴机械臂(带抓手)运动学分析+轨迹规划

    1正运动学分析 采用标准的D-h法进行机械腿模型分析: D-h表如下 (2)通过(1)求解出机器人各位姿变换矩阵后,求解机器人手臂变换矩阵 ** ** 。通过matlab 计算,写出机器人末端位置。 正运动学分析 根据D-H表规定得到如下变换矩阵为: 根据DH参数求解变换矩阵的函数trans

    2024年02月11日
    浏览(31)
  • 六自由度机器人(机械臂)运动学建模及运动规划系列(四)——轨迹规划

    对机器人进行轨迹规划的主要任务是,根据机器人的工作环境和工作任务要求,求得一系列机器人末端位姿变换的时间序列,使得机器人末端可以正确地从初始姿态沿着期望的轨迹运动到终止位姿,完成工作任务,。对于六自由度的机器人来说,轨迹规划要解决的关键问题是

    2024年02月03日
    浏览(56)
  • 机械臂多任务逆运动学(优先级同等和存在优先级)

    我们经常使用微分运动学来计算机器人的逆运动学,对于单个任务的机械臂的逆运动学使用的是梯度投影法: 冗余机械臂求解逆运动学解——梯度投影法 但是对于多任务的逆运动学在一般的机器人学里面很少有提及,最近看到了相关的论述,于是做一下笔记整理一下。 设共

    2024年02月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包