1.Arduino开源机器人汇总(基于 GRBL或Marlin)
2.干货|开源MIT Min cheetah机械狗设计(二十三)运动控制器源码解析---控制和优化思想
3.[1](含源码)通过关节力矩指令控制LBR/iiwa机械臂运动
4.干货|开源MIT Min cheetah机械狗设计(三十二)番外篇(8)---Cartographer源码解读
5.干货|开源MIT Min cheetah机械狗设计(二十一)运动控制器源码解析---刚体动力学建模
6.干货|开源MIT Min cheetah机械狗设计(十四)运动控制器源码解析---四足机器人浮动基动力学模型创建
Arduino开源机器人汇总(基于 GRBL或Marlin)
Arduino开源机器人汇总(基于GRBL或Marlin)
GRBL,机械机器作为开源的源码源码嵌入式CNC框架,因其高效和低成本,机械机器被广泛应用于多种开源机器人,源码源码如绘图机器人、机械机器机械手臂等,源码源码rocket mq 源码它的机械机器代码质量高且易于定制。XYZ结构机器人
XYZ结构常见于CNC设备,源码源码如3D打印机,机械机器每个轴独立控制,源码源码运动规划简单,机械机器步进数与滑台位置关系明确。源码源码推荐入门项目如DrawBot绘图机器人,机械机器使用GRBL控制。源码源码CoreXY结构
CoreXY结构以单同步带控制XY运动,机械机器紧凑且能提供更大的工作空间,运动速度快。大鱼DIY写字机器人V2.0 Pro就采用了这种结构。经典项目举例
DrawBot V1.1: henryarnold和MoustafaElkady的开源作品,GRBL控制。
DREMEL CNC: Nikodem Bartnik设计,使用GRBL,教程详尽。
INDYMILL: 金属版CNC升级,GRBL控制,付费安装教程。
大鱼DIY写字机器人V2.0 Pro: GRBL支持,511的源码开源且有视频教程。
sffactory 机械臂: Marlin 2.0控制,结构改进,内容丰富。
DArm: 廖洽源作品,Marlin 2.0,提供Solidworks工程。
Drawbot机械臂: Marlin控制,基于DArm设计,但未开源源码。
UArm Swift Pro: GRBL-Mega/Marlin版本,金属机身,结构封闭。
Mirobot六自由度机械臂: 周冬旭博士作品,GRBL控制,固件不开源。
MK2 Plus 机械臂: GRBL控制,作者为Jacky Le,基于MK1的改进。
干货|开源MIT Min cheetah机械狗设计(二十三)运动控制器源码解析---控制和优化思想
开源MIT Min Cheetah机械狗设计:控制与优化解析
在这个开源项目中,MIT Min Cheetah机械狗的控制与优化策略是其亮点,特别是MPC控制与QP优化策略。WBC作为辅助手段,已在前期讨论,本文主要聚焦于这两个核心部分。 控制问题的阅读hadoop源码核心是通过状态方程,如微分方程,来描述和控制系统的运动,如牛顿第二定律。它不仅体现了物理规律,如位移与速度的关系,而且揭示了如何通过不同的输入策略达到期望状态,这便是优化的起点。 优化则涉及代价函数的选择和权重设置。LQR关注整个时间的最优性,而MPC关注当前时刻到未来的最优路径。LQR是闭环控制,而MPC是开环的,这使得MPC可以处理不等式约束,适应更复杂的控制环境。 相较于传统PID控制,现代控制理论如状态空间模型,具有更强的系统理解能力,但复杂项目中,传统控制方法仍占有重要地位。例如在汽车行业,虽然现代控制算法有优势,但安全性和落地性仍是考量的关键。 控制算法的应用领域主要集中在无人机、机器人和汽车工业,尤其是动力学模型成熟的场景。机器学习和强化学习作为补充,墨香源码修改分别在参数辨识和规则环境中的应用有所贡献,但仍有发展空间。 接下来,我们将深入探讨机械狗的仿真实现,以及可能的扩展功能,如路径规划和激光雷达扫描,以期为设计提供更全面的支持。[1](含源码)通过关节力矩指令控制LBR/iiwa机械臂运动
本文改编自 MATLAB 的自带帮助文档,介绍了如何使用 MATLAB 和 V-REP 进行 LBR/iiwa 机械臂的计算力矩控制仿真。相较于使用 Gazebo 的原例程,本例程旨在通过将 Gazebo 替换为 V-REP,实现 V-REP 和 MATLAB 的通信与数据交互。本文将逐步指导实现这一仿真过程。
首先,构建项目结构,包括用于存放场景文件、通信文件和控制文件的三个子文件夹。确保 MATLAB 版本不低于 b,以便加载 URDF 文件。然后,利用 MATLAB 的自带 LBR/iiwa 机械臂的 URDF 文件及三维模型文件,创建场景文件并将其加载至 V-REP 中。处理可能出现的路径兼容性问题,确保仿真环境的搭建无误。
通信准备阶段,复制 V-REP 相关组件至 MATLAB 文件夹,文字生成源码并利用 vrchk.m 文件进行通信失败类型提示。创建 iiwa_computer_torque_control_workcell_init.m 函数文件,用于初始化 V-REP 与 MATLAB 之间的通信链路,包括获取关节句柄和进行 streaming 初始化。
接下来,实现与 V-REP 的通信代码。在 iiwa_computed_torque_control 文件夹内,建立 iiwa_computed_torque_control.m 文件,其中包含通信代码框架,以适应后续的控制逻辑。在此阶段,主要关注同步模式控制的实现,确保机械臂在 MATLAB 的控制指令下按照预定轨迹运行。
在控制代码编写中,遵循关节力矩控制原理,选择同步模式进行仿真。此模式下,控制输入与 V-REP 的动作同步,即在 MATLAB 发出控制指令后,V-REP 在预设的时间间隔内执行该指令。通过调用 V-REP 的 API,实现关节位置、速度与加速度的控制,以及力矩的计算与应用,使机械臂按照预期轨迹运行。
为了保证控制的准确性,进行数据处理以对比前馈和反馈力矩,以及期望与实际关节位置和速度。此阶段的分析结果有助于优化控制算法,确保机械臂能够精确地按照预设路径运动。
最后,进行仿真运行前的系统配置,确保 V-REP 和 MATLAB 都已关闭,然后按照特定流程启动 V-REP,加载场景文件,并在 MATLAB 中运行相关代码。通过观察 V-REP 中的仿真动画,验证仿真过程的正确性与稳定性。
此过程不仅适用于学术研究和学习,也为实际应用提供了参考,旨在推动机器人控制技术的发展。通过分享此例程,旨在激发更多人对机器人控制的兴趣,并欢迎各界反馈与建议,共同促进技术进步。
干货|开源MIT Min cheetah机械狗设计(三十二)番外篇(8)---Cartographer源码解读
干货|开源MIT Min cheetah机械狗设计(三十二)番外篇(8)---Cartographer源码解读
在MIT Min cheetah机械狗的开源设计中,第篇番外篇第8篇深入解析了传感器数据的流向。通常,正向讲解难以全面理解程序设计思路,因此我们将逆向还原设计过程。 数据首先从传感器获取点云,通过trajectory_builder_->AddSensorData(sensor_id, timed_point_cloud_data)这一过程。在这个函数中,数据被进一步处理,通过MakeDispatchable函数,数据被封装为Dispatchable实例,以便在CollatedTrajectoryBuilder::AddData中处理不同类型的传感器数据。 数据接着被添加到OrderedMultiQueue中,队列满后会阻塞数据的插入,直到队列空间允许。在Dispatch函数中,数据被组织成一个Map结构,存储每个传感器的数据和回调函数。回调函数HandleCollatedSensorData负责计算数据利用率和将数据传递给GlobalTrajectoryBuilder。 逆向来看,设计者可能会将程序分为算法部分Cartographer和数据交互部分Cartographer_ros。Cartographer侧重于核心算法,如LocalTrajectoryBuilder和PoseGraph,而Cartographer_ros则负责数据的订阅、发布和类的实例化。SensorBridge和MapBuilderBridge作为桥梁,将传感器数据和Cartographer的内部结构连接起来。 软件架构清晰地展示出传感器数据如何层层传递,每个类都扮演着数据流转的桥梁角色。Cartographer_ros负责传感器数据的接入和结果的输出,而内部的C++实现则体现了谷歌工程师的高水准。 最后,下一篇文章将揭示数据如何在前端与局部地图进行匹配的细节。干货|开源MIT Min cheetah机械狗设计(二十一)运动控制器源码解析---刚体动力学建模
本篇内容深入探讨了开源MIT Min cheetah机械狗设计系列文章中的刚体动力学模型。刚体动力学模型是机械狗设计的核心,是麻省理工团队独立开发的动力学算法的重要基础。动力学算法的理论依据参考了Roy Featherstone的文章《Rigid Body Dynamics Algorithms》,该文章提出了一种新的六维运动空间和力空间,概念类似于运动旋量和力旋量。
商业动力学运算库如CoppeliaSim的Bullet 2.和单独的动力学求解库pinocchio、frost、drake等在机械狗设计中得到了广泛应用。机械狗设计所用的动力学算法设计思想包含牛顿欧拉方程、坐标系选取问题、六维运动空间等核心概念。牛顿欧拉方程是力学基础,描述了力与加速度和扭矩之间的关系,包括了定点和定轴转动的公式。坐标系的选择对动力学和运动学分析至关重要,不同坐标系的设计使计算变得更加高效。Pl¨ucker坐标系的引入实现了平动和转动的统一表示,简化了动力学方程,方便了后续程序的编写。
在六维运动空间中,刚体的速度和空间力被统一表示,使得动力学分析更加简洁。动力学模型编程中,动力学公式和运动学树的概念被整合进代码中,以方便处理和编程。文章最后指出,动力学知识的探讨还将继续,后续计划将增加视觉感知、激光雷达扫描等机械狗的智能功能,以提升其性能。
干货|开源MIT Min cheetah机械狗设计(十四)运动控制器源码解析---四足机器人浮动基动力学模型创建
干货MIT Min Cheetah机械狗设计详解(十四):动力学模型创建 对于机器人爱好者和初入机器人领域的专业人士,开源MIT Min Cheetah系列设计无疑是一份宝贵资源。本文将深入探讨RobotRunner核心模块,包括数据更新、步态规划、控制算法和命令发送,尤其是关键的浮动基动力学模型构建。 首先,我们从单刚体动力学模型开始,简化机械狗的复杂动态,计算足底反作用力,但此方法在高速运动时并不适用。为解决高速情况下的适应性,浮动基动力学模型引入,它在单刚体基础上优先满足动态响应,如WBC控制器的需要。模型创建包括:浮动基动力学模型参数设置:定义机械狗整体的配置空间和关节自由度,引入6个表示身体浮动基的自由度。
广义惯量和空间惯量:每个连杆和关节电机的广义惯性张量(包括质量、质心位置和旋转惯量)是动力学计算的基础。
连杆位置向量:这些参数用于后续的运动旋量计算。
浮动基动力学模型:以拉格朗日单腿动力学为基础,考虑机械狗整体的运动状态和力矩映射。
动力学方程的构造:包括动力学方程组、约束方程和构型角度约束,以及外力和转矩的关系。
代码中,通过`forwardKinematics()`函数计算关节和连杆的空间变换,为求解质量矩阵、非惯性力矩阵和接触雅可比矩阵做准备。在冗余自由度的系统中,浮动基动力学模型与WBC结合,最终计算出关节的控制参数。 总结,浮动基动力学模型的创建是实现高精度控制的关键步骤,它为后续的动力学方程求解提供了关键参数。理解这些核心概念,将有助于深入理解四足机器人动态控制的奥秘。