📄 odometry.java
字号:
package ctbot.utils;import nanovm.ctbot.drivers.*;import nanovm.lang.Math;public class Odometry { public static final float M_PER_TICK = 0.002985f; // 2.985 mm/tick public static final float M_WHEEL_DISTANCE = 0.0985f; // 98.5 mm public static float ori; public static float x; public static float y; public static float s; /** * will normalize orientation to interval (PI, PI] */ public static float normalizeOri(float ori) { while (ori>Math.PI) ori-=2.0f*Math.PI; while (ori<=-Math.PI) ori+=2.0f*Math.PI; return ori; } public static void update() { int dsl = WheelEncoder.getLeftInc(); int dsr = WheelEncoder.getRightInc(); float dori = (dsl-dsr)*(M_PER_TICK/M_WHEEL_DISTANCE); float ds = (dsl+dsr) * (0.5f * M_PER_TICK); ori = normalizeOri(ori+dori); s += Math.abs(ds); x += ds * Math.cos(ori); y += ds * Math.sin(ori); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -