关于Marlin的一点认识
Marlin的运动规划在很大程度上参考了Sprinter和Grbl。因此,运动规划部分主要在Grbl的博客中介绍,本篇主要介绍一下planner_bezier,也就是(三阶)贝塞尔曲线的规划。
先看其头文件
很简单,就只有一个函数,如下所示,也是最重要的函数。
再看其源文件
源文件内容稍微多一点,多了几个宏定义和内联函数的定义。这几个函数比较简单,这里就不介绍了。主要介绍cubic_b_spline这个函数,其主要作用,用一句话来概括,就是:
在贝塞尔曲线上寻找离散点,相邻离散点的连线与曲线的误差恰好保持在误差范围内,这些离散点会传给直线运动块当作MoveL处理。
函数内容:
误差的计算:相邻离散点连线的中点与该小段曲线中点的差。
- 一段三阶贝塞尔曲线由4个控制点决定,分别是position first second target
- 贝塞尔曲线是参数曲线,如参数t,取值范围为[0,1]
- 在参数取值区间内遍历,每次先假定步长为MAX_STEP,得到new_t,由new_t代入曲线方程,得到新的位置new_pos
- 接着进入一个死循环,直到满足条件才break退出,该循环主要作用就是如果不满足误差要求,就用二分法减小new_t的值,直到满足跳出循环
- 如果上一步循环没走过一个完整循环,说明可以采用更大的步长来找new_t(也就对应了上面所说的“恰好”,误差不能太大,也不能太小,只要保持在范围内,刚要超还没超就ok)
- 调用planner.buffer_line将该点传出去
关于Marlin的一点认识相关推荐
- nfl定理_NFL 2020预览与python冲
nfl定理 NFL 2020 season is coming soon. For preview this season, I'm going to visualize some rushing d ...
- nfl定理_NFL 2020预览与python团队防御
nfl定理 NFL 2020 season is coming soon. For preview this season, I'm going to visualize some quarterba ...
- marlin 三角洲_带火花的三角洲湖:什么和为什么?
marlin 三角洲 Let me start by introducing two problems that I have dealt time and again with my experie ...
- marlin 三角洲_三角洲湖泊和数据湖泊-入门
marlin 三角洲 Data lakes are becoming adopted in more and more companies seeking for efficient storage ...
- marlin的源码分析
marlin源码分析 文章转载:http://www.360doc.com/content/18/0716/00/52973095_770673230.shtml 一.前言 Delta机型是一种并联式 ...
- Marlin中的Polynomial commitment scheme
1. 引言 前序博客有: Marlin:Preprocessing zkSNARKs with Universal and Updatable SRS学习笔记 相关代码实现有: https://git ...
- 3D打印机固件 Marlin 1.1.0 配置文件 说明
本文关于marlin配置文件的翻译,如有错漏请多多指出,共同修正 感谢! 版本信息: Release Candidate -- Marlin 1.1.0-RC8 - 6 Dec 2016 /** * ...
- Marlin 1.1.4 Confuguration.h 汉化 翻译
Marlin 1.1.4 Confuguration.h 汉化 翻译 /** Marlin 3D Printer Firmware Copyright © 2016 MarlinFirmware [h ...
- 零起点学算法07——复杂一点的表达式计算
零起点学算法07--复杂一点的表达式计算 Description 下面你来计算一个复杂一点的计算表达式 Input 没有输入 Output 输出表达式的值,保留2位小数 题目分析:根号要用sqrt来算 ...
最新文章
- php获取图高度,PHP imagesx()、imagesy() – 获取图像宽度与高度_程序员人生
- c 多文件全局变量_C/CPP : static 关键字 及 变量函数的不同
- Java GUI 开发专题
- 深度学习《StarGAN》
- Java虚拟机学习总结(3)——JDK内置工具(jps、jstack、jmap、jstat)使用详解
- python列表元素循环左移_JavaScript系列——数组元素左右移动N位算法实现
- DXUT框架剖析(1)
- windows安装解压版mysql
- springboot2.x整合JavaMail以qq邮箱发送邮件
- PowerShell自动部署IIS站点(Windows Server 2008 R2)
- 硬盘坏道检测工具对比(DiskGenius/HdTunePro/MHDD等)
- MDIO总线介绍 |CSDN创作打卡
- 【转】CT (电子计算机断层扫描)
- 【转】Mac QQ截图保存在哪里?
- 英飞凌磁传感器 TLE5012b STM32F103 SPI 程序说明
- git提交到主干后,本地将主干代码更新到分支上
- reverse()函数
- 拼多多蓝海词数据分析:如何优化拼多多关键词?拼多多标题关键词优化方法。
- The Geodetic Set Problem - POJ 1612 Floyd求最短路径所有点集
- 美国股市暴跌,中国路在何方