Marlin的运动规划在很大程度上参考了Sprinter和Grbl。因此,运动规划部分主要在Grbl的博客中介绍,本篇主要介绍一下planner_bezier,也就是(三阶)贝塞尔曲线的规划。

先看其头文件

很简单,就只有一个函数,如下所示,也是最重要的函数。

再看其源文件

源文件内容稍微多一点,多了几个宏定义和内联函数的定义。这几个函数比较简单,这里就不介绍了。主要介绍cubic_b_spline这个函数,其主要作用,用一句话来概括,就是:

在贝塞尔曲线上寻找离散点,相邻离散点的连线与曲线的误差恰好保持在误差范围内,这些离散点会传给直线运动块当作MoveL处理。

函数内容:

误差的计算:相邻离散点连线的中点与该小段曲线中点的差。

  1. 一段三阶贝塞尔曲线由4个控制点决定,分别是position first second target
  2. 贝塞尔曲线是参数曲线,如参数t,取值范围为[0,1]
  3. 在参数取值区间内遍历,每次先假定步长为MAX_STEP,得到new_t,由new_t代入曲线方程,得到新的位置new_pos
  4. 接着进入一个死循环,直到满足条件才break退出,该循环主要作用就是如果不满足误差要求,就用二分法减小new_t的值,直到满足跳出循环
  5. 如果上一步循环没走过一个完整循环,说明可以采用更大的步长来找new_t(也就对应了上面所说的“恰好”,误差不能太大,也不能太小,只要保持在范围内,刚要超还没超就ok)
  6. 调用planner.buffer_line将该点传出去

关于Marlin的一点认识相关推荐

  1. nfl定理_NFL 2020预览与python冲

    nfl定理 NFL 2020 season is coming soon. For preview this season, I'm going to visualize some rushing d ...

  2. nfl定理_NFL 2020预览与python团队防御

    nfl定理 NFL 2020 season is coming soon. For preview this season, I'm going to visualize some quarterba ...

  3. marlin 三角洲_带火花的三角洲湖:什么和为什么?

    marlin 三角洲 Let me start by introducing two problems that I have dealt time and again with my experie ...

  4. marlin 三角洲_三角洲湖泊和数据湖泊-入门

    marlin 三角洲 Data lakes are becoming adopted in more and more companies seeking for efficient storage ...

  5. marlin的源码分析

    marlin源码分析 文章转载:http://www.360doc.com/content/18/0716/00/52973095_770673230.shtml 一.前言 Delta机型是一种并联式 ...

  6. Marlin中的Polynomial commitment scheme

    1. 引言 前序博客有: Marlin:Preprocessing zkSNARKs with Universal and Updatable SRS学习笔记 相关代码实现有: https://git ...

  7. 3D打印机固件 Marlin 1.1.0 配置文件 说明

    本文关于marlin配置文件的翻译,如有错漏请多多指出,共同修正 感谢! 版本信息: Release Candidate -- Marlin 1.1.0-RC8 - 6 Dec 2016 /** * ...

  8. Marlin 1.1.4 Confuguration.h 汉化 翻译

    Marlin 1.1.4 Confuguration.h 汉化 翻译 /** Marlin 3D Printer Firmware Copyright © 2016 MarlinFirmware [h ...

  9. 零起点学算法07——复杂一点的表达式计算

    零起点学算法07--复杂一点的表达式计算 Description 下面你来计算一个复杂一点的计算表达式 Input 没有输入 Output 输出表达式的值,保留2位小数 题目分析:根号要用sqrt来算 ...

最新文章

  1. php获取图高度,PHP imagesx()、imagesy() – 获取图像宽度与高度_程序员人生
  2. c 多文件全局变量_C/CPP : static 关键字 及 变量函数的不同
  3. Java GUI 开发专题
  4. 深度学习《StarGAN》
  5. Java虚拟机学习总结(3)——JDK内置工具(jps、jstack、jmap、jstat)使用详解
  6. python列表元素循环左移_JavaScript系列——数组元素左右移动N位算法实现
  7. DXUT框架剖析(1)
  8. windows安装解压版mysql
  9. springboot2.x整合JavaMail以qq邮箱发送邮件
  10. PowerShell自动部署IIS站点(Windows Server 2008 R2)
  11. 硬盘坏道检测工具对比(DiskGenius/HdTunePro/MHDD等)
  12. MDIO总线介绍 |CSDN创作打卡
  13. 【转】CT (电子计算机断层扫描)
  14. 【转】Mac QQ截图保存在哪里?
  15. 英飞凌磁传感器 TLE5012b STM32F103 SPI 程序说明
  16. git提交到主干后,本地将主干代码更新到分支上
  17. reverse()函数
  18. 拼多多蓝海词数据分析:如何优化拼多多关键词?拼多多标题关键词优化方法。
  19. The Geodetic Set Problem - POJ 1612 Floyd求最短路径所有点集
  20. 美国股市暴跌,中国路在何方

热门文章

  1. 2023升级运营版uniapp多商户商城小程序+H5+APP+商家入驻短视频社区种草直播阶梯拼团源码
  2. gl_FragCoord
  3. MFC在内存DC中绘图
  4. 光学设计手册学习(二)——像差
  5. maven打包项目时候报错:非法字符
  6. SSM毕设项目ToB企业版招聘类综合网站5u96c(java+VUE+Mybatis+Maven+Mysql)
  7. 信息安全研究领域分类
  8. vue走马灯组件vue3-marquee的使用
  9. echarts折线图x轴不从0开始
  10. html5、canvas核型技术阅读(1)