当前位置: 首页 > article >正文

odrive代码阅读笔记

电机参数
在这里插入图片描述
电流环带宽
在这里插入图片描述
atan2


// based on https://math.stackexchange.com/a/1105038/81278
float fast_atan2(float y, float x) {
    // a := min (|x|, |y|) / max (|x|, |y|)
    float abs_y = fabsf(y);
    float abs_x = fabsf(x);
    // inject FLT_MIN in denominator to avoid division by zero
    float a = MACRO_MIN(abs_x, abs_y) / (MACRO_MAX(abs_x, abs_y) + FLT_MIN);
    // s := a * a
    float s = a * a;
    // r := ((-0.0464964749 * s + 0.15931422) * s - 0.327622764) * s * a + a
    float r = ((-0.0464964749f * s + 0.15931422f) * s - 0.327622764f) * s * a + a;
    // if |y| > |x| then r := 1.57079637 - r
    if (abs_y > abs_x)
        r = 1.57079637f - r;
    // if x < 0 then r := 3.14159274 - r
    if (x < 0.0f)
        r = 3.14159274f - r;
    // if y < 0 then r := -r
    if (y < 0.0f)
        r = -r;

    return r;
}
// Modulo (as opposed to remainder), per https://stackoverflow.com/a/19288271
int mod(int dividend, int divisor){
    int r = dividend % divisor;
    return (r < 0) ? (r + divisor) : r;
}


http://www.kler.cn/a/381248.html

相关文章:

  • 记录一次面试中被问到的问题 (HR面)
  • 【HTML+CSS+JS+VUE】web前端教程-2-HTML5介绍和基础骨架
  • Oracle 中的各种名称(*_name)参数的含义与作用
  • linux音视频采集技术: v4l2
  • Django学习笔记之数据库(一)
  • 《C++11》右值引用深度解析:性能优化的秘密武器
  • 图说复变函数论重大错误:将无穷多各异平面误为同一面
  • Python常用脚本集锦
  • Linux下复制粘贴快捷键
  • neo4j浅析
  • [Linux] 进程控制之创建和终止
  • 【SQL50】day 1
  • Linux——Linux基础指令
  • 在 Spring Boot 中使用分布式事务时,如何处理不同数据源之间的事务一致性问题?
  • Java实战项目-基于SpringBoot的新能源汽车个性化推荐系统
  • Linux 经典面试八股文
  • ICT网络赛道WLAN考点知识总结1
  • 多模态大模型微调实践!PAI+LLaMA Factory搭建AI导游
  • 无人机的就业前景怎么样?
  • 基于Multisim光控夜灯LED电路(含仿真和报告)
  • 大数据-207 数据挖掘 机器学习理论 - 多重共线性 矩阵满秩 线性回归算法
  • 【JavaEE初阶 — 多线程】线程安全问题 & synchronized
  • Imperva 数据库与安全解决方案
  • SE-ResUNet论文学习笔记
  • 机器视觉:轮廓匹配算法原理
  • dpdk mempool驱动开发