现代控制理论(机器人或人工智能方向)补充资料:Python Control Systems Library + Modern Robotics

2022-04-29 20:45:07 浏览数 (1)

现代控制理论广泛应用于智能驾驶和机器人领域,可自行检索资料学习。 在进行研究探索学习时,推荐如下一些资料。 除了掌握Matlab/C /Java之外,学习一下Python也是不错的选择。 Python控制系统库是一个Python模块,它实现了反馈控制系统分析和设计的基本操作。 http://python-control.org

Python控制系统库

Python控制系统库是一个Python模块,它实现了反馈控制系统分析和设计的基本操作。

特点

  • 状态空间和频域中的线性输入/输出系统
  • 方框图代数:串行,并行和反馈互连
  • 时间响应:初始,步骤,冲动
  • 频率响应:Bode和Nyquist图
  • 对照分析:稳定性,可达性,可观察性,稳定性边际
  • 控制设计:特征值放置,线性二次调节器
  • 估计器设计:线性二次估计器(卡尔曼滤波器)

链接

  • 项目主页:http://python-control.org
  • 源代码存储库:https://github.com/python-control/python-control
  • 文档:http://python-control.readthedocs.org/
  • 问题跟踪器:https://github.com/python-control/python-control/issues

介绍

欢迎使用Python控制系统工具箱(python-control)用户手册。本手册包含有关使用python-control软件包的信息,包括软件包中所有函数的文档以及说明其用法的示例。

工具箱概述

python-control包是一组python类和函数,它们实现了反馈控制系统的分析和设计的常用操作。最初的目标是实现Astrom和Murray 教科书反馈系统中的示例所需的所有功能。提供了MATLAB兼容模块,它提供了许多与MATLAB控制系统工具箱中可用命令相对应的常用功能。

与MATLAB的一些区别

python-control包使用NumPy和 SciPy。可以在此处找到NumPy和MATLAB之间的一般差异列表。

更具体地说,在python-control包方面,请注意以下事项:

  • 必须在向量中包含逗号。所以1 2 3必须是1,2,3。
  • 返回多个参数的函数使用元组。
  • 不能使用大括号来收藏; 使用元组代替

V-Rep介绍:https://cloud.tencent.com/developer/article/1387065

强烈推荐学习这本书,并实现其中案例。 http://hades.mech.northwestern.edu/index.php/Modern_Robotics

正在发布该书的四个版本。所有版本都具有完全相同的内容和分页。它们的区别仅在于边距的大小和打印的大小,在胶乳化后在Adobe Acrobat中进行操作。其中两个版本具有工作超链接,用于在计算机或平板电脑上导航书籍。

有工作的超链接。 (要使用超链接导航书籍,请单击超链接。要返回您的来源,请选择适合您的PDF阅读器的按钮或按键。例如,在使用Acrobat或Acrobat Reader的Mac上,使用cmd-left arrow使用Mac上的预览,使用cmd- [。其他操作系统上的某些阅读器使用左箭头。您可以谷歌查看哪种解决方案适用于您的PDF阅读器。)

  • 默认8.5x11或A4版本。可打印版本,10磅字体和大边距。
  • 平板电脑版。已消除边距,因此在计算机或平板电脑上查看文档时不会浪费空间。

没有工作的超链接。

  • 大字体8.5x11或A4版本。可打印版本,相当于12磅字体,边距小于10磅默认版本。
  • 2up版本。可打印版本,每页有2个书页,如果你有好眼睛可以节省纸张。相当于大约8.5磅的字体。

这些文件已压缩到大约7 MB。如果您在阅读它们时遇到任何问题,请告诉我们。请注意,最新版本的默认Mac OS X pdf阅读器预览会出现一些错误,这些错误会在pdf文件中显示某些图像。如果数字不正确,请尝试更好的pdf查看器,如Acrobat Reader。

目录:

  1. 预习
  2. 配置空间
  3. 刚体运动
  4. 正向运动学
  5. 速度运动学和静力学
  6. 反向运动学
  7. 闭链运动学
  8. 开链动力学
  9. 轨迹生成
  10. 运动规划
  11. 机器人控制
  12. 抓握和操纵
  13. 轮式移动机器人

附录A.有用的配方总结

附录B.轮换的其他表示

附录C. Denavit-Hartenberg参数

附录D.优化和拉格朗日乘数

有用的补充材料。

  • 练习练习,为您提供更多的材料经验。这些练习练习带有解决方案,因为剑桥只为教师提供了章末解决方案。
  • 本书附带的线性代数复习附录。

勘误表

现代机器人勘误表

我们欢迎您的意见和更正! 请点击此处报告对本书,练习练习或线性代数复习的任何更正。(请确保您使用的是本书的印刷版或2017年5月3日的在线版本。)

软件

从GitHub下载书籍软件。

本书附带的软件是用Mathematica,MATLAB和Python编写的。它被编写为具有教育意义并强化了本书中的概念,而不是尽可能提高计算效率。

该软件的起源是学生家庭作业的解决方案。2017年1月发布了一项重大更新,修正了早期版本中的一些错误。

仿真

我们发现V-REP机器人仿真环境是本书附带的有价值的学习工具。它是免费的教育用途和跨平台。在西北大学的ME 449中,我们使用它来试验不同机器人的运动学,并为逆运动学,动态模拟和控制器提供动画解决方案。

这个页面可以让您快速开始使用V-REP。

此页面提供“场景”,允许您以交互方式探索不同机器人的运动学(例如,Universal Robots UR5 6R机器人手臂和KUKA youBot移动机械手),并动画轨迹,这些是运动学,动力学章节中练习的结果和控制。

  • 通过求解数值逆运动学创建的UR5轨迹视频(第6章,逆运动学)
  • UR5在重力作用下坠落10秒的视频,假设关节没有摩擦或传动(第8章,开链动力学)
  • 使用Jacobian-pseudoinverse控制末端执行器运动的KUKA youBot移动机械手的视频(第13章,轮式移动机器人)

补充信息

  • 您可以使用UR5参数进行动态模拟(注意:值不准确,并且不考虑关节处传动的影响)
    • Mathematica笔记本中的UR5参数
    • MATLAB中的UR5参数
    • Python中的UR5参数
  • 本书第4章中的UR5 URDF文件(.pdf格式或.txt格式)。仅用于学习目的,不是实际使用; 它仅包含运动和惯性属性,并未完全考虑齿轮传动的影响。该文件基于ROS-Industrial团队的UR5 URDF。
  • Peter Corke用于MATLAB的优秀机器人工具箱和其他机器人软件从他的网站链接。
  • 用于时间最佳时间缩放的开源软件(第9.4章),由Quang-Cuong Pham提供。

 About the Authors

Kevin M. Lynch is Professor and Chair of the Mechanical Engineering Department at Northwestern University. He is a member of the Neuroscience and Robotics Lab and the Northwestern Institute on Complex Systems. His research focuses on dynamics, motion planning, and control for robot manipulation and locomotion; self-organizing multi-agent systems; and physically interacting human-robot systems. He is Editor-in-Chief of the IEEE Transactions on Robotics, former Editor-in-Chief of the IEEE International Conference on Robotics and Automation Conference Editorial Board, and a former Editor of the IEEE Transactions on Robotics, the IEEE Robotics and Automation Letters, and the IEEE Transactions on Automation Science and Engineering. He is a co-author of The Principles of Robot Motion (MIT Press, 2005) and Embedded Computing and Mechatronics with the PIC32 Microcontroller (Elsevier, 2015), an IEEE fellow, and the recipient of the IEEE Early Career Award in Robotics and Automation, Northwestern's Professorship of Teaching Excellence, and the Northwestern Teacher of the Year award in engineering. He earned a BSE in Electrical Engineering from Princeton University and a PhD in Robotics from Carnegie Mellon University. Frank C. Park received his BS in electrical engineering from MIT and his PhD in applied mathematics from Harvard University. From 1991 to 1995 he was assistant professor of mechanical and aerospace engineering at the University of California, Irvine. Since 1995 he has been professor of mechanical and aerospace engineering at Seoul National University, where he is currently chair of the department. His research interests are in robot mechanics, planning and control, vision and image processing, and related areas of applied mathematics. He has been an IEEE Robotics and Automation Society Distinguished Lecturer, and received best paper awards for his work on visual tracking and parallel robot design. He has served on the editorial boards of the Springer Handbook of Robotics, Springer Advanced Tracts in Robotics (STAR), Robotica, and the ASME Journal of Mechanisms and Robotics. He has held adjunct faculty positions at the NYU Courant Institute and the Interactive Computing Department at Georgia Tech. He is a fellow of the IEEE, former Editor-in-Chief of the IEEE Transactions on Robotics, and developer of the edX course Robot Mechanics and Control I, II. 

https://github.com/NxRLab/ModernRobotics

Modern Robotics: Mechanics, Planning, and Control

Code Library

This repository contains the code library accompanying Modern Robotics: Mechanics, Planning, and Control (Kevin Lynch and Frank Park, Cambridge University Press 2017). The user manual is in the doc directory.

The functions are available in:

  • Python
  • MATLAB
  • Mathematica

Each function has a commented section above it explaining the inputs required for its use as well as an example of how it can be used and what the output will be. This repository also contains a pdf document that provides an overview of the available functions using MATLAB syntax. Functions are organized according to the chapter in which they are introduced in the book. Basic functions, such as functions to calculate the magnitude of a vector, normalize a vector, test if the value is near zero, and perform matrix operations such as multiplication and inverses, are not documented here.

The primary purpose of the provided software is to be easy to read and educational, reinforcing the concepts in the book. The code is optimized neither for efficiency nor robustness.

Some unofficial versions in other languages are being developed:

  • C version
  • Julia version

Any contribution is welcomed but the maintenance team for this library here doesn't vouch for the reliability of those projects.

0 人点赞