5.24机器人基础-入门1

2024-05-24 17:36
文章标签 基础 入门 机器人 5.24

本文主要是介绍5.24机器人基础-入门1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考书籍:《机器人学导论》John.J.Craig

机器人方面的学习和线性代数、矩阵论部分的学习密切相关,建议先学习线性代数会更好理解此部分内容。虽然学了线代但是能忘的都忘得差不多的我要泪目了。本文主要介绍基础的运动学和动力学区别,正向运动学、逆向运动学的简单介绍。

写在前面:推荐书籍和教学视频

机器人学习书籍推荐 - 知乎基础篇机器人与数学(尤其是微积分、线性代数、矩阵论、概率论、数值方法等)之间有着密切的关系。因此,为了能够更好理解诸如刚体的位姿描述与变换,正逆运动学 / 动力学、微分运动学等知识,建议首先打好数学基…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/144466970

 目录

一、区分运动学和动力学

1.1运动学 (Kinematics)

1.2动力学 (Dynamics)

1.3主要区别

1.4其他力学

材料力学(Mechanics of Materials)

系统动力学(System Dynamics)

二、运动学-正向逆向

正向运动学 (Forward Kinematics)

应用和过程:

应用实例:

逆向运动学 (Inverse Kinematics)

应用和过程:

应用实例:

比较

实例说明

正向运动学实例:

逆向运动学实例:


一、区分运动学和动力学

一字之差,研究的东西有比较大的差异。简而言之,运动学是描述“物体如何运动”的科学,而动力学是解释“为什么物体会这样运动”的科学。

运动学(Kinematics)和动力学(Dynamics)是力学的两个重要分支,尽管它们都涉及物体的运动,但研究的侧重点不同。

1.1运动学 (Kinematics)

运动学主要研究物体运动的几何特征,而不考虑引起这种运动的力和质量。运动学主要回答“如何运动”的问题,而不涉及“为什么会运动”。研究内容包括:

1. 位置(Position):物体在空间中的具体位置。

2. 速度(Velocity):物体位置随时间变化的快慢和方向。

3. 加速度(Acceleration):物体速度随时间变化的快慢和方向。

运动学的基本方程主要通过位置、速度和加速度的关系来描述物体的运动轨迹和运动规律

1.2动力学 (Dynamics)

动力学研究引起物体运动的原因,即力和物体的质量。它不仅描述物体如何运动,还解释为什么物体会这样运动。动力学包括以下两个主要分支:

1. 质点动力学(Particle Dynamics):研究质点或质点系的运动。通过牛顿运动定律,分析质点在各种力作用下的运动。

2. 刚体动力学(Rigid Body Dynamics):研究刚体的运动,考虑刚体的质量分布和力矩。

动力学的基本方程主要包括牛顿第二定律(\(F = ma\))和动量守恒定律等,用来描述力如何作用于物体并引起其运动。

1.3主要区别

1. 研究对象

   - 运动学:研究物体的运动规律,主要关注位置、速度和加速度等物理量的变化。

   - 动力学:研究物体的运动原因,主要关注力、质量以及它们如何影响物体的运动。

2. 是否考虑力:

   - 运动学:不考虑作用在物体上的力。

   - 动力学:考虑作用在物体上的力及其对运动的影响。

3. 方程和描述:

   - 运动学:使用运动方程描述位置、速度和加速度之间的关系。

   - 动力学:使用牛顿运动定律和其他力学定律描述力和运动的关系。

1.4其他力学

材料力学(Mechanics of Materials)

材料力学是研究材料在外力作用下的变形和内部应力分布的学科。主要内容包括:

  1. 变形(Deformation):研究材料在外力作用下的形变,通常使用应变(Strain)来描述。这包括拉伸、压缩、剪切和弯曲等不同类型的变形。
  2. 应力(Stress):研究材料内部由于外力作用产生的力。应力通常以力除以面积表示,有正应力(拉伸或压缩)和剪应力。
  3. 微元(微分单元):在材料力学中,通过微分单元(即微元)的概念,分析材料内部应力和应变的分布。微元分析帮助理解材料在不同点上的受力和变形情况。
  4. 弹性和塑性:研究材料在不同载荷下的响应,包括弹性变形(可恢复的)和塑性变形(不可恢复的)。
  5. 材料的性质:包括杨氏模量(Elastic Modulus)、屈服强度(Yield Strength)、断裂韧性(Fracture Toughness)等参数。

系统动力学(System Dynamics)

系统动力学是一门研究复杂系统的行为及其相互作用的学科。它广泛应用于工程、物理、生物、经济和社会科学等领域。以下是一些核心概念:

  1. 阻尼(Damping):阻尼是指系统中由于摩擦或其他阻力导致能量耗散的现象。在动力学系统中,阻尼影响系统的振动特性和稳定性。常见的阻尼类型包括粘性阻尼(Viscous Damping)和库仑阻尼(Coulomb Damping)。
  2. 自由度(Degrees of Freedom):系统中独立运动的数目。自由度越多,系统的动态行为越复杂。
  3. 振动分析:研究系统在外力作用下的振动响应,包括固有频率、模态分析和谐振现象。
  4. 微分方程:动力学系统通常通过微分方程描述其时间演变行为,包括牛顿方程、拉格朗日方程和哈密顿方程等。
  5. 反馈和控制:研究系统如何通过反馈机制进行控制,以达到稳定或期望的行为。

二、运动学-正向逆向

正向运动学(Forward Kinematics)和逆向运动学(Inverse Kinematics)是运动学中两个重要的概念,特别是在机器人学、计算机图形学和动画中应用广泛。它们分别解决不同的问题:

正向运动学 (Forward Kinematics)

正向运动学研究的是从机器人的关节参数(如角度、位置)推导出末端执行器的位置和姿态的问题。也就是说,给定各个关节的运动状态,计算机器人末端的具体位置和方向。

应用和过程:
  1. 输入:关节的角度或位置。
  2. 输出:末端执行器的位置和姿态(例如在三维空间中的位置和方向)。
  3. 过程:使用几何关系和转换矩阵,通过逐层变换计算出最终的位置信息。

正向运动学主要使用的是关节空间到工作空间的转换。具体方法包括使用齐次变换矩阵、旋转矩阵和位移向量等。

应用实例:
  • 机器人手臂:确定机器人手臂的每个关节角度,计算手臂末端的位置以执行特定任务。
  • 动画制作:计算一个角色骨骼的各部分位置,使角色摆出预定的姿势。

逆向运动学 (Inverse Kinematics)

逆向运动学研究的是从末端执行器的位置和姿态推导出需要的关节参数的问题。即给定末端执行器的目标位置和方向,求解各个关节的角度或位置。

应用和过程:
  1. 输入:末端执行器的目标位置和姿态。
  2. 输出:各个关节的角度或位置。
  3. 过程:通过逆向计算,求解出能够实现末端执行器到达指定位置的关节参数。

逆向运动学是工作空间到关节空间的转换。求解逆向运动学问题通常比正向运动学更复杂,可能需要使用数值方法、优化算法或迭代求解技术。

应用实例:
  • 机器人手臂:确定机器人手臂末端需要到达某一位置,通过计算得出各个关节的角度。
  • 虚拟角色动画:通过控制角色的手、脚等末端位置,计算角色的关节角度来生成自然的动作。

比较

  • 难度

    • 正向运动学:计算较为直接,通常通过直接的几何关系或矩阵变换即可求得结果。
    • 逆向运动学:计算较为复杂,涉及求解非线性方程组,有时可能有多解或无解的情况。
  • 应用领域

    • 正向运动学:主要用于模拟和分析给定关节参数下的运动情况,常见于运动规划和路径生成
    • 逆向运动学:主要用于目标驱动的运动控制,例如让机器人手臂抓取特定物体,或让虚拟角色摆出特定姿势。

实例说明

简单例子去理解一下,以后的篇幅会细写怎么进行运动学的正解逆解。

正向运动学实例:

设有一个两连杆机械臂,关节角度分别为 𝜃1 和 𝜃2,连杆长度分别为 𝐿1和 𝐿2。末端执行器的位置 (𝑥,𝑦)可以通过正向运动学计算为:

逆向运动学实例:

对同一个两连杆机械臂,若末端执行器需要到达位置 (𝑥,𝑦),逆向运动学求解各个关节角度 𝜃1和 𝜃2。方程组可能是:

通过这些方程,可以求出机器人关节的角度,以实现末端执行器到达指定位置的目标。

这篇关于5.24机器人基础-入门1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/999078

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务