From 4ee4af028c43a681e3e9e38d2ad19c7124b9a603 Mon Sep 17 00:00:00 2001 From: eastzio <3156045992@qq.com> Date: Mon, 27 Jul 2026 13:20:41 +0800 Subject: [PATCH] =?UTF-8?q?[sim]=20=E6=95=B4=E7=90=86=E5=90=8E=E6=9C=9FSim?= =?UTF-8?q?2Sim=E4=B8=8E=E6=AF=94=E8=B5=9BRough=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + 01_doc/version_history.md | 10 + 05_software/README.md | 2 +- 05_software/train/README.md | 5 +- 05_software/train/rc_mjlab/DEPENDENCIES.md | 7 + 05_software/train/rc_mjlab/README.md | 12 +- 05_software/train/rc_mjlab/model_6800.onnx | Bin 0 -> 777597 bytes 05_software/train/rc_mjlab/sim2sim/README.md | 58 + .../train/rc_mjlab/sim2sim/export_onnx.py | 110 + .../rc_mjlab/sim2sim/ik_compensation_sweep.py | 238 ++ .../rc_mjlab/sim2sim/ik_slalom_sim2sim.py | 1235 ++++++++ .../rc_mjlab/sim2sim/interface/mujoco_io.py | 11 +- .../sim2sim/nav_route_sim2sim_check.py | 2776 +++++++++++++++++ .../train/rc_mjlab/sim2sim/nav_sim2sim.py | 6 +- .../rc_mjlab/sim2sim/policy/policy_runner.py | 37 +- .../train/rc_mjlab/sim2sim/requirements.txt | 3 + 05_software/train/rc_mjlab/sim2sim/sim2sim.py | 17 +- .../train/rc_mjlab/tools/nav_tools/README.md | 7 + .../tools/nav_tools/route_safety_check.py | 638 ++++ README.md | 3 +- 20 files changed, 5161 insertions(+), 15 deletions(-) create mode 100644 05_software/train/rc_mjlab/model_6800.onnx create mode 100644 05_software/train/rc_mjlab/sim2sim/README.md create mode 100644 05_software/train/rc_mjlab/sim2sim/export_onnx.py create mode 100644 05_software/train/rc_mjlab/sim2sim/ik_compensation_sweep.py create mode 100644 05_software/train/rc_mjlab/sim2sim/ik_slalom_sim2sim.py create mode 100644 05_software/train/rc_mjlab/sim2sim/nav_route_sim2sim_check.py create mode 100644 05_software/train/rc_mjlab/sim2sim/requirements.txt create mode 100644 05_software/train/rc_mjlab/tools/nav_tools/README.md create mode 100644 05_software/train/rc_mjlab/tools/nav_tools/route_safety_check.py diff --git a/.gitignore b/.gitignore index 29a3009..ec9d871 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,7 @@ checkpoints/ wandb/ sim2sim_log_*.txt **/sim2sim_temp.xml +**/route_check_runs/ # IDE and operating system files .idea/ diff --git a/01_doc/version_history.md b/01_doc/version_history.md index e5a5a06..6970060 100644 --- a/01_doc/version_history.md +++ b/01_doc/version_history.md @@ -12,6 +12,7 @@ | `v0.5.0` | 随机化增强 | 扩大观测、延迟和动力学随机化,加入持续外力扰动 | | `v0.6.0` | 比赛训练架构 | 分轴奖励、自适应指令课程、障碍释放课程和比赛站姿 | | `v0.7.0` | MuJoCo 工具 | 姿态优化、IK 扫描、动力学、MPC 和 GUI 调试工具 | +| `v0.8.0` | 后期 Sim2Sim | ONNX 回放、IK/路线检查工具和比赛最终 Rough 策略 | ## `v0.4.0` 的模型变化 @@ -51,3 +52,12 @@ - 增加 IK/差速轮参数扫描,可导出 JSON 结果。 - 增加 Robot、Controller、Dynamics、MPCController 和 GUI 调试链路。 - 记录历史工具常量与新版 MJCF 质量、比赛默认站姿之间的参数边界,避免将分析结果直接当作已校准真机参数。 + +## `v0.8.0` 的后期 Sim2Sim + +- 比赛训练任务、MJCF 和 `v0.7.0` 的 MuJoCo 工具保持不变。 +- 策略运行器增加 ONNX 加载,并允许在缺少 `pynput` 时关闭后台键盘监听继续运行。 +- MuJoCo 执行器重建同时兼容新旧 Spec 删除接口。 +- 增加 PT→ONNX 导出、IK 补偿扫描、纯 IK 绕桩和 ONNX 批量路线检查入口。 +- 归档比赛最终 Rough 策略 `model_6800.onnx`;其 SHA-256 为 `3C994BDD3434AD15770A52AC0E8D229F502F00D6511CDD42C2E2C742301AEF13`。 +- Crawl 权重、运行日志、临时 XML 和大量重复路线实验不在本阶段归档。 diff --git a/05_software/README.md b/05_software/README.md index 3ed6053..157bf58 100644 --- a/05_software/README.md +++ b/05_software/README.md @@ -28,7 +28,7 @@ MJCF + mjlab task IK real --------------------------------> 电机 ``` -`rc_mjlab` 是自包含工程。训练、MJCF、MuJoCo、Sim2Sim 和策略权重通过相对路径绑定,因此保留其内部布局,没有为了目录外观拆散。第一代完整闭环见 `v0.3.0`,第一份新版 MJCF 与训练框架见 `v0.4.0`,随机化增强版见 `v0.5.0`,比赛最终训练架构见 `v0.6.0`,后期 MuJoCo 工具集见 `v0.7.0`。 +`rc_mjlab` 是自包含工程。训练、MJCF、MuJoCo、Sim2Sim 和策略权重通过相对路径绑定,因此保留其内部布局,没有为了目录外观拆散。第一代完整闭环见 `v0.3.0`,第一份新版 MJCF 与训练框架见 `v0.4.0`,随机化增强版见 `v0.5.0`,比赛最终训练架构见 `v0.6.0`,后期 MuJoCo 工具集见 `v0.7.0`,后期 Sim2Sim 与比赛 Rough 策略见 `v0.8.0`。 详细说明见: diff --git a/05_software/train/README.md b/05_software/train/README.md index fbb3db4..4fb7831 100644 --- a/05_software/train/README.md +++ b/05_software/train/README.md @@ -2,7 +2,7 @@ `rc_mjlab/` 保存 16DOF 轮足机器人的当前训练与 Sim2Sim 工程。历史快照由 Git Tag 保留,不在目录中复制 `old`、`new` 或 `final` 版本。 -当前内容对应 `v0.7.0`:训练代码保持 `v0.6.0` 的比赛架构,新增后期 MuJoCo 姿态、IK、动力学和 MPC 工具。训练过程可能先获得基模,再调整奖励、课程和环境参数继续训练;模型 checkpoint 的变化不等同于软件架构变化。 +当前内容对应 `v0.8.0`:训练代码保持 `v0.6.0` 的比赛架构,包含 `v0.7.0` 的 MuJoCo 独立工具,并新增后期 Sim2Sim、路线检查和比赛最终 Rough ONNX 策略。训练过程可能先获得基模,再调整奖励、课程和环境参数继续训练;模型 checkpoint 的变化不等同于软件架构变化。 ## 内容 @@ -12,6 +12,7 @@ - `mujoco_sim`:不依赖训练循环的姿态、IK、动力学和 MPC 分析 - `mjlab`:固定版本的本地训练框架依赖 - `model_rough.pt`:本阶段 Rough 策略权重 +- `model_6800.onnx`:比赛最终使用的 Rough 策略 - `pyproject.toml`、`uv.lock`:Python 环境与依赖锁定 与 `v0.3.0` 相比,本版本更新了 MJCF 质量和惯性参数,并将 mjlab 上游基准从 `00409797` 更新到 `40f8d93e`。机械 CAD 未发生变化。 @@ -22,4 +23,6 @@ `v0.7.0` 不修改比赛训练架构,增加独立 MuJoCo 工具;入口和参数边界见 [`rc_mjlab/mujoco_sim/README.md`](rc_mjlab/mujoco_sim/README.md)。 +`v0.8.0` 继续保持训练架构和 MJCF 不变,归档后期 Sim2Sim 增量与比赛 Rough ONNX 策略;入口和归档边界见 [`rc_mjlab/sim2sim/README.md`](rc_mjlab/sim2sim/README.md)。 + 工程命令和任务说明见 [`rc_mjlab/README.md`](rc_mjlab/README.md),本地依赖来源见 [`rc_mjlab/DEPENDENCIES.md`](rc_mjlab/DEPENDENCIES.md)。 diff --git a/05_software/train/rc_mjlab/DEPENDENCIES.md b/05_software/train/rc_mjlab/DEPENDENCIES.md index b3fb65e..768e85d 100644 --- a/05_software/train/rc_mjlab/DEPENDENCIES.md +++ b/05_software/train/rc_mjlab/DEPENDENCIES.md @@ -8,6 +8,7 @@ - `mjlab[cu128]` - PyTorch CUDA 12.8 环境 - `pynput` +- 后期 Sim2Sim 可选依赖:Pygame、ONNX Runtime 精确解析结果保存在 `uv.lock`。项目使用本地可编辑的 `mjlab`: @@ -39,4 +40,10 @@ uv run train Robot-Flat-v0 uv run play Robot-Rough-v0 ``` +根 `uv.lock` 保留比赛训练环境的历史解析结果。后期 Sim2Sim 新增依赖单独保存在 `sim2sim/requirements.txt`,运行时叠加,避免重新锁定时升级历史 MuJoCo nightly: + +```bash +uv run --with-requirements sim2sim/requirements.txt python sim2sim/nav_sim2sim.py +``` + GPU、CUDA、MuJoCo development wheel 和驱动版本必须满足 `pyproject.toml` 与 `uv.lock` 的约束。 diff --git a/05_software/train/rc_mjlab/README.md b/05_software/train/rc_mjlab/README.md index 283d13f..71d71b2 100644 --- a/05_software/train/rc_mjlab/README.md +++ b/05_software/train/rc_mjlab/README.md @@ -2,7 +2,7 @@ 基于 [mjlab](https://github.com/google-deepmind/mjlab) 框架的四轮腿混合机器人强化学习训练与部署部署项目,面向机器人竞赛场景(如越障、匍匐、斜坡、台阶等复合任务)。 -> 当前目录对应 `v0.7.0`:保留 `v0.6.0` 的比赛训练架构,并加入后期 MuJoCo 独立工具集。当前目录中的 `model_rough.pt` 是早期参考权重;比赛最终使用的 `model_6800.onnx` 将随最终部署版本归档。 +> 当前目录对应 `v0.8.0`:保留 `v0.6.0` 的比赛训练架构与 `v0.7.0` 的 MuJoCo 独立工具集,加入后期 Sim2Sim 工具和比赛最终 Rough 策略 `model_6800.onnx`。`model_rough.pt` 仍作为早期参考权重保留。 --- @@ -41,6 +41,10 @@ rc_mjlab/ │ └── competition_terrains.py # 竞赛自定义地形(高墙障碍、低杆障碍) ├── sim2sim/ # Sim2Sim 物理部署与高精度交互回放工具 │ ├── nav_sim2sim.py # 主程序:2D Pygame 交互面板 + 全自动多地形导航追踪 +│ ├── nav_route_sim2sim_check.py # ONNX 策略批量路线检查 +│ ├── ik_slalom_sim2sim.py # 纯 IK、路径跟踪与绕桩验证 +│ ├── ik_compensation_sweep.py # IK 补偿参数扫描 +│ ├── export_onnx.py # PT actor 导出与 ONNX 一致性检查 │ ├── sim2sim.py # 简易版键盘调试工具 │ ├── interface/ │ │ └── mujoco_io.py # MuJoCo 输入输出与传感器、低通滤波器接口 @@ -54,7 +58,9 @@ rc_mjlab/ │ ├── scene.xml # mjlab 场景入口文件 │ └── meshes/ # STL/OBJ 碰撞与外观网格 ├── mujoco_sim/ # 姿态、IK、动力学和 MPC 独立工具 -├── model_rough.pt # 本阶段用于回放和 Sim2Sim 的 Rough 策略 +├── tools/nav_tools/ # 路线安全检查公共模块 +├── model_rough.pt # 早期 Rough 参考 checkpoint +├── model_6800.onnx # 比赛最终 Rough 策略 ├── pyproject.toml # 项目依赖(uv 管理,含清华镜像源加速) └── uv.lock # 精确依赖锁定文件 ``` @@ -89,6 +95,8 @@ cd sim2sim uv run python nav_sim2sim.py ``` +后期 Sim2Sim 的入口、模型边界和批量检查命令见 [`sim2sim/README.md`](sim2sim/README.md)。 + --- ## 🖥️ 交互式自动导航平台 (sim2sim/nav_sim2sim.py) diff --git a/05_software/train/rc_mjlab/model_6800.onnx b/05_software/train/rc_mjlab/model_6800.onnx new file mode 100644 index 0000000000000000000000000000000000000000..49ea59302d242a75913c73d5d97f1b95106f586b GIT binary patch literal 777597 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

SZDX- zc>yw?S=}nIysXYP$o7y@D4%RQgdje`#RVVSx(Zr7#?ix+8UHhM9)30d zQ5bJ%p`{{~RGN~g6y5LV+)&8KED6cZrjij#X{V*oBKcKPXlUN=Ik$+AkwixJC|eoX ze&4^~zFzlrU+13Bd7kI}0KaV^Xywbp&y`bP+CWR_5V8v02Ks!7>nGmcKAdkqrB6?L zl%%5Kag=uL42k$#yq5b3)&+YZyU36EZEm6>`x6*`UIoIpTF~?RS-8Se1K0bAIZ5(C z+~pf9s#@a0MZAdNc74{toq7&j+|UvHfIUj+ zcl-!!e5p*2xBsBOC&x(Vg?5u@)>FwFj|8lqUqTCvm*KsC4{7arJCdo|iF=G*@y%|+ zdumZS6dcK5lf5MrHd2GWDQJkbro2SI^q2T}Lp}SrZW`Xb^_@39RY)(kdBLB@%HU%9 zo|MYOWP5W4cgJy{czb3cHkfGR{o}IuVC{68v3wYI$cEtU>|m~2!IYu>M3$s*kZ<{M zo$D9kjQs<9c*&{Z{HioB(X9!w%>2hhHo@R;?W?sG%s&2+7F1pWt%2a-`1;iM^hQChRZ_Of1cvEgRP{$}jp}O>8 z@+$QC?16fEPq0xmn&$7%#K2!Os3-X>liB9YzNA`--EZg7NHZt;aj6iU9GsaXEQF0{ zi3Tpwn*JHYz@|E9&`tu-`nQltt^D#%4gEz)>}NUIwqW z@2KmJNQWP?|3UKnRp?a_OnLtvz)F=9ka@QS=2ktWzdiMw$ATgBH^LcY^<|*7Q-{iS z?_oEBbfE9h3!MDDU<~Y|Cyw5(2sb0IFts@XyK?Pz_AI}RR|~I&chVNolFDfM4hayP zx{Rjv?qCm+YK7mbDh>Ue!Rtp7`m5P#U(xoh0FUpAlW@kT(@|Vu)CgSo+#V` z{Gzx<-55By*q7P_9`TI6!PJwx11>J+spCo}X)Lv+W#{9V?g%5ead{Y(&(fkrf3;|D zFN4HLGf1htQB&CILm>kXk-f5TAAc#L(=wj4ZKJbvnTwDE8@7ZBvb33fKoPH|CwSok z*0bF~2Sqbfk4t=~gyG6o4Zi<`84`DcG&cHd97}K-!G{z+!<B zAoiO&^=PhzXO1JqgRW*kd}Ay99oR1-P3`W3zW9 zvj@Kz{tP+J&pYbLsyA8!2 zOAdf)e`n|K!~DtmP$k4FwF!R4AUOP6l`hFKq$}INXECCd+H};_G{6EmJ$&dN&#ny4 zK9KV@>0+hUd)r5 z%L)SevCj#DXV$Slmd)FOUW44YsEr5shk>rVhf@X3Y<$ac=9|RI7k2USXP+>A{Du2= z+2a{S8~PAyOEtsy!}aA8=*jPCY`)POPWlEvIm9k7)436h8(8F=s^ys#tkl8zm)^DBY>=1#G zKHfoksWg@5hpFKb%eky?mIb}P&(XqSbFu7<{;X?8F#UIb66`vy#H|yT(wXm8RIuSY z{)~2@o*7?J&T9-fcul62*alvsDltHQCyGJfh5KK?_5W$&y!!uG?KW2!mbn4mX*!dg z*B0Ekznxnl%!Qw|aYDcKDAu#;GIzW@61zN7S;sgX=KN?Svivk0k^f92KSPeKHA-bZ zo>^Fwroqdu&47dpt>E7I3`T1kiU&nykneASAC($MW&APt=9x`rE@ZG0R|ih+^bYd; zl7<`mMGHNB;~`u%f|3`-h#rsdqo>mgxT}VHp?bh0+&4y9Y^9$DX3kzvy2JvUdoAI{ z;^A~wI*UY4f1$ssCp`Nd4QAJWv&C&{B-bXw{I>gix|apBvMS(*j8(*GsybX};%HWN zdJ~sY5XC*tjNJq{44~1q!V9g`*xv>Hf{Tg6}4Vwd{OL!7VZ{f6^OB zb9l=QSuq%fcMFWaQRm^%ByIX0uOQWMnNQ_M7NXuRH@>2zk5uMb1v-1`;eeCMl&h#t z$IUWuNybc}pQ8XZRt=%>#miaTCttD&1QG?j#X0*5L}&fF1;3sL+H_CEVMZa`r#e7;J z2f-lMhCMm^ojr4^Lz7RsRFGLM`FKy2wmcMg9wqZ>u0=4);X$FJC>NSqhJ?PV%3CBkT zLTGj}xIWi~oSka8uEP-Xe1?Nhb~ekHQH7fYpWN%*Gb~YSCBN2UH~veA#W`>hfkNz7_({6Ut$N#%S_6v>M76FChN3CB44)kL+Y6IA&`( zDdc(6z#Td8*5?RJ_ge~!ot&U}<^%q)kp*4xe@k}82~1NXgpNLShl}RPc*f!jwHJihHYKRhOOig7A>uk{_UX2^8DGMr%&-tZWzM^IKMoE|Xf2=wAHh*fA zEVf^BWLhp)x%o?!ct>v?benApbJ|ky)9!7|dHpKVI4;A^37+T5t>eKzzLZ7HT7u$z z_t>9_4sia$B#6q4rS(B=Wc@}0oovTumZ6-~ zB@jP)7X(aEr+(A4(Qni%6feKTt?hRVoU_mJL78TFWA7e}9n^t;qEb1ddUL2i88n?J zXeL^6tYwy}WT)~YUfrr6_cd@FX0i|bo*o}IeEJ=}FAd}O_nF2Pbi}h7pGW*B^AqMLp>H($?%2*M{XEJYPKhs`By(?5T6dyeZpvNxFzrpY9J!?JESBo zf|rYSQ1y#r6#mas@Y0%6{EzZ#*eA#FT;K>3+Qg?4>tYVO{VnL5FGv>vmate zfkPDet!D+#Ziz1Jd@FQ`XWygVAR`#M$^`7=IdZtRj~(zG4P)B(v5>%B?7HSj?z-75 z=6YiW{+CtDd{_MDlr<`tYH>8LY;MO{+V#cc?yvl<<1Kiyz>6)|uZ2eWeu7_MGfX)i z$41+B(Xl9wy{Q{WZ^hSe#DG~8_1P2$UfT(Bds``K$swAUSccC6ObOQAgAD6~tSQBe_WpC1=XWx!_%8q z@T^&j3C%dH@rMg7+F?#5)dG*w`xJ{`e+_$+$Fs%(M%XUD5Dk*eFr)pgWQlz&>nWST z-bnj^%jp2j%Fg5ejF<8|&tG93FQVDg3DcN*tTt1)y?||aHi8+tJi`59S>#unOkYC& zG209+obA00n!D=A;Y~U&FZ~a^6Vj=vI|^PDn@i87u3+!R2+U-m^ZV4rEVwW(9-TkB zK#`4ve)bF?*WPIU-BdlADYp*aeAkh7RGHFNohwZHUKWj9H=4d&TSi**eK;%m6k2of z2-zu{&}rz=$?P-3%n^DYsLylyS)f@CnY;^v<`xTmRS^C02o0@Qu{0k^fR6f)DP5EpTdPQ3^M+Z7FLqU}x^Dh;NczCG|L zT9(%PgmJqY7QxdS@?!nRMv!TD5eMNz`@3@20WmMt)t>WHecha7W1p)oZ@tMCA%_IdYUP-D`$1O(s}BbpZGHQ4zF!5`3QS z{us9*6JCFN#}AfohToS~K>a*z=+wT9`TL`o|0FxwSMwdMA0T#0x6#qAGZeM(5;koq zagMS&%#VAvid7!o$d%=|qFcih{`HQL=smZJ6IBjnd4ub@NybBPuI>fVteSGp#ygX1 zOkT{|x!c^FgrB5zy$Tac65y|}LpyKMfTe3B_=vY8`6F|va-0O;%{vdv1fN`%Oa`1t zD`I1KSz4LXNyj&)LX41&-T1PJzn3_ZYL^x=(ImI}r zUErWA+S2l>B{250z$|S2gq`b$(na~5%zD)dDo#p-*8To0=WG&Y7B55%{j718ax?g4 zEpn2o>UJI)jG(w^1%IWhk@K?Z7Jb{fQq;#fkGtDjf^{4H*pnBEI5WnQdzR`g+Lbhv zpA>i+S^^@;iJMIE1BQy9l#GI{ZJC_u)+p*9=>@W}c{qQ3347!`g6OX=tyg}_l5gjd z#iR>xHh&A~jW`PNi9B4L@&*EgxBk2YEgH6bC@c$9XEjS1O@1P1aKhVN%C^_d5#CAr zldiCbt%0z|%?yM*I$iG0XDjpcNK(g<;xLM8|Ck~xjtI7W!`nVbj4X3?Vo{d zssg(yemSb?F9EAZtC>UbPc~#}Ce7+lCATH#F{{u+da^SEHl4PFWr^7key5%Px?b=# zBpZN5cs1Nxm&*n8ag^3S-%JHCX)l3DbeUbcpk zVdpeTdQ!`cc(aF-b1XZ^)LU>bSBom?_dwjxAWIe@@RGH5XJ~TbxVh5__?V? zvUt-*zTjsCpJUX^{g=8_G=+-<^V)q-_x5axC=*n zv>>k3lFZh{fo`QXKV@MUsNUHKo0t)XR_n6hF5$+KRRX#PJDGL=57_r$GOK&i$y#nH zVqBFTOHoZ1*&CK(SLJY)kkQGm_f|6*b_Tl|OYx<{OLp|t50O?Dan`ndxz$?-W7?*@ zyx8864T#N#?y+}Z<31~CrK&C{DSJ`sg&b6WY~X+rUlkL`4eJrpd~w6To2&9rGuH|wus2kT|3n0x0Poci+%H?4IfUY*{^?bhzc zJ=nO8uPutf!b^We?2rWi=#OCUw{OS6J9F79vrxR5oWZU9eUKl{<&2ZlS%!ADJ*X@2 zJCX~WDEzexI4zbJZyG$Aow{|29XkF7zCE~6dpE$F&UtK?#Qr)0s=fwzwpd&0{@xf& zUOplF%Y%u2Y=TPzzoOHIm+*7f4@~rXgUNQ|VYmHlrvK9uUb@+Ho4mU*#&QNVeAD1G z`P=OD#Rxj1r^G*6um?+4Dv^KRZx}br0k-<&qO-^2ah(=^-1u`pxsWxDb$^`_*rtJ3 zCCXnL&@gx$ziGZU4bIKxQnP|^hvP-ozG)9vD;Lkj4DN?vu1h6~i}NwAWjTEr6;Dn< z!=zHb^%xah&1^ez;LOz7c>b>w{F`~1bZ>ZrfqM?#?YIp;1M@KNdj;0@)WP%`9d>Z` zQ(O^r9@qVA6tXz+;M(E>dE>4xI3`41>Sx(7Qu zqq%k;H`usWRbVJyW*MLF!O+G97-SPjWu4Y=BD@=W2TqcntQ#cG(2IpMk0kKkJ{ra@ zwujCmb}Zw88AOCxKt&$1SDAUZ$1sk9&mH9=R%Jo1@qFgxs0(9mB(Y(#U3Duf4QNl- zFXp;s8M&`AMbBgRMW1gb;YUST&OY9RfAnz*Uf*uaPR7m_wO(?UhTWCp<@Z)`S<3aesbnMLYNY-T97u>J;V6$dEV^aMWm_ex;GF2dd!@pRsI z6?C3HhjRQ{*c>w($DgzyoAXNIBNGn5W!u;I^p^v)l&8RlrxUc+G4z zOgAWnH*coVibuk3JklP^$H_u~ZZd4@h~tJmj)fg^fzX!ihC7yQ#-?qJ?BT1acq7oC z*-gHH=f=CB=&Lb)FwrBMd)ch_XBgh<@@4B5dtsVaIlrb?iCurz&PD9%2QSBaljoa! zHb49x^_+8nyAxz!&&UOA+ylW!`Sk=j9=Zt{d#=Ie1;Zh3cp@y``4&``E~gkbZ!(%( zjG+~A!Y$|*ZQga6hP^MOh}A>D>SrNEhW*76n(v~lw4 zR!l$cg(yrM!L6>U#kPk#n2z^A-g)3!uJ^-N{`Bwb+~vwg`H_d?VBoZWY?4Bq?Y96SGAB3LH{ZXa#-dvauV@^<8wh=w? z)Ta$5(QI_2Db2QAMKdd(pw?JD=)?djnqep~F}3L(Hw`9qyF<{o5?Fft61z1xn^o7` z#JXda>_lNAo6xiujhYctKJ=w0;Z5jM5XSc@(PnS&nzIhCTxKcLPjpdJ2fzoJTa^+w zWl$A&!6AolT9m_j9?0;MmljL*365Vg`6HBYs0Y**nbOidbs&;6hKz%oKyJ)Ix*nRu z2R*w0{(V%$3x;K}_|AMh-yr0_hm5Ah)e9K6#G0Y#6b5d+Mc;OHk^1=S|JF{I=u9Uz*)~m7dAxP{^M-=#uh|t5VP72bn*{ zIr~pa4v+2OensD7d!Fs(KH+jy@ziI&n{#-VXjj%KbH7Dq)zVxRk+3^v5lvi5S$GYn0s`^s)`v+BjE zO!DG$0}MHx{6GB5VXEv{`Ci`P;sN&R(*_i!Z(x_U?7>#A{JMJ^D|w^WF044MjXNmY zTzB{PVNx@82iY05bTMy`_;LJB2+O+3n$tX}HD8ql`%j1AMd{S*u?Ak-oWwDL$1Pxi zDLuN`hb#TI2uqGSgSy~X`H-w99$1|W>b8TWkxQ}!U$QTIe*Z4(++IlI)~Z3p$Pwt) zIgjnAh=ag0893)f7O5Rcf`h$gG;rx;E+j&@tCT6RNkYHD7yV?3*d$t_HL#ffxG$2c z*pb8D4CrwFQ<=jDO-aM)XAUzT``?m2e}%k8Qog_zw`B@yPdF{RERj>*NDQ3$i0Qe= zOXvI-L2H^`(=Y#1bY=Vxc2o9095vPn9E9)HdGjD?zfL7uK0r?@gtB1%?e_$qIPzTZ z1H85O(&iB-sHW3^l&27cEs2G|Yv0+QjQun%crTM{&;h%nVYEwTALphq2m0UIOgm=x z#W_i1g$_eI?u&~lcyjxY?hWDGG_^5unhDbxIg^ur)XLA^bb~$bv0)#>he`%|weq7p zrttSHW9puJ?-hDUQuxZ%L42Xd3yI75JDf>-gh;^-c%#h^c;~rCSe%9_Ejeu~oiM|T zdiwd3O+_j9CF?A{(Mg6^_YXt1=M6fxXEaVxyg*=;j4_GLtWI?uTq^ty_fr~3r)CCn@bP;(v^@S>fOf=o`h#MXr4E6mT3ep5Y z?>uyqG?$8KdE-_X;{J~tds|tm6gQ048t%jW-)pe{PI+)HQxgyF$wc>tiA1;8^5s7L z$Z)MDJZ=EUG;*ZIT@$FRwjFN|jRMO}+U)DB8*H|8BeQstfio9siH5o)us8P>!aiRc zIImX3>77mFzPD!ZrIFSg@4T3Wj*4cT7as88@=sVu>T>>i>;Zh((uld6e{eT$tmm&P zpOUP+C+O9o)f_infpz=~BX0LON;qyV-L)-++5!f$t^O-$m8lKg92>+dr0yfNc}X;U zQXB1FG(^mj@1Wn%KivK7UgUosgZoQsvCl1aaZ`^xdCvYxb0(-m&9O<`ZuSqoNFlSR5?h%6Zf_^HWP-@CWM)xNc5{@3(R*H{P|G>+k8qxz66s zyg%2{-;VuEUSJ(`WW-bC!%uMRdKPoIAxCoe598--MpJa_!94g21poA5caN(glIuscx|BjrqW zp^fV;>FvcD+&4`@{8~Cd{QJXUI8$;MDN@N$S_d;{pEwn%6skS-Ry&a$c(NgCj=rqgTYTmwOp1GzBty zYk!<$r-l#K3`U!!O-$|ZalF~)h{|S%`Iy=NYEL+x<_3MzfsUKjFnosr$m~ud?>K=s zdqP*ZSEo^RjRvl{XGk`t=HluuIcePBRyg^1xb*7bVmMHF6({%B)BFkbEYC~}Lce;7 zV|Zse@==3i*RBWO$wH@l-{*Mdyg5a_AHl+lM^fwk1hjvaCOWXJ47->dv<^GXf2yvh zPnsXlS$;B1`MsOrI!pZZ?k2uapMv%-^HFiqI1CGD<~6<+Gu_W>IIA(0KXvnAom#~) zev#mLcd5L{<>))J{OObM*YW_a;=L!+KUoC}l_mU{S>svLy98!=Kvnu(jiWlXaa@7+ zM@}VJ3$)yw`A&tw(mq!@*!jpH%3P>R7CTCD{M8*0sO(D14#vPk#gh{G2`MC3Vj=bv z|6@_}tEeYr290e@<62cF(C{6t?46b|f7kdk*Ip>(l;hRKY1b6-YW)GWVb~yu*cHWw z8+x;ECrwc$F`a4oE$6lj8%j4Us<@Z4k_5J%6H`j?Wjphqb1&ncb0SG1f9k#$+hNv# zj+3AA$ND8p?%^74;D+_sC9x-i4JvTPR7qTRri>ffcQYu4WwNllGT{A0;M|*?BG;5b zZ0gtkn5A=^tzO>(K_9CqS67Zrxptib%*+JN|54~#*3KgIXG6o<*ZAV&Hk#9z4_zm; z`9Fan(6V+aSl-FS-C6gkVeCYDzkMj3QyC()373J#syje)Y$NW=h{iG7>>x&Aq|gg7 zi(4YIh$+q(#p~QzioG)$o_@N550p)3&t@63yGdL5d!M|ysxQ49 z_c~vc^`lXue&_MU+>_6WYT48Vs zo~V3>f(>VB;vNS|FVK-z#T-V}kKw2`!k%_aGa(%v5rmI*p^W2=?6>A=&d7BS_?kA5 zxo|R#JRmRi+c}GjE^Hv%&}6LnYbWx?7;fPM?1co3ziuKQ0Qo&xcXm&JY-U z%z#pChf%xC1`2X@qBk3F;1+&7ZQZIvCp>my!TTJ^$CHjQttOsq{~JjAyS-@FzOUr@ z;uG+qsd9{;2 zxg?6|Yslf8Tkm3#sj|q6beR zv3;A+aXjH0L@f~hH|L#zJ^jm}JyL@^^+L#T}QghViahC79)}MXIk2#fm|tB6IhV ztl>o;JR{eJL7F=#DQrDmOy3JOeQ$t??GAWzSd9VomA;(wl&RO)vx=H*Hp3mbw~Kf3 z_4fx!1BMHp;Go%Tbjy5jYW>AFgoZ+Fgfe`b{En@flYmc74TSYwmQb!CrEgPW=zDt_ zbNCm9MoAoeE8U9ee!fV3)?&i@On&c_`<&y%OkVz>7E>_uWLd+?c-0$nEF}GiWd4-b zJa^|CTV#Eow`=^vpIfzs*VyPQ2~s^E`Eb#Z{4|l&+-$|icrRSjoelM_HS8p3f%)Fe z?8)IFG<5SjxWpgh#(i*tVKOJ!k$-7e9ilA7l6DL!aRAQ`SLxHiXVgZO6!y-aN`2M} zw@rCSI8y^JB8_p3>K(csTZA*K5+V8D8q#Riq(V%k<5R0}xnUoeF?J9<_Ts4Jcq0Av zF<~nrBDg^Xia77KiolIZ;KZjdVN_NP`+03CyZcZXBkmkzEiaS!11j^F(%Lj`&5;!> zZ;~n>*cghofywN=R}9)UD~aECZNp6yUB%MW`|NqjFWfOXh7J~6viG}A;@sQQ;qulk z)K#Pn7r!}D`_Pm0Ys+!=-xPU4<9@{!XDowson=ttJAxF?8-t@bjxK+a<5$Z%LTTVK z=J8}GV;@`b?Jj4~eBdY!=*fmdErsmZE?t^*_dGleP=~k1i%=!yB&?aX6?|q`a?2g7 z**3QliTlVL=9Mmw^(!y)(G%R*sOnHQyW%?kb;b%_0Lb9&;U=uREgE|kEoK+|vbkN? zm02vCi{2`S+2STOX_&2oSmwSzOyxXd=A3`j*7{%Y<9Y97ZoQxT}#P zXyJeJA-Lc+1kFvNY!vcy7u8^lstuc{+|6Fvo3aaDR&@QSEgN{`1XV3jf)S5e*t_0F zHo)jC+cP>BMy4NwO`a*RblV*+X;KO-`)&f8_hvwGxiN%{O=Z)Mg20TwED3RYFIt+k zfwd`4;-4g%;+5DD}O`?L-o;A^c#}mZ8({?iz*GkCvRSBN1 z(}k|!E6D5S({=s%P+jo@;^tLh+qlDI@%$u({*v%H7c%%m#_J)8)zGG?+bQ?S8bN!C zChO3{=>1L+_MGsCEsyl!!Vf3NzGwpHe$GJItnvJzT?wLjtuxuw)+Vm9&VaXxPZBv? z8i12`FJ~!V`{9Z=^O%9b8BFQC$oGD1tHZ%X{J4Ufb?2vb((k=mP*^+<{`7Ih;E;{t z+Y8@d>Z@WJ-F%XprF9201VEBq}{|p1&13jEt+*Y4`TOST!vc zM_sWZy|yyY@NA=tV>5U!^^Gv@wF){bX0dedDrTy+pUmVLS$>kEi^>AO{%!_byAls$ zSL;Fi_%w8%m4n*4!yvM#g0DPa$xZ00=UuzgB~51sGUdu&yut=$$?KVw{85z$&f8{& za-tVvLRyk@2ff42R_`* zg+DN2-V~N|W+xb!FCxj6(So*}joY+eP|}qsXc2hr3o~Td-MO#%1@6`q-LITIn^Dg= z9Rtu>bDI@ZYq1Z*WI36Pz8HBzjyWU^!uf4}oW%PnZ#C$?BzIRW7yVHecg{)^-CM1L zJvx~v3uSf23r_Hl`YhpRZ83nr?qTAML+hzsxr>d*F?lVPp=7&Unyg~W zE^a)_9M?3n+L?dw-qc)*`tl7{hPq)4A4+dJ4Pl5<3tUw(f>m+`;tHWd+V}heHZLQF zl+_Wue~uM27)|cRkv&xKJCh6Y8IA0cC3gQB$Nog#!hav`u-h@oY}0^;OuH>!61$

3o2siQD)HB)gQ4u_HHm-o~OY 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

4kRt}UW3=RK*v_;SBU+ie#s-5JhQ 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�uBfoKDQEa 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≻oG-ZS9|)|2=F2XS@itN`-%(j#(4 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 z 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 alkT3YQLh1y{Yto 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

ZgTt+4W^_=SmRENQy=xWvyZ8-s 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 W5`t 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⋘y|9ZMiF-&>mhztH<^9ra~K&LLdS+aXC?e|5B=FxBbDSLZ6{hc=&E<8~ zF=kByyo!v*)TTi+Qmzv`pDx2c!OCFJYsq3wyWsC~UuM>nCh$n|QR+wtY@2YNM;pzD z$Id-$-#mNL96Axrmp#Ef#}=S-z9lx+m14`?%P4oshPsZiLyvdksPe2+usm%$K0l!a z`9CfBlxZutqE;dA*IUI`$*S>3DUo36Ux=j!Z`jpamF!f`ad18t1GCKr(>cZdRQ3A@ zxN3PFvnT8z-|ncwiaV09{PA~CS37{BJ-J|)F@kTeJZay*! zw>}_LN$}t(Uj%+-T`n%G?u9@57sKt*@wmcpCbmQ*!@2Ni!Gkgtg$#yQy1UWpt1P@8_6SX5quFD@ZEvgE#Ps&=5nHdS7G02?3g2H3kshZ&yw85A1dEKyz?sZH@qJkcfNoNLgq~Sp9y*-9v6iM&w-l@u4B-+0W>5a z3@nZ2^CpQ<3>Y+l=?i&@HuKNm`#p|}uK1!~OJ8WyXY>7k2`naRUbkxXbpvR??il0j|R0}{Tjv;%h08(+~E3^ z9xPo^kLlG5sdCO~TxfR)=Ed97Z9*p2_N^%-Ue)F9TXW#T<;CE&$&s=YYpUZW7Jj4U z#K_-Dr1tbVF1)FV-BIOOW$Q%yo%%tezX3XzbdUrgpZjH}1eZ0wAY?oo;Cp`-9$wrE z-yV+x>&!}UD`fytv`@-HKUKExfc&ur^xcvJzY#C!r@8}zI zSoaC|AT{cE_#+mds9<>)tHAl05tlh}h-aVjrMpHc@afXR4t`|25T#Bbxk~dy&JP`+ z$8-?v78s*e(}wW2*TcZPM4cp8c+kWzVorwl5wJ9%>$XpT$c7m#?`SS_OH1Rbi}bl) zVH}P~lAxn!|0GILjo>iq9Bjy)iEmmD!He%VA?a!w?t3|s?5&#((qdcwyS)_yYy|H> zY&hB4d=Cr$?#3dOaX6%0@T0bUDC%`T2z2a9h9X~x%X`D}1r5h_fphg@h%}eqx{3A# zTF@jfVZKP0p|`qcf#KwjY;E2!d{Q+X;RkK0-x%_3&Te3&AOn9@c2swjSYbBt0 zYbosSauxYzts<|KO!=URskrf~z}0hJh3j5~)4>_x^qa32INg5$&Wc(r^TbR#@!o7c z^z;Tuy1s&E3-6K_Cj`Qe*LL9hOIMuqPJ}NsFGFI*E^+L$*H9N5hstr2F<^Bw4xc@U z+tUkZurQoo9}d)RVgXi#-zL$=2=shM5QW-O)yUI0V7uTxNh`w80grIMcoUkrS@TxI zZCo>a2l>&a2+20OEc3!$@$T4b%z5)BywEV79yw`+Y6eGWd$+bg%4uHh;~+WAj^?L;foKRb|T+4BAn@BOMo?Jq-;Dbnu+T z8Vp}C5L-QbDC+~HIwx@Hsxfr2&`sGlC54R{^br59c_Q+A)&rL#641zRGtAoVg@!3N z@UyiYmzNpCWj1K=kk6-4r}z`3L_cRXjz+Y(E`vLoR6%c{wWw!{^uig=MYYu!~(Q$s^Kr~gWDTYac>rHooF>p5-ZtHFi zD_(wv*n(>$a8ns{%=U%D{wv_qL~oF?z6EJQCV%z`OInNzOme=|~)k<_toa#sD}|byd8t z@(TRf<$$TTUP0aZ8?Zs{4~tEXBy-mv#n*$Y!QtIb*fu`_9!^%IJwk8z&7xo8buvTn zdGm1m{8Ex`a+9M1(1%_d7YT*-moch9m1jf?Oc15lY`sn)^oP3f{6l6icvG>tsDZ7$l|q7co`FH_U2OcQE#N5<=4N#}zG$T-dtxL5S0@X6y!?}(av~Yx)^8#A zdeZoZ!W_~0$_nvskN24RlCfNqr{w!+4eEY;KNOlDhwh9Z`ew!syy8;^$L!y+>q!FB zV^l6gCAVXuR|)(He1$JI0sDIL9$ql^;Zwfaz(Y$nezc3gFa23OdB!!+-Zd3Ri|(^X zx(p9J(4;ec$Dt1X#i}}nn~a1!(?e;#sC<)Xq4Pre{`eJ=av_al$QKu2$c*hgG*gBy&MZtB(o$g4y74Pmbq%sZ;yBN>tl2 znCJ95($WGK7z1N?h1C|J&nipvBK1LIWvfWZHW8&a{lx{3v~jO|I#W~AzyY3WctexG z(?uH~TRQ^}bS!~04o4u(wF$KUOQPBqaqxS25KO-7B${NsRFv)_#XW1iAhT9rIqg`3 zF*YZ#(sKd7V&DM3E78l{rO+$+m#D744Idv|hTG#aQ7?zFOWm_b zcR@8fE4_-2h;0Rb6;%j_B&<_92HPDXPm@d5LXF2^w)M+n@smNv@JwzgwuV%& ze>0yGjc6@M692_kDL**#{T=ifTXLrh_dv=(c&m^}CqDXN^iu0Iw&G|QlpU6%Mq1Bs zt`oZO)SM{) zk-ZeG$U~;u?`p;7av$ypyO-?pwygm8*BLCtZ%s zcO4-b6cq>4l5=43^)YxYtp@A{p2GuULQtdMfS2a`(bv|Q8Cu_r6@_uN1Nc?EuN@xe;S?~qYYom>Tsd<1frRg#onAbkFw^!;L0|68n^1GSj{tn zEWSSnEyv#=la2m?mT?RXx!47oh3CP=Y#?3wdW+q(Unu~i@?q9yfH#ZB(#}hNaNDaG z^zQS4Gr~RQSJq>2PK$+E%kRQ?$v0$NIi(JLWlDm;|J2mCjCWYe|ob#KVk1*=SWW| z$nZ#E-Uy1B3EvcqIQeu?$h7$Ks?FcXt#uzTvEnh--B6>yTnZs#P77=q{*k499|`)G zzF^iXeUzIqo~OD`qq~jnp=I$EjB~inrVBHZSIid(;1e;qI}JPT^pIB?#xOyD67RXV zA7>Ys5UU?2u|8Ozw$oa$tu4S=mnP%BQ(An?c)-4>=eT0TVw!OBG6o)y=jAUXVW{Ux zzO%TN_@8`+`j;!Af4mNjxVs8ZFFpkYPAhP-)>5o>?h($hY>*js2>q5z^4Zt*$m245 z`o=er_(%^2{|kFC$}t`9maQdi@hRx0qd;Y*oy7<>KU8zIfQA$MiH^ZzTFhko_Jr{+v3>Fxt?PNlt5`9u1#gdZWabQ71Q zIzKBQ;@)0pzNm_(+dhl>7s+77r%)&!pNbX+LiZ>B0D4$1rDt!f1-brlIH2b-2IP$6 zBX!+?-E*K`?}gmPGgV$!DnT7eqe*e^NWA>^7_SI!xAQ(e8{@p3c-SUeVFv$$p~27!&V`oggarLv!* zTZk`Y=hcf6R;IzrohG1M76_wuNwe_Jhl~DgRpLtLLV42HCTu_0BlKCHGPhU9VcNHY z_)c#GzO`53R@E19`@et8(n*$z(xQvHRVdH*6M^I8siZk|h0v9D;4c$S@vT1^L2=1> z6#S_yTw^r&uUZQModhNa2pO7EKl~cEkUu=2OGlc;iE`f0W5!Q_ zw+4NOD5vTPw=8$nhE`!ajA9FQD5iH@%B!^jXHR0vMR znO1>l-0MWwE*{O#g)}4PCZa{qGi=?j#pB*DW6`G!_-?h8@ba-D4MHg*y=oKb%g@0> za1xfZhQpfsX4F=3H1zJPN7+w}>_o6E^o!Gb3uoNjrU0wKGt_;ytl+UPw57P!qq|IPa_Y|>ih zW3Y-P)L&zF8tnPt+nJy*U5ldxUvk&3OfpYB2>eZ6v-2qjaCZ)8IWq%LbK6uNq%1}E zcXf!Yj7H)eLqXKbt=VILIo@>MRLG3W;$ihaoc`ho^kOr$yqoWM${h0_19mr zoYb?-5rz3GGMxSBU|@al4-7Xd0#_GpdUb|6zp7`6!S5R|SXS6wZL7!kn(xt7cr!M& z+>4uEripe|C&RRpEu`CA9~2Ys!lO}dnbDeF(tEapZNEKU6yh};>uu%XQ@smd9 znr>oaU@!zv&cukt7QDhJ%dS1r68@RD;A4&3c-hetF5g;3&#rbRt_2@Z{$d-L(>_va z^AaUodc_V)RH(%1aG(gHL_O>m5P|R&b{%9Jq{sn;gJ#`!X7^ zS%Nb2TwK&3I8#)#k!@Z}-^@~_s?HbS+Qn4Z`0^Y`*bP7}&1L+poiRMDI4|&wA7Hb< zTe81D8Q<^Bpb@`c3ip0X`dc-U;fKSdQJ6C)l@8%_ixlseu8CfLLG;nw5A4hH1%e;E zN<3_bCy2ufacQO>*A29#4gM{doOJ|OWH{0SGi%!5>p;DCXR_T%D)ghLF_~Dh8vEo- zxPosGF*znLzgJ2{a;oCSm0QP881K8*C&)#(%!SwB2+G*mviodq;u1dX{a~)M^CkXp zc!{<#7D6R%JbqPB;aYfCWW07S=i_Jdwr!3g?K)snnrwMj^jbKU^Os3Idxv(rmve(` zH=J*8!zXhyUg>>X9D95%jtGlq=07a4WQi$xcltAXZa0qat>|L!mCxW!r%1e~myR|W zhmfV5LKn4RBzr(A?o^!#BP&Por*&BntEa$k=cw?p5^@+!v8JWtWLm%OQLal+e)ml`+&o(J@9ki04PX^ zBx5YSc@IlMbiIJ>vlgJtqg?W0Q#Lk#HAJtBOiVs}5}QKaqp9RUh}q)FkAHhDZuw(@ z5xM{H{-`eTmHnl7D`Fnb`nm$0jNXxdRj*OT2+7y@MfgQ~GT#=z9X&=RiP~D6`0fw> z{M_+zJp9Zn^lqF^-pHij!+;!&T)LY7+M&sh=}Yk6%d}w6!#IqMJ%^2-qVZZ#4iD^1 z5czLS#`eN$tP$|XV?r!>&KpI3$M7Vtp1Kyd7XGiI(I|c&t0y3ZyTv07+_^>X6iz?K zGRp;BqG4@P+b!gBFHy{TUmPtnnvXR3OS)^f z@Ng*?d{Ffr^#%RFopKE>d3_J>|0}^awT|N-i~nHmqo1PT^=r^1ZLjcMko^Bo!=V3t z8mz{LtX#W#%~qGad*y>np2H211Xa_JqoU1gn2pOwZ2A^K!i%-ZsQ}l1fIGESC3wzxM;iBAq;wG;GyloxK1{M~;ypxZ>ROfEt z!%PQJO!OJyp;`t1PX8^Q5S=Z6e}}?{OKGT85(H*N_u;|u6Zk#qDE>4qN26!Y#a6Ze zJ7jke&;A7AK-(bBvd$MtoRj9}_04G9kO1*bzl;2rI+2^R1USC61~*H*jK!tDz-``j zyOnWXc59zU;)|jC=)P4SNaPh)eDv!L`%+Z{TF>*Dy8cD7@Ue;jNfAU)DVZeY_D7iG zPz}kpzsczWb*#CaOS@kJP4YIUYnn8;Zij_9$5jXYY+HnIY&!F=Er*ltFHmYgzPSJM zc5ty>!#D4=<7b;TQNKHupuEixtNpHGSJgyzZ?6}a1xzLxCxpj2^Fj1y(_A7#XOt3| z^11CVMCv-_IKjIN-H$IOuR3pvi?0{L+9floS@kS*dHfbk}Kmn^T8fTY=yyjGVR-ZkoR#HEog2cU+-8@|Bk`5<5vZf`J_vq z7^FkeMtKrsn2wcgp+cGDFeGnj2ATRr>`zG!{*bs1qt!=H^{0$#9tH3QF-7IN383Oe%8Vt)~i1GChO|;sc=g`YE%~JIp?ReS~RS zW0{ZKY0NAP#L1Qupmv@DANBPwww=yFwYFV!?&0%bAKrz#>i>#+Wv9{eHrJqa!ZWP* zT*LG7^r$OF0fZeCg`Tmem(}G-{<tm?EO3)PXMaq4NzSdh$ob^ZlUtS5-%->Ko15?g3oQUTNQ>WS}(RNKlP+GqGy#Y^$c+=1KKaizGv&G7?LvfKxH3U??2HDbY@JwU1 zU}ay7md4HKY&D#&T%QE*9GbwR&6SO}9uE($xw3=8Y50Rz<5=CzV&4HObYS#C*gUwK zEvwi8Un;k@6M5EndbEFVj14e4rfqE$tG0(Y}HH6Lk4}op^Gf;;O%MVQhrl%B zi705#1=u)SjiSLzyl1Bk%eFpX9Y)j0O#?~%9r6UD7CsSRyY(2MH4bKL>G7>+oWZoC z20bSpWvvI|VAzi-Jgd%Mq_Tei{D@S=v(nEPs>;%6>(hdCIUA4syuzM}T}Zjpd=jjX z3&!1d@aywgAou$sdFmUBAy+lHf!LU@OrFa(JTd004@$s|gySS;sU6Nsdq_4(X^Z#R zT_BF~7I@vi7`%mGiMlYf#2Kohk={kvH&lu?%_~FmYj@%A(^}9=9Esl+Tx0*12|$W^ zIePci8%WiW;t>yZc;uP{+_LxB41?xFe?-bkWBJ7Ljp4^QcOalWFiR-gwmS4~%h-NBqjJ^f#`K3it#pW>fh#n3p74e)S zNw7T20!sd+pyuxq48Ay*r;aUy!K*cKhFbyZk5S=Hvy#|?oF2On33+})m{>W@`u!f8j`OsGQ@^st?deCFJLe3#DKZ#9acUplq;GiL4)*M{8`5IFyiUE^JA{e@n;I8%Gfty5;1w-z#>O~T`u;Uxy z7k5I=LTmK=QB<@sa}>8YfcWXeB>WjGz~o9@`AtEDHcu@G^*@Xvk588{xerH4WMMw6 zYj}pU)sk_vu@+xn<3@9@ci6<=u`KF7YDkL;azw4Vx5&#^dYGjo%^e*&aI@oGa(hw% z`;k0}@~r|iJn;&w(LRq)m(FJMyQ|og#>qT0U&ISEZbI0^8>HA{3;1eoTn3D~eij-~vaK&QkBi^Qc*$;vQG zjIBt5D`YGkq!s{9gWSQo<2RZ*%WyWPjQ!QThVLTQ!}%HsdVJ6r@s*b6;2kIiyE79Y zQzn@Ns&1wp!Vr7@`5`LnWe$=(BcLi`6?tHC0|S2y#Pf;X#J`3?hU$DCUa*|6kkQ92 z=a16Cx=M6P@C7)(&Va7)4S;zaF0^)pB>irFUX*a~Aj;pJg$u$D;GzDlFmn5U`0uSb z*Edb1t5@{kr$0wfL-sTC3i$~ZAGNVee-d1I{1ca}K104ll`9*~M7J}_@bI%9^v7xo zf{jd;by|floHm)XsrABNg=27A`;~a`Cwclg$qDE53F7M$67<1JHK9BcJj}y5)C?wUlZxN?#A3k`s9?hGv zAOD!l5dcYzxI#G3Yflb=jBC>T*wkT=|6m^}H#4S%QH$uh!$)wEM;~SzrLx~r)9}IO zNc^ntf_@6Ccw4zX9dJqmlGnOY(@!nrT(JpX)BBS|!$J6b@e?Mv9f!BV<9V^C4NZ#n zqI+7bA@ivit={Zm^Oqz*_8om1rXYu&VS|}Ry*J!GHCYI^&7d9I8$f=GJe`^!3a_@* zgZJUR;--h=`BmFi2$o%jR(FG7-kdb7df7on7Y^ckFAs(KFFh<+NHuu=Ql{@)rel`V zE+Snp9vmJhK;o-Icyr4({L>U9+%+y^PK^t5GfYG+k8(SesAJ^fjNPy=Xc4n>)5C3J zbFg+rwb-TnHLmYCgU;K%?W)%vBvG$i@ng3(4XRxW>JQr>@M0Y-eA5hX`bP01uPxBX zFa*`32E!>*K*Gm$V9p{nSWsgC(UO^DYpo>jewHULksZ$S_tcXLHG5*&T217Oi_z(s zH@uW85ocB0XZ67pb59K;+q+}nX_-7byRVaIjyy%)UBAfQ;B2@4lVrFdJ=AJ%7+}2GEh1Hfq4`@fi^D1 z^S(SsyB;;P9213Y_fs+Tyds+1xkUa*z7cJnJr6r~9Th$L9EAJiN8-t2^6aO4A$w~w zh8yh9#J1lNka66FjB&Y!kCQIp@>5Nq8!X5lzx*M3x5wfKpV=@nKoEf4ZxYu}l!QfT zp*TuoAWA#xi?>+~g~*j%qMd=xDE+qp+`3Pb?+MF+t`MO6wchZz)(-L<9pJdQuixwOGoSch4o5?juS@ywRZ@jt{VWeGu8MBrJ2QXD~DOOR#XkILs37LdzF|sIGGW)jzr& zO^f2$wUkQS=^xKE(qCZuR1-F7eLSq$JC`RtKZh<+lI(q6wE(C)47x54aNM&Dbap5w zE5gRYQl}a=er`Tdm}<>0`=(*YlwP7O;RcBxOu)!J_)I@;_{gsWy58#|G;T5UQj0r>p2Fo4>ai6 zJNXz~f0Lb&drE?{rm{mx#p13(wZzlnjQCc}74ZF5D1d`nx_=Go#|L^ zGNT>sFXZ6Fy{>e6!XehRDH8_Gs$``?C_bgR7pJ{1WO66R3v#xJXf!U9td6tA{c_JS zq0s_{M2sih1I_VLVRzAYufe=>)Bt)xFOq2NT|z$}xrQQ_bPOA-OAEL5!_VvyJlF0K z`*>(9mwPY^);w{iovTK1Ii(=byt4omw1$CPnm!wED8SIAX7VE8e(3Z+h-T6|jJ`D$ zqqLpbm8g?o^DLY6OS$o{!zEa_U8VTZE=TA$aOH>9cZhdJR}l48<)E05?m!0Yo)h4gSiAs&ISy76Y?Rw#xo%>B|j4~90Vi%l5McY zv#@UOfULHVp%_)UiOu@`MF~Wn> zE%>DS0yWjnF#nNDvZX~=8nQLnKJ+jkQeNfXieh+cfXlh9(2G>R1L1k%dIcFBV*$7*O}`!@+l-0p97|B{IC6&#nx! z0_9_}JZ|4dRO{c5LA83kVDWn*-NHq?4n2X;O*W79$?PqyZDo@*V*KH zLwG^7J1y^I{A*Q-&sXdK*AH&gV^|9gQ*`0G1C4P>w*=iSynIZGROa?Q8*t4K zD{yWaf?fB;P!cl+UY2$f2?tla!LspPxdJ%#bJje4F8}p=82Ep>%98Db667UQIx1@- zbjBr<$KUi|#uGU{Cw>Hfd21B7jys87s@K8)={@Mwd8CBZAz{ZKY(4ePc}zzwtR zl8Esh=pAIorN=gtiii>zIBz)2Ykmc@3@?z1xQ);^#sVw(Id<&y??T^~67-1xf&E}3 zNo(dv!hJKumqCbeJ$f4_ik1Pldkesh=q~!fd zn7B6*dxsVvDNF~&qx$?8v0+80zu~8Nb$+KSlXbZ#{Zj5I5nJ?k?0(He>de+hA#=4*Fq@*ig6Vur1|bA^|I`>2sRf@w|9MISF| zI#Sk#UsAdZDQi9P{ccOL(J>x;UH$RjTopbs>H(bW3dh#9UihX*oBnhi&u2>?hoNV^ zA-_Qhs=q07?Xt^6YI`uO4BG;ftpu6Cllay56V|@X!;iu~V4cTDvi8GCOpgqOhMy(O z`*XW^?V;B&^Wa&b9Qpzm>|(Hgz&w6!mIf3EyY(%G!B{6d29@i#LbusdSdi$*^Lm|N z+=BVcq#+G6Y&dIEK8ZQ2e_(4y2fXd^F0|PYf@Mpl!r9^X*>vYMpnGvOk!(r^dE-mM z9P?B@_O^t6C&C67K3&Vo62)w^R4Trtifxn&(<-eMb!IJD#{NK(`MLQb;*si8X zSh`~#%HVC>VWdHCeX|9Zie=PcRw9%I&4W3YtjJVy1fz!xgbmAbNX~a-uIPYpv8J0M;J<`Vn61 zY=yARL-CmVVP=2H4f{Hu!?u4tWc-mUXcoh<<3AZX-cXwIUL`EwJ3}aFFTx=LnEtS) zA|7#(r~L|ARI%m^X+L%vTc!)Ilq>#&8}d4^FsFt+bjrcEJB_KP^#W3~R|v81U4tbX zTCjffC9Hp+iW*;H1t1i|^PhL3LK}lM|J7o`+ctP}UIr9$KCoQ|FK~`UJWhEi!{%So zhL&FetZdazC}=qaqWOIgF7*~xd`o2SM@|)rmJdmG6sdl%V55U#;LFd|=&H2?!mDifl#8?Jt(D#6pX?aeT&T;v(~_WM zi3!)t9D$qEwqf?l@v!!&3jMj?jq3NC;o$9&Z0ngA(PcL&oEvxvMIOp@nqwrZHysDL zO1s!p2?K1hR_8}YQGC0<5{D{jLq>iJyl`kj?Up2N8=y_`=we>?FAO{a6Pa?aE<3*c zis-)XM80I4EHBYdgg?$lpZda1RptTI5CJhoV`WMWSzAM9wupIoe zRSk<*zk*L^H6h^3XE--pg1!*`mOC?&;c?(ddQjM76xr>DUfVgCFhiZHj~_vU1D_D- zlA$~>x)KgVx?^yD2>f;$!cX|@z-muhIzw{?D)czO)PdXJLF91ogBt?m)>$Z*9i>a^ zw$N!Zf-KX$$8Odw*`j{=sW_@8oY`JYVoQ(wE%H9_j|}v=it$IKi1sQ3ovxOm(6ARo zLspX3?K*+)b}LcqK1Gmyl~4XuJww?uUm(qAJYTnK9X?U$X9rJxh9v?}>Qm1o}qi;SL7MY=*vK{PCKqM zRG_UXoh;RN6gYT~;J?#KvA#}|rUzxyWLl{KWQ! z0syJ>BX*wI%OZpOuyIj@*k^ANImZ2n!KfS(`Ro=(OS`kVcpY0GY-J$<`|%i`Og}m% zF<6v}4lnbBdG0)mZ`;q_e9dMupL<1Lww%E83l3sH>Ior6bv0f< z`=rCfAm9sg^i)Ck`xNdWGX#N*8D3rY1Y0Z5O`dMG8T+nxFnK3GJSh?aSnHm%iN0?O z9mmEqL2m+_uOhDpN%6C`0#L%!0MyLWVbnwgs@v{D#~H#XN^Axsf$ zgu)xP_K1$oSwx&iinz(QD`(A!9TE^p^kL_6S;XV0$F&iHVzrQER z8?j6PGhJ_L#AWw&d8u+VgM>jm#cR5MsUr&H16*pPxy&`nH>djkUH{n!i zTONFH2v3Oe#|#}MzR@5Ce%;Fg?;GXl_hgO$sMw4*$a*ry!HVAod-{T`*|W3@|P^;lRka&VG&Oc`vKoh4kyMVH;WJG z=djkh>G(o4gw_R~!;+>h$ba{L6rFcC)$bd}&B!PtR1!rYib%$J?oWwQXo~jUDn)xJ zdyiyzw19=eh6q`}N|5Gon2-$nybY zscnJywmGoxPL3eOU6pecn~Ve1VelqiN*I=C#YJrTCVb^2hh0HCU}wHQY#NHj4PQ?R z{+x4y|GGzWH~72Y!W=Oc)-KN8TgkDaZ!<}_(-icqlY!n?jvTuXEVO(XP4)|U;J^bP zSW-^tUjFrUX_g_IBpHVL?ie$}$ZBvnwhljgFAzv8ZN$HPNGg5u84gM~Zjs|Owz2vR zdNzr&WhW+s#ke-Qq4FA1=9akruy|$L=}T={vJv z*j;MJZG5T8T*KyBm6@x6d}Ih5cwL5Dx5^0zA54IE+b)n976o95C)wzIB1~C)2231$ zN4t%u;e@AzjTcz3gGmmU`S_>6^llwSjxWQ4yg6vTKpyhVK7-P4M>wzU44=BjU|oSO ztME_2r50D9Kw>?7>d%6W4qbTQVgmKqV=ai2)1{^MhaoU-B8nS#K{T0---O8!{dW#2 zdfp4u(yU=gW;yYC^_DFBZxI$O*}+3DM{+wyT9YijEQsaHN12}t!LdGu9DU!7Lq-u$ zaIOZWOx$6av?yM9xQ6~!5uy9W=fKT%MHp-^!*ZE8%is^mT6s0l;#iADPLXV(?+twY z;wpZQ-G(-^)S&ENLh-O$Jx+E6cM@tkIg;kf zIgoas3F@5Xx!gyy0DUyLKD~5-%hY|iXZZnv*y{pv`OFPS=-7|xk`0i4)CM^3Yt;E< z5?%H#U0`b5P1ODLnDhND_`yD{=;fq!(0NfGe7Y)7AR_AM+4Ey z9-@104$)DGD&XLpgo*__z_Uc0#g+TP3Qd2&#x-c=Cl3RjX%MO%OD>%}4X>XN;rs~; zVQbARY@HDW&-a=@>eQ)R=Z*rj@|gx_FaDxB=?M_KqlZKl5bi?ZB#iv30UGOz zAde524j$FQ<~7$)Y2q?)F!BSPHAktRW+u(O6o+o#?Xh1`ADT2~Q!CqU{{2{zp_>`f z`nSlT8MZFyLzAWB(D9EsyK!eGPDuYQh^XqOQEMmC-gpm`)RSdm9}_`CX(|)t=T{X= zkHN}ShU{)+1r4~7fge}+Qh)g-GTQu`K)TsktWO0VSwEgJS4Uo8 z?TE3v=R@`DLHzWPFRY%qKwQRl;E2VE#A~G{$q?-n3f8S>Gdz|+j+O>jWiXDuJ+%|n zTc3i)!aX!%ftyhM$txN)s{^Cv5q9QS65QD^h*jG6ctE5OgH6QY&FNxP&#Xj;-2sAG zJdCs@Z7rR*{tziWeg^e?^RQEtmtCEd!~SWdbglUiY5yS$GtW2Tiz{h(u3`jNw{JS@ zem#QwW;2P~TrG*e0wU6oYMA`em$8A-kZ8G_*yoOu?Qq%&&~d2Wb=bQ_Y}%_2;$Uk zuIF8X+Aa@R7{YL)vog1`H4j(iaO}adzc}%=E-!W*#ofHQ1J$eN(LYy|*qv|5z&H5G zPH`pEky9T5HBb#JwWYR2I+*9Fc`OJ7l@ylz;ZW8a|I_qQ)e+=R9t_No<6dinr7X^ zo&Nu!#&liK+cF>ek6)p86HLK&&RP1Y$`G=vkHemZTd*{BmeBjqco-SE0M?An21Ca1 zyp1<1U#^Gx8beU{mL^P*$tNl66p_zZ13NegACMt@D%nLFDq}&_J_gq<_QM*{M7l*x z6mM0Okv`uLY?#*%H#^1Iv(X2s&Bq-4ek%xnk6D6C{@lP^b8jGZlR^Ka4)Qrbl5;Db zto-H=x2zL!zDhE1?fYQSel>3Qk`$6Fm5IH+NhEoqBT8H-08N>z5XNz&Wc*j$WiUY7 zqIh`xeOr1U)gG6nYr|>960+ilI%_okfJ@yzps8>IEC^F&uO>C);CVlccS<4G0s{mi zD%|lx^6Fl&*G?5J9%4N5Z7wYmT=FJ1NzIl<^t=-^yHx2_X71L3w z--)(KIL6)oiAuG?Mni~(JHvpt%%g@-pacD zdC2hK9SDEu1$>tViu~ttIp4*AE1eHTCoS>nV>70`*$cg5t`d>jU@)!PfahLb7nUR| zLH?yo?Bw4&M)jV>MQeHB%kj-DdM=~yUXv3g6q_) zs2}wo)wz3`h;51y7wsG8v5lCkU)cNu%neQxbqBUU))|xv~BbEF7Ue1YbPi+^54mS02 z4YhwCWd9Gq%W2qy+2KZviT?-+vy13}-UBc;mS@jn_EWQEp+v^=0>1j52RaEOXitm} zL^!W!Cb8QQp2Cv*X(6&p}Fws_zX_OJ&q`&1iA5{i8twzmel#a92qWIR$FN^!)mERiAJNCl zw}IGOMefnbaNMa;4NJNzarPZ)ZoKPECU95{&h84Z>ChY&axVtXcF(|o8WG{OTz#hE z%Wy|xE!-O)gfI4c;-SPFWc+5npkewA#=4u5<5F5+bR<`(=3~X|%rD@_=wcLEP6`LfqxeE!vlEg7!}`*{G}jNOTFWo08xdZxk745@Rm=WUq%9W8jR z&Twc;C2~2-NyhyEUUpSYV?r|Urt51+k(vp|lb+F3mzQAkXBLLtd4Xjy0dV(EA~f!? z;DjGExM|OW@%sC9_(3>LsH$(x&Q?TW(sWsjd$O2BtbB?$KJoweH@&D_e>~Lif?U~v zmGs5P5!~Gk7vbb)Nw_{dmr6YsupV{{ue-b_SsNIv^>Tz?ss^xO)=MzEp%0J4#QC$i zHmyz8629(e#GzxwLSLDu!lKIp938@uA)j=Z;=#j9ErnJ^@7EDilw@XycMx~=6f5Oj z`IxnMfTk(@fkW5S==mpQxFWX+>AhJ@^3obyw(&G7n~Y_xw*F}HBM&bAl4g8X7jE(M z!2H1{Xg_8-7XF>ZoziS2A4c55=Ql^PTPdLsS0Kmdf33JbB?g>vf*LaoFNI6?_pviQ z9bDgwvquZw(?FZg#OjJH+57$pbnpEMO|$z1vEQ`Vkr^s@E7calXXaDQ2VJDvbxYAl zpHXzU$bjTUX9zHiz+?ALYIyM$HoUjNyLzfzN%~|yKdMILn)nQ;M6XpyRVf@UPXo31 z$GGZ-DEA`l6T1HNqDL+tCU#lTnCtWoq_Q7Fb}#{#(7mWzdK;ppuL|LB13X>4nV-RH zz$4kmU~+vX1Q`y~%NaA_TY@$xs~QLWE$4CP{1#ec@SYm)+Y7yXemLOREgUbQ#+_GR z%uPM33}08(km}V+T*Ig;SiLv}y6-hn++)cp*M5eTbq~=Ybt`K;GnTpY?{_6j|6;Z4 ze&Q|L4Df!*!Sux(ZtbE-*&tKg^QnML#YHa1iy)d|sV*Os6g?}%;?>$CD z$0X5dZ+F1@ig@^F5-6xm@r2{6%<+P+5qp*`52~djxZ(aje6ZOATeI#`68nSCQTdZN z9!U7bA)lNaNJrTnmxyy~?16L7vv+_K&rEJHuix&cj zkL7_nN_cYh0o;3HH7~eJ!-i`z+^P5!XsK6#(p*(2=^7&QZq31mi+~z6{sjG`ee}fX z1F(0S22w#5aSxq7-*Gv`FxA#$B*`)c^yt zwW-+(ZLZiQ4ce+)xcvRycwlln*dED-Unggg{zz}kiki!Fl#k*=*B{v2wGs||h=3{8 zdjvNBjUfsTO)x$+6B`DeL)Ek0+>Z;gT!iv0PI=XC=yCZA{ymQ&|7t5*)b)~S{LUjM zEfmHVT_mRsenH8LaomL#W$fMd9VT6D<7aJYpd*j~C%;^}{+uK;cXH>mqnBvOY;7oQ zF~{tYi@|4(3t6}C9(ep0LG^Pj_&kt_Ai(D#XfBRqPT}I*zcOo<;-(66O8&$|bU&&z z=m?7VY?RV;W42tt7g-OCB>^)HXq2R_prO{4&(~K9%>DWN%w&JGiP5C{8n3{R!5GY# z`vCnnAEvUrRKCv@aamG5T$vL@GUgr?qsR=lgXe5+4c8(=R>9HuI26$I} z7dCGkgN+|WFumvjrU|QQ!UPuTn;b-uCOekr7RGKCD+!a8p74KzCAL;gWN(rg4i?U4 z{bQ6^)%X;AHFiI4-&2n9tHof`Y9q4d;z1a8cLd!4G4yeME9hufV(+9(IHf5!FzwJv zhU>Oqa3T*%Ta*I6s0s&{83=BU_JKazpE$yD4_jX`0KRs|tSUzaVy~^-#C#;=Bh(lz9LljNz+aB zQ*frMWXX*D&G5u_1k+u53B7W@5hc+!%=%zQ`x|GooqkiXK_&%O98JV4Qq3SW=njkD zzJ-}v*5OXUVg}W%;3T>RBj_#Mn_rC;FHZ0fLu0t6q|F^3sYX(k@@3B%mq6;b9ZvhL z$g1|GK*;X}c>kdY{43|@v}#INx3Yuo^LRkbG#en{Yy-Z_JPX3ggJeQkE=-6C#dFib zA?o1~?ClAIfi9roNljQJ8VGe}apc<5kElE%9FL8A2-Q~g*qe2U9Go@^_9cENhXs!4 zHD?$~Z|wkFm0ToeJq#nRZiN|7uaVRIonlY3E>#jVz&JZ^I9^>1=hpjS+(ugvIoC#) z+}=wDueg#Y*^|*DGaEiCtYC{5{XiFa7t4;ZR-DeVLUi^xiT(+NaIIuNx3YE=Y_AW( zUtfL-9tp*u@|q|YwsShGThfc>kuPx^--{COu|m@e1P-5_MXsIdB{hBJcv@YB6UNTu z;Mr_8yRQfw_fyNaW^BuwnDTzQ!Iu{C}5|nMA4aH>=EpHn=R>34D(} zB9kKwIp5QLcurjbPq&Ol<&AsLC{v3{YnH+m{jFsGcr6w=c_fXR6esMQP$mfB+mPFW zc^UQNT2wnM$-U{f=Hx1l@ON8d49VTZxyV+~JJzuD~Nm`#koom&EpM z9>Rzw5pG7u!^cr^j)AA8Y8CwcFf8-QSJA8yZ(ix30pPy5~wj=cUtrcJp?2S+4mAO;9&e7=layYzR zkNKWXEoz$g5^rl;L1RX_K=9L)o<8S7U(ZqF98cXQV_#n+`ja%_)x|I&ahMHdTX(R4 zd`Y~#L6?(wVL=9$^Rp{{jB>_NiO$;a83*65Ww9NHsYSabS353){_d)U`9UH$^|T8p zRX-5Y2$tuZ9H-IyU^zNkZ@OOAsDVQ70fu}L6?qJXTPTuz*d8JQn&Ci ztp7U=>qc8*xQ{QXFF67QiM>|g6*WZPVF$M)cP-1hlMUBgEZHi4F5JH~94qR4K~+l< zx2pG(I^ASiKUI?Z^ZhC~o#f?Fy73@X=DT<+hp5$Mbr3Gt52n@$FjapejOql=|G6St zX)&6;@NlOEOTMC9eg~#WZY60h2Lx_f;e398p9z+aq*K;-V10!e#LC=vvoZy7Jj z$z4S)`trfErJ6kanhlHZ8v0u$8;`D*H=|COGSkHVw7)KKUBDOS8ypPjeLB0IDmVy$#Bet5E;T>a-u z-RG}ijzbyv=D<#_;Ew_d%F1wmU?upRilg4;m+)N1QsMGPH5fGUJ|yK`2ScTmT*Hca zbXu%5H{+Ix`8qLPT(@@?r@DI{7yL*QerZdf^_J;$Q_4L$nEMhU?jhN)be0W-h_FdE zKT%p3LyxcBgS&Fx0iCv6uq-+XZ(G~JlW0e5DrurqH5Hj(?00lAvBh@P)sXOZH!<#R zA+@s)(Sv(*pnY!(9{S~u4PJkX#a3x>ya4W*+5bh1=>98|+4LLo-AC|1rh0l>*96nN zzL1v>VlmFQ5#v?mnRdVmcn~lbH<#Ii$N?#ooNvH>-=yfMt;hZ09?^nXU+{z4Z)`gD ziwsAvgUVB<+17?YdLwKS*uPT5KOe86$&>(?{r(f5bZjA`#KV|+$RD`1d@73#Jdc7` zygYWnN=RdGP{KT=Xr_o5D_?a3Gn{we4Xa(~^f;boZ|%p>c@x;od@1}lGo9AibQ0^W zi)h~AR4`Qe4`xcQV6|B$aJ>HpEGl&+i+C8abZ;tEx%7z&)B(Eng?QtZAAPaD3uG_M zLOV|@PRsE!4cr?|XS8Y4fhBukMnW-u+i1cj*xsgl%-V6AiZvVa_a*Fqpu)ziJ_qlt zhN)M5DGA=D!?hkkvc!+0Y8&$5_|Zgoy7DFtuegU+HJ3x#@0&)cQsvB|6g~Df$YZL2Va0Wvh`ruBH$+PYl++=QFPd zc&Kvd4DL#E9ZXRegs6;0TrkNNpKnYA+ePXedHxGMzBNG8xp7?a_ITJ=@5`B;h=(^r zzPKgt04ZNIl8Gex!hcFG)LBgto@CyKD|?gK9;08hqtk)A`g9&=U%L&j_PBt#_7tc% zBM0#T8=xog1yp)3V$#NI$o;ll2-Wb1!+an6=8^A2z|$wjrs$I&gN^j}^~Y#>awbbu z&;yq}1Phk#!Gi1lJas`6U&@NHdsi!|nVT59Sbx@X?x8@at`V3kh^=9nk2=AjL6bZ2 zU830P;WUVr+QvRr>7w2~YwmQg9W2TpL=3z^zD*d#g;;5U){}X-kcUQBn%smV*~zfy z*En`M`8QrE`|5DrErsOy`YYJT`EfH<4{?*C zcfhHhD}qe+5MK%ze@04#`^}>8pevGke$vMOo@(HuiXfQgaT6EG?L^nZ0W|{_e!wbuTwbV|9a7DaSvTQ zy9d;xB8fzeE6&MT$>m&BVnszpu(WO_Xx-Ap@}DEYYwInX`hFDO%XUWF>}A~4ozvL+ z(Y{>JhtXJ2_zK4Cna#z#ET_+W*U_^JZ;<`B95Eza6~AXTTVex~|`cj4y*i};x{=F&Ko1&UxFfNO;#+y1uFuwGKQ0}uTbRFeEg9)A3VVMSR zJueE#l8P*G-_<#s^ zxOXLbziffi7j;-y=oFB-vzL7xp3W5ZNT{A~5 zn!{7*uM>*cwB;p6YU`76{%7D#kPiliyaL^1Cw!@{}lL-@}}<&+z-yz4X{QHEw@P4$OEqjFH>tLY%J;xhS22p1%AJAygffyFaJD zd%wc{9-(lCPlKS9JSFR&Zid;;QhX*>m8*(uB&jmzscwTU(VX0azwsBWTeBGII)B3O z9w7w&l;Dh3piyE8L@{=@sUWCCt3TTu+44(r0t!D9E$iV|uSabd^*(I_|kd!tT z9enrW{4d3DwaSv4*ij-3*j0}jttMpJI7zlkrvpP?$TE|C8<}|f7l<8js|2 zG$+Tf#lc~a>vEk+$0^b~Jzuf4ZWcFNC6A^~zm3u!uIL-WcRHKB@RVQ--fdpQHFILz z?{AUt-wty&u&ily3qD<0mm5^(#6~<~)t7Za+is zjMxAzNoz=R;~X5LV@pnseFkMhWlsK$32C1zM6Dr;B>{!>Xk8}6R5XBbVl6%hrg%nj z63#6CNc^hDK}e?uT)8iSiG2zh^y{{{vZifTs)e^S<4|28gTw9-Ml#PG@gh#0Y17z)KVdh%yxAoq0;s= z>G)+d{{0E;W=G<=3;r;2iwx@ad_efq!%i{K1YKS^-yJx zuXf{R)pWSGGmI$_Ypx@!7oGMga;n>wF^BylLCdfaYfkT?>wiAL^;(KF|3@!6$H?HM z(j=1KazijSbtZXmvIgc?AAoPI2tU7PV?|&EocmzKxjK9yW9KX3(XS0y*t-lQ)nD?R zTxnPvI+BBy?Ba(ZYluszGM<}L44I2$*kY^YkXmvFhD^PmF}Sxdo!qO*AHaz1rYw?pgm z$3g1iW2)GAnWTt?;zQ3dyoARe+}HED+myW+%szpGZ-(%_t1=xwm`UQ~)9~d-QQV^+ zhIVgLa3S}OR^Il3n3Mg)EFm4xW*Lb-P>t&*KEjZdlbCYQXJPw@(X3B01Xl;$fnDRB zk+r-~UK_+s@94WS`*_w+`C3F%TN%Zs4wG(ZzOdfjGKpNGM)o3I^YP z2y?>=Vf={!Jdw_GgT7DY5|z%A_Nyx~!rfPpFt3TUsfw~^*3Iaqxd_<%=iu&hA0yVj z!XEgW!9U(FCkXjh z#RB2g&-?JuV^7%PuopHYRYUayMMyMOB@?=yqYc|n6AI*LUYi&vRq+yn!zu2PDi=&_ z;B#BolfcYo2&Cow(K}A`#tw-4}x_B+91gEB~45`jHa72uHBbi8Rk z8s6PjLNA><{33ON?vEa%4*TR_?eqiGa-gBOO|TRvD=fmW>Bp!bG7pRP{zZGOEEEoT z5o_nkxZzy{b_Rcko=`o!GhLU6Z{=X*5ph)gvqKjJdC+{?0HOtcSlXn??seZomU|0q`2Ur2n_^(p zHcdDiuEF_sPl2Hyr)W#V1G3EdQn70S-$~Kzv6>?MTy*T%I6MXCsmJamct9(aerg_% z9sEqEDo_tP`}Mf)%AYj+yANvG=&++Z#=?g@J+*uFf`agJLc;`^>Y^* z-|CCwkL-az#~medfkA~ zk{g8Ai=gTIA=tH$&)$rl!tD-?#SO86NGAP<6KpLw`A4O+_w8xg_MsMHKgr;*@rYul zC1SAeeHeL_BF@a4lI-W~46OGIg52|=z&3_{9QeX2WMLF zoQR^1HJIcPMEd6pqH>HW_h)brf4}F&Z~MA<78%9aHreoYi?vYZi!z(N|1hf9DPi@3 zp5ivgPO4fpo;$YiK2{#z3cAHYKHs4Q&Kmz{M!-b87jcg0r1P1;FS{U7mZ#7qT|~{S zbucj5%spYUm-4f<*n1K^+g~5_DgLFuj-gx`Ax4u%gw?S>}|wq8b`1?8w)Q423ElE5ZwlHmCIzc}Q$1aSF7 zn)CcK5&TWWpsadY@zsuu6^z0e$Lv7dLWcXJH;LI+xzfS5GT1J3hp%0oc;?ACoc3IS z%dp7-4_;h#|3V>5&{1R|Tkq2Z9TQUf;X0Z;kU}aml{=(V4WHddGu`w8G(T?u4L66d z^y9PQUgI5tbGI7F+Qez}x!-9#JZz5J;TL}W%-@wYF7sexEBGmv4JyM|h{cY(PZbo1t zOCP3mP9GRt$e~h4RXIodQh2F-k(!@7fKk7Hww&FIJ$n-cU&_6}Mf(*IJLk=<+clqg zjH=`NeIndd!zh@z)sSk}YBBW#D%``EY%B`SLHW*SR+sc#SlG=3bh#-HW7qj&ey$rc ziKgga;fr&_%%L}8Kc0;}3X^M$(D>vSR9fvvmb&nr@Ke78-L0miGbatBR{G$nx0?u^ z(?GU&_~3KTc67X5TKw}-B0hWj8bTHub7^A(agEVtP)N+c(`Msfb^27${{D~#n#97t zT^3l|Vn|c7f04t#RIu=6x|QpZf3*6=c+8q(gPsA?>EgIrB2zsJHk6kTeOE=Q8_nR) zC;>>nGzal}K+ni+WCp#_oRrEEl#||tnE6HyF2i zgLeK~OkCSXd;~JIqxT};x9*_pmh50{*K|3vjnZ62;tzpot(73R+Y_@267c8xjqIDy z5bD3FF*|n~w2=rFysH|9+wxWXT=fMFI*|&;4v2Dx;EO=-@HSyf!(Ytg``B)GCGp#Q z5mtUOkIb;$fV=HGgx&H-iG|w}IL$M1Mk&DFgld$Gq%$DPHtP0?e zT6uBrD>2Y;a%UU6=EK9JDBQDiCtMTjBg4L)pgu>Mvn|~QV=wX@nOFy|r@ITl`9%xRD7J8h&}+74L6DL>HkR0 z`Db|N=w+s%CkA3qTHwUfUYh)O1A0s|U?Z+t)12C!!k`7ZFkYO08vLK)3y(wS#m`6X z^WWDUqsvA-)a0_d#&hb|yNeTZ!;4cFycXsR>(i%2qrh+HYqEKq6lmWDL7&qFdjCI00OhcFMEVS3{_)>IJ&W)0xxni=-uX8s1mwhJn_vbfMW?GFzgWjxDZ2 z-(g!AKPe3syfR^hyCxeFiLiLQf zWO-2shH;BwS^EO+!iVRmlDmqW6FAU%4^7r2or#~@e+rfP?&abrZCtCJ4vJ^Cpqldw z@@ixlzToeJE552SlW)r0ztlD4Zek@CCc8tIw-&@c&=Z8WzaYbky{H%YgS;`Cf&p4V zAk|ih?`Ijo>En`^tI-MPLn4IFjz5M3uP?>+QLPyC*B_4kxX$xLgtQ|{88-ZP5i|Z8 z;Ahopkhwkrd~XjEsf#T%b=N3Z*grrrqf6)uHElNHUI9j(=oef%m@4duo52mAD#2i_ zemJ=6HpsZGWG5a;(?&}*cIWyVG}@E{Yc=Ab-Sj1T4$T8rW(h_0`Oq%@29|iwM5BPu zbZ>wWJG$)v>C-C3mtRi_CrehN#o}&QIOGK0Lt9{%^(OCG?WeMRI7IJrW z?t|lE;7m6i#Lmgy_^jdvY!O&opq-26HCD}!-I|S9t+ni zuT!fYGop6)3Xn4!$s4m2NRTLnpxg7|R>M5hj*7;RWl7|uWjS8oFb|GY2ddXr7r@6k&+jg~laH{5`mJ}VdweM<$q4+GHe zB*79s>v1is??Bx8Js^8>6qt3`L5syi?socQc%`ZZkLD|K8r%4@UQ{wnmyV-070>A6 zicGxSuf&BMZHK4nl5B)b0({jK;b5N;I4`fm7(0RUrJUgIZH|m;RKRS1PyBIn6!vVB z03uO_pO(I-`{(81>aA%YzVjn&Dy~E8q$Qlk5qr`R76+_ZoRup|Gr{q2Ea?71>XUdb zlC~1Zi9H1I`=xY#&wYH+k%{_G2)^glZ!u*#n5OrQo;lJDwJs0n-pgiOUE4A`exw0+ z3G}(GW97Myv)7ArR<-aVZ%-&oQs8>b^T`#rR4`S{gvMK=i|sQ;uxvXQu(tN$nop$A zd*@8Kldd9M!YhB_Tpl#v{c0N&6-3j+dSN)(YXv?1Yvg*Vfd6gGe0&1>2@ry1eCAiU$7a4ALqRxrCVE&mm@WXKgpBpxZiM598uyzLybnN0gG0y}m zYy0q9{}8VBD2L9Oqge5g68@_%w0qSF5>^Yq*oMCs$Z2DV*#vkb!m)}Q_n@}p92qa# ziZ7PQvepleg)eLufR3So*l5Iy zHb2^;VQ4mditU3{0ZAZ#poR?S+=b7gmQ3w#cXlf%QAs z${;(8d}AqeR36PzvhGmvvmb?R&i`<=S`6u&zM5$26yVEYcZ@6ehgX9wv0bkW75=lK z`|>AqqxoIi3W)}+9QPAvc$TsPG7ThNI`@QZJ?XaMR}k!tMw(*Q%s{ zq5ELLoVmdDiKG~?^ z5!GgNICcrAKD!A=R}{jj{P1Sxk;=nIemMh(lxydPb z`J#=meEL1o_}Ge0(Qgn2-+f99Yc8VF+!JX0pEwSc>S1KM46 zI9r{J$IConz-$fY_GqtAWRfe0H*W&%6`xVxzK~XkzQVa~E?Dp)4)?s9LjK9u3xhNC zsYV(HJ!4H_MvF3c=Dsvo-7CUbJWHhSoDuhX^I@{Uo0t7(t1Rx}GLU&*rBVWSx{+&~^g&1K)`DzPv=f7KkO0t31$ z@YoK1Uo?SZ34#f5ykS2$8yyx_IvAnrU1eDLme0tm%!JiV0o39!gBdctSWq0vGgw6- zC1MfO2k~-8Z6WnN{EJ%ukzm7T7m!D%8p->ypFp4u9=FBP=gi^iacrjI5=?gU!58wO^iAkG zOs$y2I;4V0qh$hA8eV{DSt6|Rbnc?JSc(P?8 zoR>kW6HoyvV;ktnP!ZPr)RL{g`^M6HQ#>xxSYABs9fSAYxy2;SL1_8l5NzP3$Qybt zK&j;>P<@q8JEu9p$uV6hs-HxTF5iUX@;(yVvU{My=LgIeU&6`b01i~Uf~rmsbmP(L^k5>#qIFVdIR14W(C@syb=Vsd(o636;4&K590N= z;Oh2H;h9z5ba3lYxYK?S3bGy&?yfnm`MehuPV^Kz&q_sG=ZP#Y)SQm)lciR5qOinp zB-686D!e~&9^Bgc7)37epRap(O<&?0A}w6Sejf{FS|bNQ%R?5oDf9?7EX)vG`Y#J( zi=;7JHVW%`KAqU2awvJ5O`XbL;rz+nM9Wv5)t{<^s%8Vcyi|=jSU2H-xGYzC@F4!Z z{0^4Xx)n=|JqHt`(@0&^75Elh2O>PjX0zLEGB48)`jho=X&T>q+Rd|A+8&esHX{zM z{URfFJE89UEPQTq4)bN60_N0#42b+OTOm+@8Dbw!%`e3s(QU!d4i%dwNf zr#R?HQ2p5=aNY6_rfUhv(3hv6G-)f2*<{3)RY;+I++}E)@)OK0bkOqXRpNXPh~L?t zf}cavX`1{lJdwW~=Gi^8Dm^p|yJGm?-MEPa+1-I`W>k@gq;tZx{ zN1?_mZGqBJ0M$+LaQpch78EUlZ?6@Ck=7Zm{EHFyO<#svn&M79Wi^?sj0`|p1Ra%L z2tP7R@x(_hEZpygX|7g+HSf!C_Zd&nIJDg}iTb~eWn))paFGS}T-t|U=xJXFX1&pPCTjtV6KK<0D*~DQmmsvL zup`kc?a_AYF5LIwD%>~)XhPPrqu*z8f+!7cU-%&~X*iBkyMb1=zk`iM2RT*CSs=6N zFQg0rx8GC_sIhn~c^Skn@ zA>q%wJNRr<7*>Z>(@*IS$hfkdu-ZEX8Ve6Fm-X}6Ytv@*c{3Waw#cx5w@PTr|0p`| zaIC*Kj$37hlCnyuh_sCGocl!4F#1X*EiKxEmNZFG87WalB4k9QWIX3S3ZaZBEh!-h zZB4D;=l4hdxvs9OJkL4jzTfZHYk&g=sM+#G*H?*;%o{^**WH1B>nozAvL<}YQ=xxl zbd%|5i=pzNrb?lmKU;i5k09S&FeFiob;gikv7<| zJr@n5Ity4-8P z2sMbQ9*t7dchi#EXK>cnj<^3i3ERShSi!KdJhb%*WM2M{PZAxbWjW)hZr2kC5yYHk zub;xBpYd$UI)V3x8{yL7<1DH=3GmxV6elS11(pwCa`YH35xf&a7knw6-S&$-KR`%& zrX68XXRzF)7O%8+i?;l{L=wzgq22KWI{en+E>-HpX6PfFE{Fne+V#L7|6kBFwuL^4 z9!nQ18KJq79$ojk1QxY#7TKj)P{aCA2zwk0Ll0%b3!&?Bc+g;4-zUp|8r6~~%ZKw9 z)8%;c*DAP@xs)fl1X0)JZ5X;)M8b}k(W23>Ve}O#x+nfETpja5)Va-^?g>5s526-e zl1V;M9J?7V8{V_oIIj}QZ%5-8{qwLnP@DbdvCSc=A&TOpWN^+be zaLO75w9z;P-8vi84t2mGK@;(Vu(R7Rdl^?Sd%~8CoQ}!6i(unr3EDH* z34&L36c6~ID*mmw8?`+%VBvqdJWI%FnknvwjlF%iSIB}{ZHtDMFLn5~Q{Wyu)Z_M$ zDO^!CguUws5$#mVgK?6pvH9mGkeNFh=2VA?&M!I!Wu0NV^@Xe?y4APRIKc-zHOPHCME zsS=07*S|*lQ)TFprO zo4OXXUY;Tu#gTAG!(O~#PfP9=`tyZ2KV6NS`0s;F=$WZv$)MRR>7*YF z5GRtgVtqDm#wm7YM?CZm{SRPNHw^nYhz{JONN@d%M3W;m=w5e$^lBQ>mbL%!%`^@| z&iu6T7rJN)ost-CvXz)5yu}Tp6PWDH4ESJNg72*@;p3-`sD1Pie%BSa14;5={r?@G zY6&I_UX-sVd%#8b_X#z%gNOQeS+Kn|jdGXgKcf4w;A#Z9xL1>Bo66&~>r0^Y&oz{) z6_^4hd5CfUpvQ3;|CID$fyxr5_`{OPxm?D3qfDr?-%z^7;g~Y0Co$m(=)AJYhSeNq4R(q&-*pq#HBDf(CxXPYpWla=Ii)zP zCK6ZL3}dB-yRmbYGWZ`hV5N3L;mnPCvMjX`rdKiCd|?oGnYRt~+m4efTkPoJi`95H zJr5=cIl1sT&8WHYD0$L(8c1Zvo9`ECy>SQLj_D*Z!_L67n=i?OFiGB`=Z%*8 zN7Jr%4_VgdE%c_{PF~wxgnJvZL3Pd*ydV6S%?Qz;Zgr=a0D}NExyfAK-xzyZhQUTf zd(2czC!Q}>6ZJ>h@L`*Y$mzfq$d7vkNrhWL^TjS`sCR=Y>JwRbN*Jzj9|gOvEAR}@ ztxyqk3oqRYVY5$3F)QK!VNqW$*lBiQ`n*VD{_`huUnEPhNeK?=KNN5ISP4?sHZWb; z8=$9q9LFv8CRZjchf@W4aB3gGrMUvvAxeoaU#kJiJ3pY#;&)`}?~|~#L5KQX(d33H z(d4|ZD=3GxW5zrSv^?rBl6SuiRfetTw_rMcTOhnO?(9GsugT+v3p4pb2mBIw5%hcS z;r`i5T+VVm{&}{N7Pur5m&E<_R^l+KoiiHz+N9VC@gn%E*#l=JETPKF5EC`?AkW(p zpZ_Z-xvw|E(}icCep5Ka2#$cf(GS7+`(Ye&CWd)jNPyMi4pGh5eztLZA?gi&2uA&h zBvDfhJ-=Cl{d|9xbWM>fZ_Z}^|5ZA=eQtulwRfOZCkB#q26E5Bv+!#7V7^}R9Nv%<&by9e z{I@6*6ID**?XsD0=cWw(8mJ9C#)ve;~=ZEq}t!6UF`zh2_%>~Ce3D|W? z$OjciW9Il81Rlur%4Tty+BncTQOv3ISNa9caZciE1~Sl2R7x^LHZ(p zF6Nq~ir?>FPB%D+F?o0~^z51h4;)8vYdHnxd|eJcNM8_p{ZQaj7tX_#x6`ohK>>cH zwy@#TmXfe(T0~Fi8`Te$#+06P4452^?r|T*b>cxdafBt0PS}ax$zg8hcmW>Hk6?dTgu|N1K#WuT1U-KK+-3Y_nA120o_~G;sV04Fl#scobYHO(6%l#?t58cr{M?UsX63m?`kZSFC(nK3=a78!cKwx zWzt&!ZXQFhI81?;?LA0h%s}+LYb5f=ONAsUblIGtb*!!OvtjQF^u`MgnY)%cR z>LsDa*(S0(bTS?La}4YhII>G#%8Q~KAERu69X(bykdpBC?AfC4Y{s%wW@Ku?BU1F} zi4EhZgIg|}w)h%GPyPi#TT>t_C7dNZyg{1;8NB7hfw1EY;SLvtonT5SC={20j-nE6 zdToeSD`fffloL4f{&!Rh9K%~5OoSsBd&r%fQ?y>=w7{9sn)ZpPVnesNI0S zEgmv{bu^?eI0ScYRSO&jC+=QqPjcO+^9-|K_z*k}{u^TkQdaZ1&VxrHzn%{CoB9U) zWNwH*ju_652|4>I9T(6w)fC+isG|K7dy!V;Q5(meVjPh+(b_=#96ZNw6&!6p#Kx{} zaHh2yay!mK{Ho(1;rjts?%oSm4iXw_ehy8wmk^D(R#5xw2ALett1w4b)2Bz($w zaA+20H-WcAr!q6d#n-0sf-ZZWUvvuAK01Xf*9OwTewxJWj3ay6UPY?1Bw)nX$;85c z2=x-OMUw@8V1mPOcrZ?ln%`VPe9xo;SlJzCvMef-?6Y?T ztpyACp>!FVwjda@SIwZs`#P~(Hsat11>jU#irZiWzAWrvYnO6N^Zrc^mTJ=C5e2RK2fICj@zCahTxZf+ z^nIEDU&{%@h7Z6?gL*+DIKMS`wIA-G*?narFXkMD%@a=*lp(<(%Z+uks~3ALNw{0t?}dte+p#yVCs;q z#ib0@aZURjmUwB9|o37)E$XQaVQ4(nE*6+gSxT5|kK5azsji`nxY;2UE- zp4xmI9O}lxig#)7bf7koKieQ4Jnjo>Y*|OcC&lAFvB3GR%j6EiIrnGtGPb@{kDHA! z;3_K8{q9Qz{R0g9)MZn#~qbQ08a-R8}8TP&g zOOG+cwBBD3wa2iZcQ%rN%$rx+*4WIpybF$^i`Z~21)#(gzw{izZ$qZw>$6($S@SR1 z={}vGcaFrS>M>$*$4eUlqz_+sEV}M@VkRnLCU@`?j1>prI^}xi;raz~YTMDPcp=LQ zyTUF8=;If4AMn_3PF+)kO!WjIU)g*ej|z^c2U`;``KlJ*akQ5ikD7&Cb^}@F^bGcG zG6SnH9Z_Z8E31WWC(!NQ|GQr)nCasU%VnlRTYnf_w^XO<3G=9&Vla;S=1#kcN3$%y za#FGH9&Ag~qXTSGaM;1su=9|?3;|sJl5f=tnW77C3Cr) zQN7JAA+sNz!C6JxIt;Rt;j-(j!CC&cc+A!rJa&nU;Px^>$&U#*>~1f69vT1-I%N2` z-DR*#ZzTl06nOkC1H_+NyWvPx0dW&@6J<^W0yc!fJ+~8VnJV!_f~wHQodSis$U+w%Spv)!GBOuIR|8RDWQU~AWk=sgDkNl zcKcg#g#kO@#=H!?bRrDaXbC=!w`Sn0X3skx>fw#4Q}_h!7Z~@!1jbJIfLr%i^W>K2 zxIxrN3df|e50R_+S<{8^`c}J;3$U_b^)ot%eWJvY!c zb~wKHt0)>VXaFyt?+D+;@7Zt1!B{6_L|6Zw!DV|DP`WQ468k1Iuhp#}^G%O0op^(& zT&;kHA@W?|XEvA*xI-RYJ%}Gu*5bh>>4KHJfDCYwrHi+%q$`Fs5$ttGnfErxZiYho zCLiKtm%_TvJ`i$~WBDah9nqbeK}1W<1WJyoaif1GRMDdq)_oDQHlbl}80q;iNBA8PH3dw2c76OwD1R5^1GsMN}oq!^xL@y<73 z?(s>~sJk5X;zm*55CyK%pvpDZ{f3H9Suj8+8GbxS#A25&sEDe<$EK9}jmXCHIln|o zN@ngtovL!77sqgz8|_PUX!0A>Ukkadz{U<^kqxBF82ve z&DsjfCJQ~Ml!3H))?pmDbSV_be`9xO6wEUi$v>t0G5r_%#9_rIu9*9Tbi6NtjeI_A zoO(_aw_^hio3|O5C&IbJm!v!153@?ZIbfAobBo|ht82Qpm$Q2IZ zn>)K@q=jT_IC@NCj=`Eim$uKgyb@@v6{zLIwr!_~)*;q+N;MdHBla zYF|IBel2)F>=cR1kK@?&z5t9Rl`#8>wkR<37D|qM0Sg7+&s3{{RA9G}1A3A0y7?+T zySfZk&WmU2OLN($X{uCxcOYNnm&NLg+HLYrWZ;jILBjp&F%DBaff0%-5Ycg-WjT$8 z-06oQVcK$XXqGRu;UxHcVh$<(SX6SO;3WLsJ_Z$bWa7B@zQPPfi5%S-&d>FC6Rq}K zM!(8HfiVAX^QmI}Yk@zru)>yK*YM4B6D}MZn6D$p!`2Vvw)g)C^V&Kv&8~s^ue0F# z%?u3xA^hC7I9B&rfyZbm&^aU=E{00-`D<@-?~^L5N#qY>XUS2A<3~V$sXClEdyB>W z@I<+M3v88WCbP6W*j=qIJgcW93cdFU+p!79Bjm zo{h@af1uHd2~2BCHF1iI=Jo;y=D3j<64NF5z$kY%H(Ka8h}yt@*aB4hkjPeg?LeQ5 zc=oeDgwJ>o!>ZP#*eprein$A=Y_6)wV#_^weA#I%^u3+vedDt*ZIV2k>AJ-(%IATH z%?Ok#dMtd$FU3VaDXuHthHXQtiS>PXnz%-lxfDKtwgau=f2CM?#oBF&PjYgR)dhye}Op;#ym#K3jF_$fwPx}@D*hyOuOX__QZ#>wAzKV z$Rw6o%gqPNN48MXxPUYZ4DXZOEkw6fniW@@g9O_G``YxlAoC>QQ{IVtA1uO}Pm8g4 zan{stW2#u+s(;wfKi!6CP2EMm`E(d)b2c&^+ZPA&9>;Rzzh-17z&e#&E3D?^BLqzavM z@+;I1euvLK?PF;MeQ;#zSKP{ma;9r0S#7JCK$HUbo8yVsQ97 zBkg&_av#W*lj9oer@~^ZTyij`3e-v~F;L+0EVy-4;3R*?{Ol63vaB?&&>Tb8m@0y& zz=!-+9SuPZ??one6k(c4IgT8w%ifG!jHBI^=%2k3&>MJ_(6CbQm)wC0p_yXc=-VYm zmp!5Am*ACx7CCb8Jv{SN#|u3GCP#&waw0G;H+6`pf_CTzUc{$umw{S2H57Co|3amTf4Ke9HB2G_P+wrk?>ycPaf9aY$iWKyoYidlG5HikWZ#3&+y61| zytyD_qX2I=$+7j0d9Yh82qFaE=)43Ocy%lvkLCZuksa4iRW1`-15(I@v~ggyI*O1d z_eF1(cfqG)z&-62chUb_>*1 zj)IEq4P1UU0r#x^L)7Uf$nUKsONH)A#?EY#-oKFRhpF+JX;%fV%5`iT+6{}>8o}*O z!Bc11MmhtFz8Q1+(Y3q-ta_d=>+REvj+Da&2>_}Vj}qFwZN5c(ln@WG117A zLB64pn1xl~@rGV(*SL+U(E?j^%LJIY>KbG#SE13VHs)TW%#}X0!5`C97_PAt4t<=+ zygvlsfVpSTc}x^JlBUMHUkv76vvl}iVfKA0Mir*d-v;Wf@9=h?C;7%^@oFh$2)6Jd ziCJq&yJY~loDJvgJC!ik+<@OYIhvpGPAAu`g$&0y9c~fu7k3;w#|BPU2d)^vy@$MG z5y6Zd9y=D=m4%M8kuJ@f)`E5!$1$>d5+&Mike)h4zJ555(ftpQ`h4?B^g5)(!AZV>|@=T!jDpPmttERT%y}MeL>KMoMh@NQTA$>X$8z<*FV6 zW7L%u&YR9jmnA(J+klEA524J?E8-tR4zaSLa#DJ(02{_FwRsgd7qj{*PG2SBht-*-^=DVw*$124RkdyU>@;WAv}khf~@EMZ!J8ee^2=)wbBE zq(B#bevP`5HlWHmTO9W_43cI|6n%>8EUC25B#O41#7@=+AbapKoGrLNhL=~7n7gHz zuO&lM_D>=yc9EcYOpQvVRg0g@62r2{V>ox78qain2*+$3F@4o^Ozpb`qU#UvOp(wj z6mrx(Qx37ErK#l0>SyHj2yLDwet}ySdEswizdSkPmU#DI1aFAO>_w({IKP|qww@vb zyX9Dan=x5XWK7*`U$M|)C)}X!$1e&!)BAM?dE#(e+T2h|EO!NAUs?)QnyY_ zO?yb)m&Za~BjCm?B}~)UK+0;8!L!?g2OECE172>J@gqgJqg2_PA8Usm`GK&ZIs(`I z8pPEviqS!CFipk^T(Tiae85|8HBH_+4cU&18v!D(}Rv5$k z@LzCoa0yxN@Cx@@gfi(of2>m!cG`h5?Cg9cDlhm-J4J)|yZC{)vrQ7@2aTg)ufmA# zfu|&*Q-gm0Qp0j?r?Ij3v&cHS6N~S@fD}~=&n|aQ?<@4Awo9 zq0_3Bcp*w-X7y=O?KzCCdJ>Gyz4;JlbOsjcr=zIW41$xV!5`5|*j0HJ|I~YMr(J)^ zmV*9dIY z;Tj=4>3A2r5U7M-^3q}HiM!fAQDUXWpEgJH$FVMh67fg#g*;8& z5+3fh1}7^a-|*=tl$#p!jk{dv!l$R1oOldQaNSF{jQuNQQ_blJ&koq_Y{#$kW|ABq zEx2a72bQ~p!bd7g<(i^d?8FFIcPdig?(K&DDc5jbLkMX+ah1sx45WTnOWFL_Dl{)S zAN%L(qJwiK#ysw4eOGiL$9bzwo9AF^6q^at@|VN)Bei1H(8)Y)>JUEXc@}m{4dHnb zCr~mVyd0tY|IdPtwE90jccNr67$rq&pnCvV=4X&SNV@IA5-}>8Tb8M?Om0o!TpY8~U zaI3ZO{e=>bm{EcUs?O3oib?QcYXlf>`+?OFarEZK7V_gsKYnRYr|bt~ZKm3=D#?`= z3GUbPHjNOYtcvT69l$!^7}{?SfVvhLYCU@x7>PF#hcm;-qM}~NNSMiTq}_O#lqL>) z97j}N)Z(?VYtebPegb|0}#~8>4EuX=!Y97YWGiSl!=~no+U0`TNnc>YcbuN2H6-H2bCin4b z5sRwC!CKmw=ISB(v#bK>q;a^|>8apQ{Z0N0@!;W02LgM22Y)MPK=JD)lukU$0uETQ zQq9o}$5i5y;~An57acxiKSGp+kUcK9q5Vvfd&?Pu=I5nwI7JCNL-t_1w-?Vi{fk}v zb`>C49y0<9n3mK`@Vje7VLd{Z`+itqWyrQK-^0wCw!*d%SFlbc3LBz6Al@B;xdmdl z-1ma5BPqZx^unqZ6a|d)gzmx`m~dK*OWfPU>tyfYzVH8ue$1GO_uNv6#F1ird@>4B zTxDt2Z)f!D5u6ncpYgA-JB?n6q5|g{Y)>cHGvT;!21lTtaK#M1gXI=zh{M|PN_#m88iQ(iH!(n^ZK>(gLWUkE=Z*ns0= zfe-s;JPi%Jk5j&$6irx`0P-W+(ZkUPm#$m_>naP0_FBR3Ywk$0wC6zICUej*=mi69 z3wr6+Nm%e^vS`N6Y9bRB0&BLFfn&u*99=V>DmVDzmiAFZ@<%Z54>9gQK zLI*BrxQbu=uR^hv7X6#nhgn6%D`KNG3n%8D<})f2z|lb&CDzu!hMoW60a^rK_ZvdXyD+wN(L%gz zmMu0Z?}UtLTd{mw692Gf4=c+oWOx21!dA^pa?IR|kF6ggyg{l^^=<%`$|w`NE2F8; z%<**Uwld~bn2lS7j`G(tg>ZUIF2ptuqc{Gj;n5SuaPB~#NU6h+MO`k%=?NpaPLDnw z=m3qNJ`4-8<+oIlo^42Gy0YU?*vAT0elFbupl4^_$sNx9#9^ zM+^V9>yb-cN8m>HVz%O1I4pcI8AJVgMH^oaq+2J;a#`sXnyUx9=t6z}U4aQzC8YSI6pNp>3>%$(!Q)g3tQk8KKh)~s!;K+A7SR!A?~lUEg@;AK z_O)=~O%TK`gm@d5)-FCgK*3*fNVvh+c*VL%T?3NeVVt z$w7^*&`~=Sg#(7JqV0E*@#0_x)rB|6dAQD;-WG}8{1s-b0`o>AzZAw!`~rt$s!>Me zK2zv=3OmZ)imvQFfJ0=53w_)g_`H&%Er(eNQv^=NS$OijAbJZ7+E%<<6J1 zTVdSFYPfwQktOdh$6oX6EKpV~N*tmM&^HVGp9r4NRkN}E#8}YT+l^<T)WOsdH$t<1UagON7q74S14#goXFi=rQv*FkW&# zzkXZ=Ud?+gewQb~k6%6jHQz$eUp0z_th+>>T5ZAE-I8ofb_2V=?l`k-9!W2-_oAM^ z$6(fRGgd7=LRNP>K+?Zu*wtkMie|=w!+8Q0Dulx5?kE^wV*syj_mX7o&G2!pK8+}i zg6W@!z{cep@MPc>?3gW$#}|hJv$%s(NBh$Shu-33sRk_lHebB)#~oPq)q$~X1c!o!d%RpbD*4T#+JoA0XZSQyADc_oIUK^o6G>2UU;{*}%kU$DCt3f5 z692JhC~Z|4g>i3I5Z&qzFg4_jkbT?FxkVOeVG9nubQNb^X~)R9uOKv7=xde=4m>qa zI??tO`evQuCJ_VhFsl@LJ-MK$c@umNdT>w}fT<0FFXU?tj^DWe7i)`f=5-D;g8wiJ zp+6*3QpMKZQRa=(8W23dj)pv2f=#phu(tIdu;rG#-MAdm54{1Mwn~_tt!(3{Py_wT zJlMJHdI*&Egrv?HgrAh>I)_j_zE4t@} zp`}kBj+iV-v;H)IQN9)E3SGg@{1@=mVLV%~suf~d6F@571)o@0;*NP)}EcEC4 z2s6P$ur_xF3=ryZ(j!`6V^=h0^;BZE-wRmqq7X(Of5-f8ejdNIHbZgI?jj;o?XX{)sft~y8y@OyhO7J|3Oi67@F2y z09iwOa>i^BRjkyci`T3Wb?quAyGHG%(|*-L`#?>yU1by!DBL)VUf{6`co|!o!+F7sayMq=Hq58J7)v!zDeR?C#1n+o(TMp zHG+qG6<7(~K{NMbcvUZg)xDYt^>r)Z^uz(&ZQek>^yn6p^hUh4s{&nQby2Jn1^UiX zTr}REhUiCve(QNiQhAFi_vVm;S7N{?ySC)p-9N14f)a06nk01Gy0Jxg8ePew_~9t1E}w8But(O+?aGAEiAhzeF(=6CXMJw7EsD*yPQ+fT7}Sn7VAb}Du=`gaE-#iT`CS|f9y-t2Hi4O$Zg}0M z&^HUbPWF*M1{IL(tV#@Lx$(dGcZDA29o+Cw3s#rKW3*<6ct@Ky6H7DFf6SW>Ut|L$ z=p^2`txXoc=>Z$jNcc9!3Je;z!`EA%#AjO*@y9~Sm3Qq1&CSwe(4-1f^S^|8Nw>*? z+VT8kQ!6fC6~{_j+}SYGqpZx~I~)(~VS|4JVxns}ZlBtY+Z(mWo5c0}?M*qhCT=lS zzL^i+GKcZueFTlmTk!ouSvo<;yu0l(2jlZMNcV~fc>0+=tMXili-g?4nT=Ycw_k;R zObKHR?Y~6v=LeE`brE29qYl0*C9^KsCT!iPPqHiKvy7J;>BYz1=yU1^8#gaqoLiX2 zBHs_D6YN4Dta%{hbp92;4nIhA-wXLFUkg0^z#MJ&C?LNO56Oz?E-zeI3p%~shT?1`#R#^J_4a_joxNs_6@xr@*o zRf$KPxAEA}BTZMk|0IL*6(IR;BeoUVvq2@xIg5J+(;qs+(pn9AY35y)ov(+)Hl9^J zIt=44goDnGTFBik5(UJD!^iqcoSAQo?dnJIe8g~3%$hJ_?c+$lNB<=z`>g<02pvlw z9hN4?TLi8#$GiS%EeP7Q2N!X)QDl*v<~&o{IY0qD*$vV`2$zuVYcHHju=2$`g( zMY#S<0c?6BunuD`zffR_m*@SY$YzC3%P^AOETJ} z4|QTAXrkRu3=UaEcg$J=FP1gpe5F)UXnG5B4*h0D14pB-u?$h`3x!anHEgNdGJa!h z0`Z%<7dpM?bH!Qq*y{9&?5nzgyB|cMP0>?SlTfESeC7~YqqRaldoM0KuS^#h6{4Y5 zB2oW7gg=`e3q1~LcyNzAt&}SVx6@g;tj8G+baN(QE=9i@C4lGR7s9+DhP%LPc4AX0 z*(~_sE#*qYUpCF5=j!K*U+-E4hd1SlCx=CXqsLiM;48n9moE3w+x(){4WX|r$=l$_ zf09-fESnjewc|eSnmDa~6QQyH@cVlq>z?ffJqHuvo75>BX&FF*3T4n^*JYwrIgQqp z3t9QC%dmgB3zUejz>Fj>(HkMJ(==Vgj8`lp`!ky0Zs$<)`)?@k3%`M%FD}L=>jq4w zoE05!U>B_>Vo!`NFPAxoouTi=M{bS;`3E0Fk7AX@m&SF2@U-BE@0rmUaWUqdJpz_W zEyQ2#H@a6#ke9EHp-aVOc^Jd})# zg$j#N;CQM_?Nv(*oJ?{U&dPHGq@x4BAFEB1&*8EL*1fyNFVkBMy9A!$5oQt zZ2nF*L8Ad&gc!oZRnj08+<{H~6NT^hN=#EG)c);AuoUJ%t*a07*NZa2I6D!?X(Zv} zEfJy!>l<*wY%McAtQ+4XlQg$FuvxVWM$T_Ww>et$w|5NL z{K*3_It}DrZ^97^SHYx!mu$+x0&(ElP4Id`GWip`2ZW>vMvF4Z>exYewMd;8ZM1?! zkGZ^Y`AF6jri?}r-*Kx*IFBn%gIQl4$yl)nDrF4BE9K{MuT%C^HN4Vh!i`dry+Iz* zb!Ot}*w5s_Ut4@~+ztQpzW@i52k?c>4?uPFJ80{Y1dH?U+1=Ya@wK5QwH%WJ!y@H~ z{Gij=ziA-u$;~I>@fTpj;uB=3OCYI|3nqE(Us#VJ;%Nn87aU~3cXzdbd+it=d$`di zdF=%#+n~i{epR5*jb+v5&5$y94(%AD#LJ6wu|w$JY$^!i8IQk~*43P%SY#=EneV0sxBH<>QNdkN!_gqQ_uPnhPk0Y|RtBTVha%Bw*&Oy!=ox=Hn?~GYElRfE8&T{j zd>-Q>gQ4ZYV1BM!o+sCxVV{3DVr=+#<`MLl{BAl3>!b|uZ_+F}d_*1;9+Tv%qn=^U zAbor><|}D^C3IWH7C^*~R*<&TrZ;P~*)=IdiP%I;wGhBNd!G_jn;&q7G{S#OAwFGOne8QOL_K?uL4}Lza5Dg9;!FC%BqKz{ZcYEO7c0 zV&Hig*4^rZO8CA6APF0Twjgq#rM_qfF{YzSua& zMZ9|356G6Vf+0c`>1bhY_!-rf ze8YQx#)8r!Q(A=_4c{F`i*vL2s6Z*m$+v*-qmJ;pxUX>Q@gEXVwn2RT&VKrM$^lH-b z93VEsck?GkGSEBk8q*!5gB$l9=L$N1Nk+v^c=02F4gP%uv)Uy2u%-EQa;hv`vmC`| z-#Sh@21v5?TKmvn=xQ$ed=oZEsnVX*P*KkKP~N#*hF^`H0@9WL#dARh?3c&gpACrloTyxRWvk(C{o(@xlW6Q5J{z^koiF}BCFr~`}-4m z^nRTCoa=hMo=*|bQ}tucc9YnZLrwVD;wJ9dlK}_gB)Grhb=jmNzFcESKD4dK#rNHf zG&0T$)|iK*ci$TlBv#B&J&eY0N)_HQ%7W~u7|ggk8^qm8HSa`6cM&bYOqJ2&?Iy%{)_6_!~u9ghDl+W!w^}AaZO>1A4y-;mjphLFA51BGvc?D=k-W%q<*C zUM=JjI`yIGxH>z3!WrDFuTuk_abXqij;q>2F<^xOcW&iKTFXh}=~h!tW3dL?`-|rk zM~-I_(Jjd*wt|ebXW!ch8JrKP4 z8?IPX3qJW{VArOF?24}~&XCc?l_ym&yLB>`+oZ@HEl7m%+Y^~*@-Un{b_2|JreH4{ zpv{Lrz{9zBdH2^}D7Nm!6|E=P75zkNV^#~3ZKuG1h$5a3cBJ{s-01y>@dQ5#xakKh zxuyOZ%;@X$^((!-^o# zZ-lq2E8xM`c*t*<&S@MqXH{hnFfk?w#Me&cK{Y3#(X9^G-t?fK0>HS z{h3bBxCMSOM>sO(3ivfXBMREzFt+9#`7v!i_kMl|$?YhIYh!Y$Uga-Z8<+}5f&&JLGNlQ8j^64Bt~1I#wp&F)pG;R zkDrDzD*}j|?=;R=cowe6+#?+}^FXTDf$s>PMb}^7c&|_bf4?50$KE169o$T8RFp{E zKP#?Jd^OW_oDFh#k(iV7a6DCBu%IZ3EPbPkO`7lE&gW{BH6KlE3!_QzVO6eS%`Y;u zON{gQ&T#&)DYH>BXAWQ9L-konnC5GU+w7m054yetN29TL=&81_^h_Bf8l8m0c3s4= z`8pmC$ixA=SMWgTu)ybHIT@V!ka+G=XMw9VxTLrGkX`y-;8$`AZS7p)+^hy{jN46B z$I2o6zD^#0xXyF`|Do0#1+GTNgWg*vib|@EVE^<8WEB?U`!$<5leLried|4vFiC-{ z)Jwsx5Aq;3?>JYXo&u8{wF!6l3!NztWp3@_bnm2AlHr&v+`s)cSe2}$arabljzc?E zhHS(uv-H`Ym2aV>I!fTNWIK!U-woXxW6(}tk_EKn!;2?>V7i|u>C+m=c{n{GRxA=4 zLU*$!Jx7?VYY(rrk6B03)nx5fc`P3Bl2n&0wyJe2#`X{6Kq|8wYWeKU66XNmi%%f1 zXvErccOYhL0b2cc26j}qRUA#vz~Q>RBz2EGV6#c8-MaETFu{u=?8h|j>uS?;1&!Le`7FNXB4hJG7Ojc#aQEX zH7;&kE}iTe!rEJ-fIL)XnwD9RHLaQYnZ74q93}8zTr;Lg{zsMLr$f`_WR#HK4SM2% z7;T}?YBeWuVMZ#fDgGi(ZVrJTFP`I2Z8WZUc>^7vTXE}bDXb+VDFF!&T_p-bDM`~)`Da3svr*RypbIGaS9fP>!89XMcy4Y3zoY};n`=lG~~Yw z@RV-AMf`rDH;IuN-|^g!eZ_Rr;}SR`I7>dIiephoE)D2Q1}#fTNI4ZortGQ_HXS#^ zvz0tkVtOLfkIlf0f-us(v=c*4i*b9;mE$sY3csAYO%jUL@yfz<{3hdpciR#$m-&NW zmmf4DHWEB-M&V7n<@n^qXi!%=0-8^b z!393&vDUf^roZdMBbzP~o9+Je#dC3R9i2)4iBw^u+8Ah=l!F~jq4+ZB6J{^05#D5N z6>nFz&{eBtx$*fD@Gx15n{xOE7CV%Z2jAaVJI&YvJs0{xsv-^Fh=d9wJ;2R zS_I!ub&%`Bq3D3}^rl-Swmg_7T=eb-R(Z5RQGE&u@3)ak+x2X2rYPv2`Dyk0js@Dv zEMpu7_3Rrp@cBpr>;vI_xd^Qv z{TLTLOvU;=i-b-%6~Y>n*%+N%DE&_Gtb+z@$t%R^@(Z{fBHei9Tt6sG{{+U9iSS3$ zdeYBphaYASVZ`YhRIA&7=)8+0vTNo;32`9@WAjMkJ{`fPeJA+$U@Cp<>4T?}y`Uv1 zmFIL^hfPb*@LrGOs9b(rXnB7+yZg;q`1S2^?3x(`J3<~~`PpjR7);pnce+e)y^f;i zO98?Ayw|XV%((XnMip+MlPef}T<8KhseP!h#u=A~mw}4Z0w$c|3{DC+NWyUePJI#r zQ~P>ptp(qb{kIa1is-P9y$djT%W@E%#P7>J{6JMpmMIvYKxySg5UCQu@09E5$nM7^ zCRCT6mUxK2T#NBh+$ZalSA0fBb|&{~L<)}B)`3#P0_NQ52Sb~I`z-Pdoz8Yph32&o zow**X-j8R?E~G=?j4s?`k%Hfn9N<11#WZ=}QvefooV-AaIQfQgF*f zHyY&c!Y&%VAl05pg7eXPXvxfU+CAJv-2%rDSsC7`r#?$yydV|5h4rMbvKwFC`yzb2 z!;Gaj2n8t>5AlhT2$q|zr*`fEczN{#@ahf*hdo0$AK!FmO5rpaoaV*0aGN+y*UCM$xOVnHr85f zNYetfJ-*lH<9v*)q&mD<<1qHinsA|u9Ie_1?;RLWe@39+YRO&sc@Jyj9B@P%FW8B+?OKh~zqAiZ7{m@~)-G-QNE`>L=#?lx?Bgh<_ zj4R$&3%#3)uwQZ#ZaW6}fE|Kx<17^SuZ0+HJ@y32vRj7_AkF^*@6X&5C||Ncg~`d* zE*CZ6RIf7Uvsx9q-j8Lo4RyHk(i)UopaSOZKoa@6UYp`ZQ0~{pFMWPsNdQ)9IFcd;K<*G|FL|bdyY09`zyo6+HS(c#1y#E9}jHdN7%!&z*HCXqrKKK8Z^}! z{e2bLT31TX7Y>2E)os`{6wmr}%vrU|CyeU<0LMyG@lxGLuJU>X$QBvFnA%&=6_-i< z(zD@$S{-q@CW}46v*E?F3n)E;XAa2T!5jJect>p~x(4n**GB`O_+lcMR>liGi~ke; zeadq~N6y2SD`&#gQ+M&~;8MI1m&zOm!%@`k2pODLLAt{AO6Vr5Xd<4uZ>Hf4D6zfmZyUrMoxHS)lhD7bgKF$hBmeEI#5SpD+PQ2CnWIvV{c?FIpZ^j2`MLk4(9!JJ_a~_A zeF`m2a&gI`d-T@PESNWH1Xmk$m@br<2?igG1dTFRfvz%V$M-D5r1Cy8Wr7lyyHkxy zzTbrfMl-llaaCx)eNS*Zeln|Elml+>Msj8(9-{vy!J28eNxd)?`+OzYu9Jbn4Tsi) zZ}eZNyfKP<@Xx1w#jzXsVa+ZW?kL3(Q8}c}kk8MQ+$FQDrKs+tL^OY#gth6J*z-@6 zX=vX;^S1A>wQ3|bEAbnX(}pZz{u%VQH^JV~+psfQ0Z#A!0eP+?xO*deG4h5hxubWN z#(!PJ?)cc!rouzqvd&PlSfvd<{gq+;Oq(;%iJ*I*@!g5m`$T2A3bQbNjDCIRp}Xli zbmzt3+^=$s`po4{Oe&zE4jSBtD2CEw$7A@Gsn|ueF^%s7#uzoAflf2uZ&2q>)$zZV z+uKR6bQQ5VsE@M4?_pGBzu?y|-XVEXoyqPV&8EnfK+D>Z+&0TrVmvmIz{GEYKIK0G zym}j6iARC`<0zJWs~ui^ZuI(^`yV6CRM7xHsgu?xq{xb$0m|Hn#~J*hX~#;;k) zJB}6L+3LG==l;25w96`J{2B+7&dYE=oX=usURpppV@JMbjxC^WtmD#eu2%7y+3>)fsn7fgK@=GdUmTK^KhR97Zii27tj8; z8{qx9AJo7`ZZ)_6&pa4f$8#TS(y+s-1Giv5E{ZcRsv{c$)-^9%Z|Ng>6bRj8Te1rTnOrwQAaau4qPBgO6c{Jb|Gh6*F$>Fijj zGa9rWba*U`m~tK+9QFxtzdU@E`-Qc}t6=0`AN=gKp6h-gfokgscn5BSp*45lon0p$ zU49&QL~^k0RH{HXTah)8vCOgPDo*%$8jVJXbD3(RIgR@&tj{3{${wWPt1}^(c`pH$ zNo(_6A0w((t;MSImsKH0=QsH+ zCCj@OI>=bfr_`+53XFm-p#FAis_gNHM17N|-tk*t^d582x%(f+RK?+icUy>}^h8`_ zVg()}{F%4NW-|QFmS=f>C!hb=2}P=&z~eMMCby*uyyjL3LL#?vC3e0Tadr!YY3^lF z##iCl9KGpnLpG1Gr!U;2NZf+6nDOwlFzY()2O%(X@e2*JF#N??Ym(sovJiGkh!HB7JXeom?vTfwRjb3QxJ74cN zgy5|(H&CC+_crZy*@!k*<8&3q{5O79q3sy z3r3bGa(d3AxRw?_*f?$tvrJLtI)7J^h6Z0ODk`BzlBpnDwGD2a=ms?fJDkP&;iQOk z`kFtJVrN&O-Pr%|`(jJtDm(@LX-BA}dn{g%T}c{D85p!XFbQWR@?d2+nNYU~C-`;q z|F6?9LNW%lAMi?WC~G~lkXy7Tht}Sc<_rto z2s- zsCai0W<7I6z3MOU)y#@Mxs{GPO%6c)1bwEy>JL5ZxdkG2UZ9r>rI-ovAR8~=5Xvo9 zXDeFnz?8s+T!U-|E%I$8-wS=<(zQJNM=a6s_b+nERt^^!bzzRrUOKUj-Hi>?fYFmGuky zTDIXXIt@lg$DylwIGJy=5$P>eX4)x=WiyL0Xn`18>Scn9rJC^jp({Z4`%+u`e4?6m zi#Vt(Ck~&-ajlu+(0i^5dq1n;5_1#&E;z0jSbG__vPFEqU*D9obzg`gUgjYD=8cLo&R$!+}47miA z7qBW?OrUb;5-KQ3v5}ibbBAuZ5!yFgI>wFE?S$7xTs7K<>=hGlDB#tgzmx6<@6tL!l z4LYgI!@no(=v7gMZ|@cnqF74AC4|<#UCH!hlo?FxZ^c`7)3^Z1V_cK12DkW{2sfd+ z82uWGaq+BN5J|uAznKwt&TlK`tTcpO(suB$X+Fq#9Hn}(yKvj(DlAshLA@scVf>-B zF{y|&zp!Po`y^TGp)F)-b1t2APoKS?^cRx{ACP07x;Zf8kUIIK?~Si=jtgYXdr14LH6*BHE5@b!!PjM5 zpw77zkMjA6+&$IMJJ*ngI>*4r$`W{Ke25)a8OaP{@8RkmfEf>G(yb+qXj(2qjl>cw zRC#v!qxEgnX@3uBj+}@x6UUKv?`!D%N!GCHQ2@{A_F+C3X5!ELWf0Nx7wpS-KxX+x z{OqG4*!?sW&pNHg$KvEeAPW9v9N zqdSVttdwMtKKD`UQn4U^r6CckeMln<-$PCa5ywn=$^o3`*uW*fC!i&N9Bn2$aic|A(4&1S z3*7ubm^^zIOO|XUS?i18=Pi5gvULT?in$1X79_&r{TBG+XAMet88AJQT9i)HXNHpJ z$X|Xw;l4W#n(qzpXX|b}YP%H;R$4IEz)oB-@&`U$pw6OyeHHxo^*ypLb&xjiFBX|H ze4M+S`SXm<%PtLY~tut2r6{6F_# zsQbzHrVo2#$Faxouu&EL8>&IJ#|Q2RCAhPz-w?kiPT&w^kCFFw!-W7{@Y*?rO`yhX zoJetkJTlT(gM3jU(+(=}idtjtoMK0*oG1J){nTY{^Tif|FX zn;=^waeM1KkV}unYpOr+%djT%m{W+K$8CVx-Jn+db?6nb=@aDw?PBqSNC9rkR-tKq{Se~}^o{E$*mLr4h0~D?lDT~a zxULn$9a*Yu-zsGYDD{DDz5Fh6gDAHuQ-(FQsIcq%X3^@@@$^itJI=gy9JZdEMjKy` zfbw@?I7wp?Cv7hP(MB~0o}o&6YDICVYb4u0B^HEk7jg5=@ytfuo+dXM!t+iyLF=Oe zBJ(~HCtS?H4VseZbAk7B@jHkUH6_+zYu(}Wx>4Miy)uHcIybmJ3m=|i^_R#G7*v$c z^2W`XJkRJ(4O!$(aEWj}uI%Fd+Y`N^^_evbaULWe`tzW@U6#qro(W?WPGSs5vgn>* zjJpnGuA91`dGrNDn|Z?2Cj+o5=q??y|4CjBUBHinaR3+NgrUxx;f{zW6Se#e>=1!x zyGL?UW?!)mlbVNi0%hdH_dwN*%hcOmlXLAVAn~bRiCe-ou${AuN*t=EwU;hKr|4nQ zpz0;O{{gUXt35a4@S*fA_xV7vZ2!>cnMl1P3QF6L2>icy`= zbS@R#2It`qBPF(HVF%cR=fm$+tMJ>CBxpF91-_v#NI_H>zMVS{jw?2UOZ-iUwn&6= zZJThcxGdf?pAHcQ6Y$iAAwD<$45C$+b1QCNgYLmyD2!#iQ$SFmZ$6bY2+c68-I7b6 z8-a)T&cdsxTX17c40(Tf2h*Kl$68)7!9OQ|n)tCZ;=$k>ov4d#5L4+p!3uX^ftkG)8G2|kpAzk@Dx;)|> z_9vSQBTSP}Vb^J59%xPnQjNJSPRW9;KR(e1A+uRwe*|t_)_buZH8#=_BG zh)#V^J}9ce3eS@mkSN2(MK9-4pNX?mN(roM#Rgh6)`3lXB!R2@`!VP}-|>!W#3S3| z@Mee*b2nz=%-Bg(`%^J$I^^THTc&t{stFrEMC0qa-x##D6D*(QkTbF)$i}0K&|SQw ztn`)=Olh`bPOJi(R;@toAa|&=FGIoa5OV!%L|Mwuc9P$eCkP2u2F3ehnNPk2E_=zZ z$nUMkl1Jgfii+_hy|Wy~y2PT`9|_1lI1R7W{73E<1!DcW#~>=F19wc$pAxzf+X7n7! zZ<~1^O4%%SPWmct<#(l{Me}gB)zK zS2<&kdwuz@9m8aj51%C}5U|G{_Wa#Ijro6U6B-yKz^(gU!sbqYaBPaFYi>S;n4A5$ zeoHz=b#;=WJ98kiAsM$g7GPwJJWP^Qz#rmCWK+_8Vm|98F1uMv2W@Pz$7?BPCtC>S zD(`8uR67*;i4*!jQ!R{snjoiR`71@AkkS$dh={d*42-aQXXWv%hp z1QYV4M~YcCT_-VB_FQn>d3bn0pE=LFEO30J&AmQQB~*Vc$E}~P$Z3RU5hI&SpfXZq zMOPA$Unj;^)l0F+8E4UFPZ2yCy@3l{HwLcHxB}643LxrQD6T#Dm(+Rxg=}wCCNbwR zW;fN5f3{EXclm43u1h9!yv;}*?L~XPD&qE5hr2F}!eg^;kj=TFP%IfvTwOksi#0s| zUfqZUPCAY&`(M*%%Wnz{hQo>6?9*WVAPN_2DnaTqKTN4t;R2_%Vq>q2(AZms`#dDV zw3b%!?^7qVyCQ+U0&yVu51^+@69Q_I`0Rg0g`e9FVbt&YG+^K}B<5yg+Hg0yIHb$Y zsDwaiU^4uC7L5|MDd7Ez;xRPDzJnV;DgG<&dyQnx)+7wxV8DCk<7t1;nhJ5rU&7`& z4rt$}%}zRez@=^ijMkjVY5aYF&20jll*xOgw7XGCX9}|kn#22yj^K8w$28FD82WmT zp}XVLV75>k_Y4(cLUc2H8}7u7DL)~n(-tG{>Vd4`C*m`25#6M7fy#^-MumH)q0vbI z#cK-b*en&kugdVZ-hEIO-35D(wxPD3vfx`YKmXL(k10nC`5fv>w4awL=+APoo~b&D zz3gs+=H-*ou~ipVjE%snF}H~NGOqO8fa{N5rDq;r6BI_~LIJ-s`649=X?0&pRCin# zX1}9Qy4e*?%ambVt_bti-%GAIFG0yE*XZj#S$KEqXQI5K2!6_r;6!EoA>mjaI0zSk zw)sX}F_4P#DP{DU+FiQjzLS~A;JrKCxvy}!yq@U7Z1N;@ad}&mosmWB+2GM z@Z2z}Gtm&fOL?F$p%4}Z$Z$H+AMlaID{^_c0oc-!kh}gW7^LJwi)%I%pH?7cy36ki#MHeQy@J?b!tR$DYE> zuxW7A#RED`-{QY9kC7ixv#6FX8*xr2(Q@w_)k7t^oh4xJpUQ-v09GHgcA^aXx z;vg(9kYjqG9Qlww2PJn$;0@7v7(O$FzNvgn)}5U|fB$=ro{3&?p~Qrnu<1WIbRr(b zhFE4TDucu^5P#51#?g8D9D10t@2{ugmMqC#z!MFr|=2Kh?TZ6Z= z*iLEYW~9kUM{TD8R>$e935uw{FdL0lT0+B29a4Ozk>(G_!D)p^cq3`U@`8@R#Oy-) z_k=u_e40Z~PY-4D)@&t`g@uqeZW-GecAUOF@Bp~T$Jku2gLyXM%tNLJhCRgbnnMZ% zd>;eLoeb$C*HAp{d5HY9cm{8_WZ{-W>gd+977EvApv`ncn)_D;m8C-|&VSGMjr>r1 zZVL@O)op#?MR&z$i%B5c0-W9@fzw{4k?A|~Xi-oZ8f$c;Y`hLP z@l-Qup<@LLdj3OU&r&QA1kr#N6fD^-&FR0N$_*Zs=I(C@BI3REP~IH_flHo1@UG=- z)%H^;d1MlcZ{ahViVvaW<5u)ruoawUSmYn}VDe$u4=M!mNa8_g{JAV6g`J31C z!O6W4t1T|#tL%Ps>~zNo>!;F`ZYL6XWHPNTl7tWM?xU1yyuu-`oemMIs2 zT>MtDE?AXo?k<9}ncJ~mXvXrqond`pB9HMs3a|I^&ei53NPZ;AG>wnaw*!ai==y%x zH-0TVIGjuqmafL(iRZA!!2krR^KqAWFxt&C;~6AJnczb=xso-XThO7+ZT@G7?_UY< z?%{U9@UMJyeX$*SR$9UCzLWHL{eF;E7((~!BIM5FFQ{fL3O;Xk;}}Ct?sI`Q+tu8J z*V;cpqQ!O4xbyVHmeQ?!$d=B}*f-3_X5;fB>m;@dGFp9msg(YzeI z-}@F5c3IQXW+{-4e+I@^{P7C+9AXxUf-&zA$OtX~OG94Xz#Rjp><_f?{5o>SU5TBy z=DU;QFAxu_0f^ApOKV21C7*J(pjY1{5UY~pt~6!~R!U8Uaq}OO%K=&7l_t+wMPhs=^u0o?s8)cv<*GcRKp#0XUDWY21?}<-81LCjQ->Z? zom~~6JoW>0Jbeo`K|V0WCJ~nXZ6zUlFW|Z}|8O`z4yNr7fu>i8DXUBIhr>jey2AkN zZ;!_XE)p>F|LpXs;0CrcC<_Kf4m3?O6&ub-MyjByNKG zkdWBU*T<@Mb@aToj1zwpf^ygA(w(=b5F-;&T%-~T6IB;OMxqhdHA-`UvgaiGuDGp{zTtiFnK-aDvljrM49)f9MhH%v*zfYaKAMNEL_ccu&yYC~%t@ z3uo4Z!9t}FESeiAbet21dBYv_aL-BRQIL%L1GaJsccS4)tTvnYU7LkOD{{{RR-lxo z6#P-}pvOZbI7PQ%@Cm(v6GVTKd+W_`fxH~}Sj|A^v;`2K_5{jKD6qK~d9GY_KHVSH z3vs(bQ2o$&cE+^;9+`gR-w@uMg4auU_Gcl~E#$opy`!K}Y#2wr6XlXaZooKH%@w1Cg`3YMYdkriS2x+WrEpHBIRhqSuN^^lG{1({dh4{JKn8swDUE zz&IS+p~y95OrkCE?Lt+JIjnV=KCsaXITI&kObi}G?4Bmxhora%~{qk<2ZT>B6OzH%aWh z9<1@d3IhKteZA|B66)f(&H0 z%fd{j+i>kx1d7YA=3c)nhUoOSxX=FuIY0Y3^%M_h+25Dom+jRs_K6bIJn-lKMDGHo zH;UEod?P%$F_Im56-u+G-$%&&}AstqokYPr)mn6dW_-0Sq4Qg3~_ZSz6mD7FM9f+|#Aen0K4M`YVEo%Od$) zjWPFh1jo|fx{!>FHE??B6-@oSkc@Eojz#$yH1YISuK2+!l6ZFz+2A=)tNTLNjarWH z3uGWlunVW8o#y-(@^6|szxkYECUM+&oys0J$K{Yme@-t&i`jWBFljoMog|5CcF*7f z8_TJQ=mw(o-i+C8P-o_HS@>r#6O;Jdmc+S<++U3_Jku=7cI(f9;62x%cKR{Sg71=9 zUq6p0+unnc?OEb&5+i(Na~k&DyhI=LdBMk3nKX1!9(na-h{|7brZa=yKyq^y#>~11 zKdM#fv$ZB@`$&!}t<@vV7gzB2hd|gqM-3cu?~r1PB)r@aPxqL;28WwbEN^!>-{mYv z2jxTb!z}~wdQ*?~9g-~E1o2(}6AadQfk&qv$J%09wuDj`9_0x&KflnQFR#GDjstAC zOqBcaemj}5tC3z*NTQB2(gmV??y39pQ7W^K_c%$0!%MGDROo((Uq5N0$;ZodtL{O# zRF(uipC7{Y{WVar%$Cj&7vt(G*TRaO5ul&cfQMoR@O@M!F_eiR6V~2<{>qy)WStj_ zHVnpvvn**>@*2GLi|1KC^M*3@jbN4bj#}qdfZ^}UP@;RE#{D>nBZ4=9OERAa{F;J? zmp+B+VgrHy%0wDkSOcz2Q;=!Cr{5j5>0;H3d~ddas6I`D+=%&@;?;r6RJK4;=wIQm zas*8Jx|Zhy_284^&roLGL`>RWgy(Csus6V!FsI$b>$V+CxoJiP2USqFAspQNEO71q z6ZqFW1buHQvw|K8rafj7x7U6$%ve{;ySWOn(0?>a)P$4IE+%BhwS4t`p7 z)AJ7!(Nj@@6gB2)~s3s<34);cy;^^-8OFbwn4 zRQO$=Ev|01ht%|XTDNXL?;yVcpATLH`}q^#meDydpOI+2xZ@vHomE4oy_R5?Hg{ov zL>cK^>xrSy;z4HQQDQjvI!wLaPof4p1yMb^a3s7JmJZDVncKO7#hIJYB6|ThUDJn# zx}GIFOhs7Wlv0u)i*{KyoLy*q*B>d3i z;stVLkrEf?j@UX%f~~qD1Rr;k3OJI4VPp2g--1>cGunuCCC$Or`B8ZC#YPl+G6StE z#-U6@8YI7a2_=pxbh8?R2Gc0;-*XmL&(vTxzoX!KWerRSDhJP>TLf*!H{pI z0c>S!U`l=h>cmRYHT5Rkz0o7d`AJq7_H#KpzvJIu&+6b@;AIm2W0_D|cNAXM=obb( zh_uqSdI+Ia_sC+tJGENmDxG#_E_98#OZUB)LDcW)f#JIUV6MuLV5^fHSALl1HO>nK zLAnc`InPl)-Sa3@kOkGrmcXUNa@`AzS#ZQC9N3)>uMMZeO^1=(%8DdV{Lu)TS1D8N z-6b@vARay(9K~(l#OF{mOxVu0bhyt=WlGb2V!=QlY6UFk_i*yCB*KkbSYri46N_M= zzX$bgb?F)Z9x_(1hrFsYVx4w|Y~1-CL8x*h<~^NGavn*uM{OP85`2?qZ;s~l1g`vU z@gh9u@8;T$9CegUrZn#d$d_LvdyB5Z_(OZ>kxl6kGSeGEpHE;1Ke}Q*+Y7%R=floz zw|FOm6*!+z;EZ0h;(TXoc(mCR?kV{*%lw%jn7NKT_Laqr_n(kGs{YUy<4dIn596_M z%4qh*3;Xykly4tDmk^6Zt%K1JCA*E@D``fp?PKA<>l2`m6~*L844Lik4O6`|=;a1y zX8B8$+pr@S4J#Ee<5daiuGeHsrUheq%{1IB=k-U8 zn|=B+e)h~|zhdWcMxG}iF>oexHPQh4Pl-fp$wORheF0{)6w|#VjT){>X6BcE2@j?c zSg?E@w{yonAv>qR-YTuYj353e>}-a$8kxAxYBC$%aS%W7XUz%+S#Bt+0+pwl!zaU7 z;@6Q5row0l1eT;z9vZ(A!&4VcQ#JM=<+X}dL5KLL&xJlOYB z-Ug^SPQM<9Q3PBTp2mYEmmX>A(;-!@1xGw1v9A52)DY8uh`tc?noY+Q6wu-RR zSAL=N;Y;AO`4Wwx|=cOu>m|O zNR*7xH(MLBv2*O$u^UtbjeNL%Qjb)b(#t|yZ`w4 zTYVnc*mnl5OfW~=zz~|>@CLfv&f>sDV?1~AGkOgxa=vpP3N`QNSxa8LfldBKY>)I3 zKFhls{f8oW*R~4nyZQ;d-8W&TYe~iANv7~2UmVwcSjw#&eS$V>@%`W(b71oAVmRl$ zl1;1G4QHL>(LzZM9$t*(?{;4B>V`Kx(G&@d%l_c_ZLu)%KnBi}EV3TdJ3{-X&SO|V zoz5a!+}|Dn9xmvB(RVMx8}kqFte5BN=N!Zh&Tq)u=~o0bW3y=C=32VsMF@=QP=d63 zmTY_BZ0^?73NlYKiE}wuM#^#|U{;_WH`!8`Sv@bHW`~Q==64QgY%LbVv5VN}cub&c znoRVV7F*x2na{eJq0F|40&V>)_&w_;owQSg%TCG1rcE1>rG^RWwRAy!a3xwUoW}Q5 z2hn5v4Wv4{EIjHX%wHb_D=aC|*v7j8w8uc2vLUy1X9#!-sv-48H`pDY&JLVd$z98d zfl`}w+;Es1dYFy`&rg=-t>9pVPGE)d_gz-h?(k z6@&)a6h1EL$F3u3xLT}5)J7x>c_t~-_*A?Vg`a!NG_z;>4 zM_}<$MRs<%Kqz~25t)2wJmw^h5K8`jCy0>0NQJiq_(D{G$N3CaiM~A-E$_^IS$>!E zks5?Fzjz3r@*C`@jb``bXW__-6ew)X0ITvB_(|;;CcJt`{di`k-Qf&;^GKZA!rx(T zg93NU$rUt$_j9+u?}yiE>J`eSNwEJ>hhW^%gRJ=KHN35s2>(W!;2AC+cSvWGzLl%7 z=3f{or@TWxZ6WC8?jZjqXJe?`3H00+2c9oRvt^s!!J+FtC}})|7SjJfbMGTC`5A-G z6MhK~@cXYQ^)3jX=gw;GE~FaQilNv}l(V|$i|OmHvi}CONk!%AmC<=DsPO2qhTiHrz$ykcYZ=_gf zvO9Mv!3*Sidr(?G5(?Y=;rrMyK}wk>muIYj*&dX1D_P<~rR#7+rX2fy#aZ_7Tbk~$ zikL>6CPLHE@VY-33Oz={hh8~h*6EYr`%Qr?dJ;t@-Q0wRn<@Nr`Gz|mC_%{j0P4nb z>`i~wK%%2D-B~&jyK~jBzIHyHJdlg=zkZN_IpSQw_N6fI=mt0~^9STl9fq!T%6MpP z5$_~60QpU4;Qso(H13lW_fs(+TkCl4Zf^@#OV**Ii5F+~R2vS)*wQ24c7exH{*CoL z7`ME&#*mTXuupt0=*D#8>W-0|kC_K-+|&+CaWq$G+Xq#_I<$9aBgP*3ic9AQ;!dgt zcb|`7o=QrB%lvsB{LzBtPAP>yXHSvnp|?=2o<jG3`VIKVS7P1XI_$H0R`Tsn{(y;mj_KT!oq_gX=#pYJQjO3?*vIkZz#mD@8k z7fyEYygo}QPTyQ!7&|Zqx70lnHeN6WJ|+&^A3g<}rrA`xz=jK-TEVjnDnS0nZMa{S zA^7(}iIeJH1jW@man7&Xpt+$@kW&=}rumhi+r|6c?eBuww(nS`wU`@TX#<60b_%59 zM3_Wqm>}TH9DrC!tju`~dxILGX8&y5G~We3+P(sjvia2IfE|=3 zVlMvqG=-S`o5kK|pQOi@jwU6c6t2#;5Bm@;l(GnB8JoV;+%3vb|kY9t{v~i z9*c9R23}a|?@8;9=9KGg+=mvke$uTTlgLwpT}&!Yi(8cu4vp3cX!leaL%Ag3MC^wH zr7?7TRg193OOz|`h(+rcA+VJ+m)Gf7;gtESpt&du${#7SR8EbXqG=$||Fr`~&EF~1 z_D#g5f&}#LypD~wqp+cN7$pnGg2?I?;Dc~P^Bsls0tLF|)&+dd*3lK4mYQ5xsK*wJ zR4cp4&!`;l^*ZKPM1od4#(ddx@I*2dR(6|H=So-T21Rhowj=9JUeLI1KWzFi8y-xb z4+rn7LTdIEC{gziEUdap&pwSLYl{kD{qDV_aw-S4>BCs0JqJJN2+7XZz2vX%9FVfi zH+6R$fL1vG z3a@s`aA#EC;)QVvcwD%dT^wkpCWi zH92KAI#UB4?25wH1)o9Z%>`P<^V}<}R?xAXZ|RU~E4lnE6@H)c<5{G-ctVu-F}VJK z|D24V{n!X1ysbg9|1G6rMFiS9(s4;fFv<>T!vm{n9BNiU1GgLVMot2SqyV7F9B!HB z3AUU#o20h}8^o?b^v*Rrqs0of+REvun+vecs|%-yS*&2_7EF zerhP<;*~4e#OrzBM0xEi>M%|y&cM;`<(PN#Jf>|_Ve)#JptR>A{L$dKK_ey#s;`V> z+xhp?`;SL(qry8-9G(k$F1)8?L?wOsF`LfZ-2>i(b(of~j(K|xn7g4mS#>rFru2;A zG?EI0_o64$j+wmfy!;Q5pLU%37xts2aR`>Y(jW!I1g(tS@t&eI8`^sj{qsCvy<)H+ zI>rf)KlCGIH9bt*%}}9IhNg#Z;K7S)aG=qY?-$w5 z1s5+D&<~27GOq=GX-Go*{M`^-{6P){|k3!2; z_po#8c=k-7DmZyYk28Jr13ot<(}!P9qo@5Smg%`fXr2~K$~VoYGk#p9pHd?6eCvBM zH%*DZJ4Coc9yjRdX(_Ozo}Wh!Rh1{lkAwMXfjFjF9gWR`NzpfDUaxup{WWetF4++q z(;$4LO>uwEYsgvDg>UZZb2`%|L3pY$#ws;{-@8YA-*5|z+IR&+-o>C_p&RXZtP7`Q zl2G;MJWl+JBm24WA=X_HMPch(nzS0w_u_S2HZz`1o;WCwyl4joe%)kjTtDp#vc*x) zcCm)FM=@5#7v?I>fZEWnRJ7tR#4nhH>JAg3M{67Nl@W!XiaMO+or~m)#BR_Y$53WM zJLCqr!y)#>ddwKJsl4Gjq^Om zb4ToELZR_t&elnsI*ujqW&0W~crU^R33+b$!nvGClOdjnuOVa9=0juIYVMosCpIQMn*h+znv#W+~t9leCs$i5c8a?ihV12Gef)CT<=*21R zIH}?RSy$O1EZ!eP;`_AlkN;)rG+&h)7ZU;trA)c?EBUiTg@YQAZdfO&f%DTe`OM2p z_@Mj{+l#KyLsJw%JNyWYHr8Sv3cMk2t^x5*SPie5W>SN$OQi1l3M&4lOECGx11!kl z&@F2)Rrq9r_`#xb+oJ*)<58I!w@J=n7(Msvvf05qvd$ zO~aQwrcqwOcrDTe*Ze+#tCwk!RDSQNkh6!25m>`Jt2LzD(*xSR=0n8p_23#1#m~!r z*sNj?>V-Pcyyz$OwK|3)mQCY&0n(6fIe~L?JrCa#pWyJDMp_qQkM47K zVegOKCK&OZhW;8UBMkb}~$UyeWX!S#t1=G(331vsSw2;uk}C4*A}+ zE32QvnK+)iTCtqHN*xPv2c>Y-s+rhd#8Am`3CgWZF+II09rtw$*lXOw#;zWZf((CR z>?A5wm)^$Jy-a}r9-hP=%LyQ`9iqGI{P2)+47#gHVRragSY6$YhD)2UOL`=WyqAd$ z{i$Tk)COWMas;mF+{P8Lox{#*lOOW0&iYq8OO_Vz4K--x?LAu2PjJT=^(I zkt_?B!@enG4Q!_Yr@GWv;5LSf1ws#S4?>K!v~zfS&4BcR|g#8wOlPp?0<{l z)jdr-n-GtF)045KG8trjT5I#%UE5f;O=V9k%OPFR~gJJx6G_#}?PiF&Ho%V^&3rPl6#W@V;m120B zD7Siw9PPBr0G}5s7*`Vtn^qL#%G0jsKTCq?j|pPUQ?%*%(ql03c_w@fONAqqX@a$X zeBh%K&&U{;j1MnoLZjFzoaboAZSkClTSu8=+II*1vaOD8OPEDe{QskQjXiR zWd`SbI)~1^ZNiDX&>*$H6Y$2yTo6^YM)R3Zh_BZcSYrQN(4CNlM-M8a;Ol)jVV_By zcU+<+E8X!%{+06LusXW2y&o^x>VaOn7}MeNQ4J>+L(?^i*H{<+O7A6s9@9~_wwfB9 zC?wm99AJh?J03H=3-<#4qOXn&u8n?;i=6|ZcdrB!O2vcyfoXVYiw8tsn8)T`J%yHc zS8)9=9?)O1jYKls4$7XJ!|X94+?CpXqAM8k<4*(kYiqENJ@ zgW8+*;K`Uq(^0olQN|~@^!w!(M7Fh`9-Djtg$B}?oofdN_f3Sn(?(qNKND7`*@cPM zALBtkK11JcE7)Mc;hMF1eD6vCD5gg-rDSW)b@ghNp>dG+3sn+$c!zij7|zJ>roGYA za8`2|sx1n@GYUC0Yta$BA`=TMQW*k@s8^M_EFQGf4pXL?@m)j<*lktA9Ah$OP z4^DH201*-1OWy>U)dpOf*cE(36UjWY`4BySD-BF&f>9xR1m-P{xSD_OM}NMIY9as7 zFD2G=ucjDz+c$}1h{b}js}wy^E=qcIf`w;}$J5ciIk0d}64rX|!j};TX~?}=jH{Ri zF7IBE-BH(ty^`bcMp6eHy!x7M89}kow}pnJQv6$^%2cx_lb*x3=$gl|O-6NOi!H0gd*vHe@>+Dw~?axSF)5(X%&y0Aj4S+WRk(5iW z$AB*(JilTSuRqB^YOxHrqhbSurKzxQt5(D75DCb*T8;iP=b?S~b~G{w6}p5Qu%~Az zDvrMZcXz$UCkx|YNSFtWSzA$V)L72=kqEohrvmdy4pc4wh?WXZ=_sFFIN9tQ^zQE= z;}T3UJ#`toajyfD&I@oyd?a4`o(PlvnNxv?BkO%MmwnjhLxK|n;Y(K#NvjNi zouSMWDboXcFLz-2A?P9&>lmyfy-iyMUb zRCvoBE?g+3U8T#Rf6f{5Z*LyzSBKMn?O8b7@Co9TrZZ7BM-;sf4W_>e$*kZgp{g;@ zC{HQJxXd$x1yT*=YGJ$hip)@0U+GHJYIm@r`Y6G&!?$VD&>IY$FdGxJ4KRJ7^_w_5 znPN!&OGqfFfO>Zc2#U~$)>UbEJXDpteaMFOu3CnzH+5L-cMtlEpR?^(ox>jvKWX&> zCs;V+xX^OF4N7H=1fTX3Q1OUiwm}aay|&FXGISN(Y3Fkp&0}%a*6lDYXFaYP6k%zP zACSEGN93G(BbgblPdb`p*qxs1xG?EHne#Lf(mu;VqF_xa+|?Y#9t4EIKgRQ{FY?_9w!`$L0>3ACs)BcVqTuYI&6vYi zv~>SD4H;d}QG7-c-ZHmfADTNbp>3Gvze`1*6iHTnMGxiE{OG{(5uDR+MHH@X!l5Z1 ze6Ozxm#85RrRTJ8$%NVD@|Kq%Q&Ng6>YqXV&2zAbpKGSbG{VZ2$@o|P8rf#F0u%Ch z_UZ6KL5It9Zs72Es1hk5e?N3#QR+QB|Kkj%ZRLFsjyFO2qX}3Fw_}eg?=c^o13m5! zuvSSPcaDpu6W&Ghnw0?;(U6J@+AiaoleX+`p+8;=s^GctC1}m(p>9~+rvCOW==JO+ z79VT@?GV0qUX$;#clc4>e=Gxolq@-``|{lL$S`=dXBjOxCdTZiE`mwFOe`oKArdRjTiWc9K#ICN4wK#+mz$(LbH=X{nS zGMdf1cfCCQ_y8SmR0OLe9zuwMG3SrtY5UY5*uDI+@OMED-@WL@Yr^NDs9l}g(5DS2 z^S|OgD|b3UZYd^8C@??KcBFS?aYN@5l1R_ukJ@8+{v)e$CN6y>hcaisW0-;no0mM6@7`SkuKF?D1kY?}=Kprwl>lMl zvPSSKwcw2Tu(18Yx6pRg4^?zsk#qe+YP{0PqD?u_H(>>)#J;8yUYbH3xqDc{bFxcy z1|jS4Sz6f6cZnU#1=Ed^T!oqnxl>mFa<-D3R*)C`ZIPq` zoWD26PREImjPi+SDA5BI3;B%AWC^xOY=@l=C2H)E)ign#9Aco%OF=XIQ*xy4{?D8tk~8uGohAyivQgW0Z? zhM_lepf68>`x7O_J$F@y`a|J(%qs#1O9e3B(~L7&*9vW`MzP~I(;>T4jJ>=(Oaix; zp}!yybqX?Yg#I$vv^EKa{0tZBYzlwYdSU^eL+o&L<<4Y{=lko#82H>E&5ePy_s&VAu%o=)jj5&w~`+(w|a5Q`*BCJy5bKoxg_x)uqbBdeD)tcB- zH!>cc)fQsZ)&21Gb|Wg2gTjEnT40Lvxknpisr&Raxa{$eENs`qph-zoPMhBa9Lc~} z?zixav%auhwFf1BeV{88ny6x59VS>Z>a1W7$9dMM%foJ%XA*;_Pdo(i$Lmr0rzZX< zc@9hiQqc1AIauc40=HX&h{b-u<6)t+C}bI0IG)2J4w@#ARC7zh=ISttg6V{er z#`D->@sO|_-;BwT5IBdm~&fqlss8;9PzrSe!+n z#CaLIcm6oo#p_0OD$C)<18q*OER}GQhlIyxR}*95cJLokg08YA6u*^-6?$VZ{?QId zi#h;j=9qBZ(t23;X9%QU?j_wn=fdsz$%2DNcR;d+A|w0fvO^adFzfOU^56A$G(Pq? z%%52SMAr$NmE~Ah7)R8G7L(U{OF74a7Lw0<8B@=?!nY6K1#$bflUw?;>9CO!raQ)w zc`A=#c!N3^{@Kj>^vt-*1?9x|oFbZcjN$ZGx{#7YF)onL)*m(-&Hb`Jh}PTX(d(Nd z-LF4KP^h^SrIlaO;~mjZ^sX7ciJZjv;~99!w+PDIM99)wO}KYc5`Pq3<1u>_&+fbe ztL(-@&?4T~Gk+eusnkHTi*GPkun>0Z$dSDnh=q5rWBZ|i@^^EK@Ou9gfwJ;Sd@d+~ z!vUgvJ|dP{+`R%7-U?7@t`Fs1-PE-#18>Q$hCiDT%Jqg#mBi1XcR(zCt#S<7@884R zjyv>O{xA4BHJJDBzr}-{0`fX**vEEItHFg0I4~-uu*E^%i~6riGHm4V24~XESfSGHunoOCF>>MYr6^P!_C7gO2;- z_FpyRp4oHAk{*wn>u#XwzG8Cx&lFY_+zK-LtYG=)F2TOIv-E4_QYcZK$ej!dMX{ZH z-`MYH0+T3NoYpUVsiVnkqPBopTM8`n5a(j%IN`gBC!|kuHSM^hh-G(Xqs08_VBLKN z<_9d|K7V`-+BUpCU3L-6E=1siDPgRwHXg5f2}~7s@jkJvTO`8vB#xaa#k2|;EZMS* z$Oc(5&9Vky3qo+c^flZTpAR}7FZg`PR2s|YZ~ZN9lLu#4K}hy7*tBv7yHU@-^ZFj* zs9;~J(;&sDqbX<)e-Q@%8zis%s>>yGq`5V#GvL8YXY}}|#f|1UsHqMG!aZ?cK?Vm& zlYSB!&En9ibBJV)T?nD_wbXI$KcZ!+gSrA<6BmkdLn{=SldlV;YN|1(h)82DGU%*O5?(g5{rs3D=% zRd6$0n}uN#fW8TSu~CQaPm|%Uq&zpnL=2~%)_}LP*mThrDR$N(xXjYYo7lZ|fs4x% z*w39V*cY^zQ>dPboeP$5*E(Hrb3_+NqPDh{s7`$;nAXWNo5Ba_imMTVb?_KIL|nwJhsLnS&i!=jW*e5(dkuxR`M1^O zP+~K0SQw`l%G%E=k_Lw?xR$<|4fJ^9oE6bvJNh{0s-3`d^-e_l$uxMLJpyhz_VGUY zhl1}i3Xq^Qkz1;(#`a(7#%+e`f-Ko7IBGmY*S+f8a;+1x1Hn9{UvCvGoICpZsb{v8L)f7 zBK$tH2nz1#3M=C+*!ow0X!zMzaH~+C&OMn(gCDNvJj|zX-8~*cqkX+_Y|kbPjyl0A zN=9A?Wjw*7@n!p~%n0s&9pX zBQBA93xnw3<)y?yzL@^2$$`@jr(kWE9nM}Z!aZ)ZBql{xIR8K+j(45P=15raUOylF z@GKm5H7~-mMhkGV#Wf5VV}fy~n_=GGv7mj!9Z+;SYj+L-nduSGG*<(Pl{2Yfm!avi z|LcW(#zQ4kmV5hB4@dTmg~e5Gh37lgV?PS0c~%D5U}Oao9Zw@a+miDOd9LWx!9V7A&KuuEs-q^*Yu!WQH$GW`m2F7vE`>h)Yg$xK6MJPX?^O`%+uL zaKKksJur;3fxC@Y7zW!iHFKiv#tT68}{;DL4WDCW?k$v`AT+3yVIA&e7|~FHe0p45(b**;lKV2 zGHHSWmdNtF%&1d1hV#Ww{Y6BrdpQKDou>1v7>?Pkfu% ze1}zV0{L0Rvy5mw^x5&fAew|+9T|*{^OJGjn@?2tzh&6C<|&FRou+0VqUfihwcL}P zkBI7KJ#d`90~(5AK&8+gL##9f0cWJCrG5pT%rS!Hk81Fowm04$ZH@Wm0eIv02mDld zkp>=fV4oge1L^(@>=?KS`ZH6};?i;Y+%%75Zu$=518&fg{}EoM{1AROJ53Il3W?3} z9oTKi_x1P{Lm}r0Wqo}2%Of}L!`pnalFw28^qI}lrj+3EtbJg$N|pQL_C&CvER`CC z4dCIC?zrW*BGnS_gPC3i*dqP}oG^sTi4<@_qlcexENyK~TWdj?wYjO+O4YjJbH2yR3qWA6swWL!ydTJq<|Z?o5O|c@?7ZK4Uluj7?0LxqxJeQR6bM=W^R4p zK2DLj1fCNfNuJCEO&u`q!*jvD_vxmaYbW8@;^X9foD7P*I7ttN>_O?>J+x-IF??Mb z1{d$}8Q97rG+J^2{@3)5j@aJ`3nV4k-1IfVa+z_QL=oc|9RG0B{0xGPf#54vfJ%4g z z`t0F_N9F!A9>T)pJEvh|NDct1@Wn8~Y9^HV#(PbAYcf7cnJcesjd zZ8c}Rv(r!}td(xHQzWCVcbEoe22jz~64Lx95%Op0QAwXvG>N=K!zX0m!km#@!zv@r zxo1E8ZmpvAQ$yhPQ;PkL*U%*@6Z|YHFek7APq!!H@qK(R&HVNFYf1q9GJJ>5{JoUh z5h4ryEmv^E2PIM^e;FPxokmKB`Z2_%62eD#V4Rl%6zVE*j=wZ`CTb97ES6yFRwdCW zc0-Wh%dyLrr7$??PZW%zaAlMWw!Za-QHN6@R=NlCUfl$>wy&`MXrC~Ezx#GoPG`T2 zC$g$Tm9XseOxAsL3A?dM0!yR&z~S>SY}@h&Ui*X!%Ug`7T8$L@@mU;hsjP#0>%w5Y zC*o<>L`?bk8Xa3rnTvq~`>{+P;q6I5&FVK~;;#VaP&10Dm#)W;ACb81-$6IDzQzd) zH`B|T#hKMbFI?xMFQ_b%r=QHX3K!htXpN#Mw`<@weWLoFSnxgHep@5B4fd&6m2OL4 z+f4?Wbs;Dyp2a zbn3!a*CWfMS|$nX-@L*%`AWF`%syzf`VX3GD#*M)1`wlvjLvXoV4#yntF~!!hnp7* z7F8ExtKlJd)OS}nV@5uiDY*@U?FQkSrUo-xat>pW_i!&W!2NT4@$Gke?ASh&Yfe~# z=bhUziT9Fc6x$%FNx(I~TIorreZ(g%kc(cS$W2%_55{bXW6w9v2l=b|a5DZYK0D=x zZp@iG>5rGm7+bFeVjq6cCtoS4 z{W}ll#x!6^(riw*dJwy`PQr_yXIQv@ApGf-0YxVzNHv<{_dl z)k}|j(iCQ`cLF!Q$H6*rC3JVFutAS3T>td~N|y6Eaa({9L>(Y@G}nD$4UV^pfa@#x z-=u#tT-dyn_UoyzXv^1hruJ4U5j%rhUG<4tD)QOZD+Q2}c$GZj&!xy^46^PXfE~|* z@uZC-IrPy0%5A%F_UXgilOue7W>N;V5Ie{F9i9skc5lU&b!X9OFdM9nT|^tD5$JfS z2CBcSpt5Qx*laiA&i~58r9N@k)e_DAEiq+5>YLbIK@5ZmjbU|J5&2g{jpQ?^#rM!FtpHXZRN;&R=Yyx69HdT*9~Z$dpJvo}smj)BY(Uuy3*buGA}qZZhpN5qI63YI zd7!%mFO8YU-H!c9E6|k0tiLM!%X_cpE}crYW_s})(@=;qI!l9mf?-?cGOF-Pmufyc z3_A)~K&_GEr8&C0?#+ZmCPe+Z)6?ob&2n5+wpMYk0J?6>(D^27TzQNAa^ z8NNP2bB;a%=UxtHPB;qgrXgruw3d2TsY2X<9>0$l3cgMJ3Qpq9^k!Bc76g={uWuf< zInQQ7zOV7J!!A@fI}VSoHRL@0I|$R|Vn}+k4yJT^z;5T)pdl}TtCyD0xlN~VQEDQD zI-Y`z*dI`;Fqzvtg6CWE-?(x|8omCx1H;Se;Kkz+&@uiq^;)Zrt0JOt#heq|UEY6l zW}*ype_D^80t3!KJq&KImt%8vM{vQ`syvg~2ag#`z_KkP*=x}RY6hZw_Ok(Y=0suD za|aZc8o{|37ef35H~eRE1#k0Nne)OXj4{1Mn*Q}+&9qKv+j$w@ub9jA^eLfjrzdjh zYIq@PGbZoxKpQ<76gD+L$}$hgn(jiCuSbwkYv-}Hy!X(msLOqQvWD5eHfN@y59kg) zXWQ{F3z8(>lb?N=+hWu zBXm;oV2)F5L1hVn9cE5&c5xjf9lRs>9xBGYpX|m;tfi?Nlj3$22MC;kD?rIwo-8Rf zg0w+J_V&Opc$+QDdHnO^9&HQe-2d_W1o?v?VqXDqBC2K2?IEZ7yJ zz|{Gyp5yaz+;H(uF6l%i_AW^kG~M9&G$D?-=8Q3nTKW{f42E#88YZ(q{(te|lnfUg zyO{HMnneRj{a}2qJ~5tE3~Kk|NUqZtyfaG^%|2$)$FlY~X7O8c#pWisREc0oHR6ob zslq)fAJKQ*8_fJT7n%psY1e2!CRVhDb37FxjDGQ#?ich zfB97PUxZ1VAPbg^nu=q093bkpg+zPLNtVy~K#ccf!9-hEu6|KEUMx_;kzbL1->t*x zPo4>@o{4is&!>}_OVWr#pavOU%y%FNCFp9+<@n4k7!FIN30FWeo&8jaEld4|A)B

_w&1ktDqv6iLyo=cwo*1?)~X= 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 cB_c6%DjS1#bI4Un6fVA}{;@0Cp+HOaK4? literal 0 HcmV?d00001 diff --git a/05_software/train/rc_mjlab/sim2sim/README.md b/05_software/train/rc_mjlab/sim2sim/README.md new file mode 100644 index 0000000..8e43e94 --- /dev/null +++ b/05_software/train/rc_mjlab/sim2sim/README.md @@ -0,0 +1,58 @@ +# 后期 Sim2Sim 工具 + +本目录保存比赛训练架构之后形成的 MuJoCo 策略验证工具。`v0.8.0` 在早期 Sim2Sim 基础上增加 ONNX 策略加载、IK 参数扫描、纯 IK 绕桩验证和批量路线检查;训练任务与 MJCF 不在本阶段修改。 + +## 主要入口 + +- `nav_sim2sim.py`:Pygame 面板与 MuJoCo 多任务导航,Rough 策略优先加载根目录的 `model_6800.onnx`。 +- `sim2sim.py`:较轻量的键盘控制与策略回放入口,优先加载 `model_6800.onnx`,缺失时回退到早期 `model_rough.pt`。 +- `ik_slalom_sim2sim.py`:不依赖 RL 策略的 IK、差速轮、路径跟踪和绕桩测试。 +- `ik_compensation_sweep.py`:批量扫描 IK 补偿参数并输出排序结果。 +- `nav_route_sim2sim_check.py`:使用 ONNX 策略批量检查内置任务或外部航点路线。 +- `export_onnx.py`:将兼容的 PyTorch actor checkpoint 导出并核对为 ONNX。 +- `interface/mujoco_io.py`:MuJoCo 模型、传感器和执行器接口。 +- `policy/policy_runner.py`:PT/ONNX 策略加载与历史观测缓存。 + +## 环境 + +主训练环境继续由根目录的 `uv.lock` 管理。后期 Sim2Sim 新增的 Pygame 与 ONNX Runtime 单独记录在 `sim2sim/requirements.txt`,运行时叠加,避免重新解析时改变已归档的 MuJoCo nightly 版本: + +```powershell +uv run --with-requirements .\sim2sim\requirements.txt python .\sim2sim\nav_sim2sim.py +``` + +训练工程提供 MuJoCo、NumPy、PyTorch、Matplotlib 和 `pynput`;专用 requirements 显式补充 Pygame 与 ONNX Runtime。下面其他命令同样使用 `--with-requirements .\sim2sim\requirements.txt`。 + +## 常用命令 + +```powershell +# 比赛 Rough 策略交互回放 +uv run --with-requirements .\sim2sim\requirements.txt python .\sim2sim\nav_sim2sim.py + +# 轻量策略回放 +uv run --with-requirements .\sim2sim\requirements.txt python .\sim2sim\sim2sim.py + +# 纯 IK 绕桩验证 +uv run --with-requirements .\sim2sim\requirements.txt python .\sim2sim\ik_slalom_sim2sim.py --test slalom + +# IK 补偿参数扫描 +uv run --with-requirements .\sim2sim\requirements.txt python .\sim2sim\ik_compensation_sweep.py --top 12 + +# 使用内置绕桩任务做批量 Sim2Sim 路线检查 +uv run --with-requirements .\sim2sim\requirements.txt python .\sim2sim\nav_route_sim2sim_check.py ` + --terrain-xml .\sim2sim\terrain\scene_terrain.xml ` + --mission slalom ` + --onnx .\model_6800.onnx + +# 导出早期参考 PT 权重;也可用 --pt-path 指定其他 checkpoint +uv run --with-requirements .\sim2sim\requirements.txt python .\sim2sim\export_onnx.py +``` + +## 模型与边界 + +- `../model_6800.onnx` 是 `last_not_slalom_1050` 最终真机工程使用的比赛 Rough 策略,SHA-256 为 `3C994BDD3434AD15770A52AC0E8D229F502F00D6511CDD42C2E2C742301AEF13`。 +- `../model_rough.pt` 是较早阶段的参考 checkpoint,两者不是同一版本的权重。 +- Crawl 模型未在本阶段归档;需要 Crawl 策略的入口会查找 `model_crawl.onnx` 或 `model_crawl.pt`。 +- `nav_route_sim2sim_check.py` 依赖 `../tools/nav_tools/route_safety_check.py` 的航点和避障几何定义。 + +运行时生成的日志、临时 XML 和 `route_check_runs/` 不纳入版本库。源目录中的大量路线试验结果也未复制;它们包含重复轨迹和本机绝对路径,不属于可复用程序源码。 diff --git a/05_software/train/rc_mjlab/sim2sim/export_onnx.py b/05_software/train/rc_mjlab/sim2sim/export_onnx.py new file mode 100644 index 0000000..d1be128 --- /dev/null +++ b/05_software/train/rc_mjlab/sim2sim/export_onnx.py @@ -0,0 +1,110 @@ +import argparse +import torch +import torch.nn as nn +import numpy as np +from pathlib import Path +import onnxruntime as ort + + +PROJECT_ROOT = Path(__file__).resolve().parents[1] + +class PolicyMLP(nn.Module): + def __init__(self, obs_dim=53, action_dim=16): + super().__init__() + self.register_buffer("obs_mean", torch.zeros(obs_dim)) + self.register_buffer("obs_std", torch.ones(obs_dim)) + self.net = nn.Sequential( + nn.Linear(obs_dim, 512), nn.ELU(), + nn.Linear(512, 256), nn.ELU(), + nn.Linear(256, 128), nn.ELU(), + nn.Linear(128, action_dim), + ) + + def forward(self, x): + x = (x - self.obs_mean) / torch.clamp(self.obs_std, min=1e-6) + return self.net(x) + +def load_policy(model_path, device): + ckpt = torch.load(model_path, map_location=device, weights_only=False) + state_dict = ckpt["actor_state_dict"] + weight_key = "mlp.0.weight" if "mlp.0.weight" in state_dict else "net.0.weight" + obs_dim = state_dict[weight_key].shape[1] + + output_key = "mlp.6.weight" if "mlp.6.weight" in state_dict else "net.6.weight" + action_dim = state_dict[output_key].shape[0] + + model = PolicyMLP(obs_dim=obs_dim, action_dim=action_dim) + my_sd = {} + for k, v in state_dict.items(): + if k.startswith("mlp."): + my_sd[k.replace("mlp.", "net.")] = v + elif k.startswith("net."): + my_sd[k] = v + elif k == "obs_normalizer._mean": + my_sd["obs_mean"] = v.squeeze() + elif k == "obs_normalizer._var": + my_sd["obs_std"] = torch.sqrt(v.squeeze() + 1e-5) + + model.load_state_dict(my_sd, strict=False) + model.eval() + model.to(device) + return model, obs_dim + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument( + "--pt-path", + "--pt_path", + dest="pt_path", + type=Path, + default=PROJECT_ROOT / "model_rough.pt", + help="PyTorch checkpoint to export (default: ../model_rough.pt).", + ) + args = parser.parse_args() + + pt_path = args.pt_path.expanduser().resolve() + if not pt_path.exists(): + print(f"File not found: {pt_path}") + return + + device = torch.device("cpu") + print(f"Loading {pt_path}...") + model, obs_dim = load_policy(pt_path, device) + + onnx_path = pt_path.with_suffix(".onnx") + + dummy_input = torch.randn(1, obs_dim, device=device) + + print(f"Exporting to {onnx_path}...") + torch.onnx.export( + model, + dummy_input, + str(onnx_path), + export_params=True, + opset_version=14, + do_constant_folding=True, + input_names=["obs"], + output_names=["action"], + dynamic_axes={"obs": {0: "batch_size"}, "action": {0: "batch_size"}} + ) + + print("Verifying ONNX export...") + try: + session = ort.InferenceSession(str(onnx_path)) + with torch.no_grad(): + pt_out = model(dummy_input).numpy() + onnx_out = session.run(["action"], {"obs": dummy_input.numpy()})[0] + + max_diff = np.max(np.abs(pt_out - onnx_out)) + mean_diff = np.mean(np.abs(pt_out - onnx_out)) + print(f"ONNX vs PyTorch - max_diff: {max_diff:.6f}, mean_diff: {mean_diff:.6f}") + + if max_diff < 1e-4: + print("ONNX export verified OK.") + else: + print("WARNING: ONNX export has significant divergence from PyTorch model.") + except ImportError: + print("onnxruntime not installed. Skipping verification. Install with: pip install onnxruntime") + +if __name__ == "__main__": + main() diff --git a/05_software/train/rc_mjlab/sim2sim/ik_compensation_sweep.py b/05_software/train/rc_mjlab/sim2sim/ik_compensation_sweep.py new file mode 100644 index 0000000..f013f7b --- /dev/null +++ b/05_software/train/rc_mjlab/sim2sim/ik_compensation_sweep.py @@ -0,0 +1,238 @@ +#!/usr/bin/env python3 +"""Sweep IK compensation parameters in the standalone sim2sim scene.""" + +from __future__ import annotations + +import argparse +import importlib.util +import json +import sys +from pathlib import Path +from typing import Any + +THIS_DIR = Path(__file__).resolve().parent +PROJECT_ROOT = THIS_DIR.parent +if str(THIS_DIR) not in sys.path: + sys.path.insert(0, str(THIS_DIR)) + +SIM_PATH = THIS_DIR / "ik_slalom_sim2sim.py" +spec = importlib.util.spec_from_file_location("ik_slalom_sim2sim", SIM_PATH) +if spec is None or spec.loader is None: + raise RuntimeError(f"Cannot load {SIM_PATH}") +sim = importlib.util.module_from_spec(spec) +sys.modules["ik_slalom_sim2sim"] = sim +spec.loader.exec_module(sim) + + +TRIALS = [ + {"name": "forward", "speed": 1.0, "yaw": 0.0, "target_vx": 1.0, "target_yaw": 0.0}, + {"name": "yaw", "speed": 0.0, "yaw": 1.0, "target_vx": 0.0, "target_yaw": 1.0}, + {"name": "arc", "speed": 1.0, "yaw": 1.0, "target_vx": 1.0, "target_yaw": 1.0}, +] + + +def parse_float_list(text: str) -> list[float]: + return [float(x.strip()) for x in text.split(",") if x.strip()] + + +def parse_bool_list(text: str) -> list[bool]: + out: list[bool] = [] + for item in text.split(","): + key = item.strip().lower() + if not key: + continue + if key in {"1", "true", "on", "yes"}: + out.append(True) + elif key in {"0", "false", "off", "no"}: + out.append(False) + else: + raise argparse.ArgumentTypeError(f"Invalid bool item: {item}") + return out + + +def make_sim_args(args: argparse.Namespace, trial: dict[str, float | str], cfg: dict[str, Any]) -> argparse.Namespace: + argv = [ + "ik_slalom_sim2sim.py", + "--test", + str(trial["name"]), + "--duration", + str(args.duration), + "--settle", + str(args.settle), + "--speed", + str(trial["speed"]), + "--yaw-rate", + str(trial["yaw"]), + "--posture", + "custom", + "--custom-abduction", + str(args.custom_abduction), + "--custom-hip", + str(args.custom_hip), + "--custom-knee", + str(args.custom_knee), + "--wheel-model", + "direct", + "--linear-wheel-gain", + str(args.linear_wheel_gain), + "--direct-yaw-wheel-gain", + str(args.direct_yaw_wheel_gain), + "--max-wheel-speed", + str(args.max_wheel_speed), + "--wheel-accel-limit", + str(args.wheel_accel_limit), + "--yaw-rate-kp", + str(cfg["yaw_rate_kp"]), + "--encoder-posture-kp", + str(cfg["encoder_posture_kp"]), + "--encoder-posture-max", + str(cfg["encoder_posture_max"]), + "--roll-comp-gain", + str(cfg["roll_comp_gain"]), + "--pitch-comp-gain", + str(cfg["pitch_comp_gain"]), + "--no-realtime", + ] + argv.append("--imu-posture" if cfg["imu_posture"] else "--no-imu-posture") + argv.append("--encoder-guard" if cfg["encoder_guard"] else "--no-encoder-guard") + argv.append("--imu-guard" if cfg["imu_guard"] else "--no-imu-guard") + old_argv = sys.argv + try: + sys.argv = argv + return sim.parse_args() + finally: + sys.argv = old_argv + + +def score_trial(out: dict[str, Any], trial: dict[str, float | str]) -> dict[str, float]: + vx = float(out["mean_body_vx_mps"]) + yaw = float(out["mean_yaw_rate_rad_s"]) + vx_err = abs(vx - float(trial["target_vx"])) + yaw_err = abs(yaw - float(trial["target_yaw"])) + return { + "vx": vx, + "yaw": yaw, + "imu_gyro_z": float(out["mean_imu_gyro_z_rad_s"]), + "vx_err": vx_err, + "yaw_err": yaw_err, + "err": vx_err + yaw_err, + } + + +def run_sweep(args: argparse.Namespace) -> list[dict[str, Any]]: + rows: list[dict[str, Any]] = [] + for imu_posture in args.imu_posture_values: + for encoder_guard in args.encoder_guard_values: + for imu_guard in args.imu_guard_values: + for encoder_posture_kp in args.encoder_posture_kps: + for encoder_posture_max in args.encoder_posture_maxs: + for yaw_rate_kp in args.yaw_rate_kps: + for roll_comp_gain in args.roll_comp_gains: + for pitch_comp_gain in args.pitch_comp_gains: + cfg = { + "imu_posture": imu_posture, + "encoder_guard": encoder_guard, + "imu_guard": imu_guard, + "encoder_posture_kp": encoder_posture_kp, + "encoder_posture_max": encoder_posture_max, + "yaw_rate_kp": yaw_rate_kp, + "roll_comp_gain": roll_comp_gain, + "pitch_comp_gain": pitch_comp_gain, + } + detail: list[dict[str, Any]] = [] + speed_error = 0.0 + max_tilt = 0.0 + max_leg = 0.0 + mean_wheel_err = 0.0 + stable_all = True + for trial in TRIALS: + sim_args = make_sim_args(args, trial, cfg) + out = sim.run_one(str(trial["name"]), sim_args) + trial_score = score_trial(out, trial) + trial_score["test"] = str(trial["name"]) + detail.append(trial_score) + speed_error += trial_score["err"] + max_tilt = max(max_tilt, float(out["max_tilt_deg"])) + max_leg = max(max_leg, float(out["max_leg_encoder_error_rad"])) + mean_wheel_err += float(out["mean_wheel_speed_error_rad_s"]) + stable_all = stable_all and bool(out["stable"]) + + score = ( + speed_error + + args.tilt_weight * max_tilt + + args.leg_error_weight * max_leg + + args.wheel_error_weight * (mean_wheel_err / len(TRIALS)) + ) + row = { + **cfg, + "score": round(score, 6), + "speed_error_sum": round(speed_error, 6), + "max_tilt_deg": round(max_tilt, 5), + "max_leg_encoder_error_rad": round(max_leg, 6), + "mean_wheel_speed_error_rad_s": round(mean_wheel_err / len(TRIALS), 6), + "stable_all": stable_all, + "detail": detail, + } + rows.append(row) + print( + "DONE " + + json.dumps( + {k: v for k, v in row.items() if k != "detail"}, + ensure_ascii=False, + ), + flush=True, + ) + rows.sort(key=lambda r: float(r["score"])) + return rows + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--duration", type=float, default=3.0) + parser.add_argument("--settle", type=float, default=1.5) + parser.add_argument("--custom-abduction", type=float, default=0.2) + parser.add_argument("--custom-hip", type=float, default=1.697) + parser.add_argument("--custom-knee", type=float, default=-2.650) + parser.add_argument("--linear-wheel-gain", type=float, default=12.5) + parser.add_argument("--direct-yaw-wheel-gain", type=float, default=8.0) + parser.add_argument("--max-wheel-speed", type=float, default=12.0) + parser.add_argument("--wheel-accel-limit", type=float, default=35.0) + parser.add_argument("--imu-posture-values", type=parse_bool_list, default=[True, False]) + parser.add_argument("--encoder-guard-values", type=parse_bool_list, default=[True]) + parser.add_argument("--imu-guard-values", type=parse_bool_list, default=[True]) + parser.add_argument("--encoder-posture-kps", type=parse_float_list, default=[0.0, 0.05, 0.15, 0.30]) + parser.add_argument("--encoder-posture-maxs", type=parse_float_list, default=[0.03]) + parser.add_argument("--yaw-rate-kps", type=parse_float_list, default=[0.0, 0.4, 0.8]) + parser.add_argument("--roll-comp-gains", type=parse_float_list, default=[0.35]) + parser.add_argument("--pitch-comp-gains", type=parse_float_list, default=[0.35]) + parser.add_argument("--tilt-weight", type=float, default=0.02) + parser.add_argument("--leg-error-weight", type=float, default=0.5) + parser.add_argument("--wheel-error-weight", type=float, default=0.0) + parser.add_argument("--top", type=int, default=12) + parser.add_argument("--json", type=Path, default=None) + return parser.parse_args() + + +def main() -> int: + args = parse_args() + rows = run_sweep(args) + if args.json: + args.json.write_text(json.dumps(rows, indent=2), encoding="utf-8") + + print("\nTop compensation parameter sets") + print("rank score speed_err tilt leg_err wheel_err imu enc_kp yaw_kp enc_guard imu_guard") + for i, row in enumerate(rows[: args.top], 1): + print( + f"{i:2d} {row['score']:7.4f} {row['speed_error_sum']:7.4f} " + f"{row['max_tilt_deg']:5.2f} {row['max_leg_encoder_error_rad']:7.4f} " + f"{row['mean_wheel_speed_error_rad_s']:7.4f} " + f"{int(row['imu_posture'])} {row['encoder_posture_kp']:6.3f} " + f"{row['yaw_rate_kp']:6.3f} {int(row['encoder_guard'])} {int(row['imu_guard'])}" + ) + for d in row["detail"]: + print(f" {d['test']:<7} vx={d['vx']:+.3f} yaw={d['yaw']:+.3f} err={d['err']:.3f}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/05_software/train/rc_mjlab/sim2sim/ik_slalom_sim2sim.py b/05_software/train/rc_mjlab/sim2sim/ik_slalom_sim2sim.py new file mode 100644 index 0000000..5107681 --- /dev/null +++ b/05_software/train/rc_mjlab/sim2sim/ik_slalom_sim2sim.py @@ -0,0 +1,1235 @@ +#!/usr/bin/env python3 +""" +Standalone sim2sim check for wheel-leg IK navigation. + +This file is intentionally isolated from nav_sim2sim.py and the ROS2 runtime. +It keeps the 12 leg joints at the RL rough-terrain default pose and drives the +four wheel velocity actuators with a differential-drive inverse kinematics law. +""" + +from __future__ import annotations + +import argparse +import json +import math +import os +import sys +import tempfile +import time +from dataclasses import dataclass, field +from pathlib import Path +from typing import Iterable + +import mujoco +import mujoco.viewer +import numpy as np + +PROJECT_ROOT = Path(__file__).resolve().parents[1] +SIM2SIM_DIR = PROJECT_ROOT / "sim2sim" +if str(SIM2SIM_DIR) not in sys.path: + sys.path.insert(0, str(SIM2SIM_DIR)) + +from tools.math_utils import get_gravity_orientation # noqa: E402 + + +LEG_JOINT_NAMES = [ + "fl_hip_abduction_joint", + "fl_hip_pitch_joint", + "fl_knee_joint", + "fr_hip_abduction_joint", + "fr_hip_pitch_joint", + "fr_knee_joint", + "rl_hip_abduction_joint", + "rl_hip_pitch_joint", + "rl_knee_joint", + "rr_hip_abduction_joint", + "rr_hip_pitch_joint", + "rr_knee_joint", +] +WHEEL_JOINT_NAMES = [ + "fl_wheel_joint", + "fr_wheel_joint", + "rl_wheel_joint", + "rr_wheel_joint", +] +ALL_JOINT_NAMES = LEG_JOINT_NAMES + WHEEL_JOINT_NAMES +WHEEL_BODY_NAMES = [ + "fl_wheel_Link", + "fr_wheel_Link", + "rl_wheel_Link", + "rr_wheel_Link", +] + +# Must match src/robot/robot_cfg.py rough policy initial state. +ROUGH_DEFAULT_DOF_POS = np.array( + [0.0, 0.550, -1.125] * 4 + [0.0] * 4, + dtype=np.float64, +) + +# From mujoco_sim/config.py. These poses keep the wheel contact close to the +# hip in sagittal X while changing body height. +HEIGHT_TABLE = np.array( + [ + (0.17, 0.914, -2.628), + (0.19, 0.926, -2.528), + (0.21, 0.924, -2.428), + (0.23, 0.912, -2.328), + (0.25, 0.892, -2.226), + (0.27, 0.864, -2.122), + (0.29, 0.834, -2.014), + (0.31, 0.798, -1.906), + (0.33, 0.758, -1.792), + (0.35, 0.714, -1.672), + (0.37, 0.666, -1.546), + (0.39, 0.612, -1.412), + (0.41, 0.552, -1.266), + (0.43, 0.484, -1.104), + (0.45, 0.404, -0.918), + ], + dtype=np.float64, +) + + +def wrap_pi(x: float) -> float: + return (x + math.pi) % (2.0 * math.pi) - math.pi + + +def quat_to_euler_wxyz(q: np.ndarray) -> tuple[float, float, float]: + w, x, y, z = q + sinr_cosp = 2.0 * (w * x + y * z) + cosr_cosp = 1.0 - 2.0 * (x * x + y * y) + roll = math.atan2(sinr_cosp, cosr_cosp) + + sinp = 2.0 * (w * y - z * x) + pitch = math.asin(float(np.clip(sinp, -1.0, 1.0))) + + siny_cosp = 2.0 * (w * z + x * y) + cosy_cosp = 1.0 - 2.0 * (y * y + z * z) + yaw = math.atan2(siny_cosp, cosy_cosp) + return roll, pitch, yaw + + +def yaw_to_quat_wxyz(yaw: float) -> np.ndarray: + half = 0.5 * yaw + return np.array([math.cos(half), 0.0, 0.0, math.sin(half)], dtype=np.float64) + + +def quat_to_mat_wxyz(q: np.ndarray) -> np.ndarray: + w, x, y, z = q + return np.array( + [ + [1.0 - 2.0 * (y * y + z * z), 2.0 * (x * y - z * w), 2.0 * (x * z + y * w)], + [2.0 * (x * y + z * w), 1.0 - 2.0 * (x * x + z * z), 2.0 * (y * z - x * w)], + [2.0 * (x * z - y * w), 2.0 * (y * z + x * w), 1.0 - 2.0 * (x * x + y * y)], + ], + dtype=np.float64, + ) + + +def table_pose_for_height(height: float) -> np.ndarray: + h = HEIGHT_TABLE[:, 0] + hip = float(np.interp(np.clip(height, h[0], h[-1]), h, HEIGHT_TABLE[:, 1])) + knee = float(np.interp(np.clip(height, h[0], h[-1]), h, HEIGHT_TABLE[:, 2])) + return np.array([0.0, hip, knee] * 4 + [0.0] * 4, dtype=np.float64) + + +def nominal_dof_pos(args: argparse.Namespace) -> np.ndarray: + if args.posture == "custom": + ab = args.custom_abduction + return np.array( + [ + ab, + args.custom_hip, + args.custom_knee, + -ab, + args.custom_hip, + args.custom_knee, + ab, + args.custom_hip, + args.custom_knee, + -ab, + args.custom_hip, + args.custom_knee, + 0.0, + 0.0, + 0.0, + 0.0, + ], + dtype=np.float64, + ) + if args.posture == "table": + return table_pose_for_height(args.body_height) + return ROUGH_DEFAULT_DOF_POS.copy() + + +def make_flat_scene_xml(robot_abs: str, tmp_dir: Path) -> Path: + out = tmp_dir / "ik_flat_scene.xml" + out.write_text( + f""" + + + +""", + encoding="utf-8", + ) + return out + + +def make_sim_xml(terrain_xml: Path | None, robot_xml: Path, tmp_dir: Path) -> Path: + robot_content = robot_xml.read_text(encoding="utf-8") + mesh_dir = str((robot_xml.parent / "meshes").resolve()).replace("\\", "/") + robot_content = robot_content.replace( + '', + f'', + ) + tmp_dir.mkdir(parents=True, exist_ok=True) + robot_out = tmp_dir / "wheelleg_abs_mesh.xml" + robot_out.write_text(robot_content, encoding="utf-8") + + robot_abs = str(robot_out.resolve()).replace("\\", "/") + if terrain_xml is None: + return make_flat_scene_xml(robot_abs, tmp_dir) + + content = terrain_xml.read_text(encoding="utf-8") + content = content.replace('', f'') + content = content.replace('', f'') + + terrain_dir = terrain_xml.parent + replacements = { + "../height_field.png": str((terrain_dir / "height_field.png").resolve()).replace("\\", "/"), + "../unitree_hfield.png": str((terrain_dir / "unitree_hfield.png").resolve()).replace("\\", "/"), + } + for old, new in replacements.items(): + content = content.replace(old, new) + + out = tmp_dir / "ik_slalom_scene.xml" + out.write_text(content, encoding="utf-8") + return out + + +def rebuild_actuators(spec: mujoco.MjSpec) -> None: + for actuator in list(spec.actuators): + spec.delete(actuator) + + kp_leg = 50.0 + kd_leg = 1.5 + kd_wheel = 1.0 + effort_limit = 17.0 + + for jname in LEG_JOINT_NAMES: + act = spec.add_actuator(name=jname, target=jname) + act.trntype = mujoco.mjtTrn.mjTRN_JOINT + act.dyntype = mujoco.mjtDyn.mjDYN_NONE + act.gaintype = mujoco.mjtGain.mjGAIN_FIXED + act.biastype = mujoco.mjtBias.mjBIAS_AFFINE + act.gainprm[0] = kp_leg + act.biasprm[1] = -kp_leg + act.biasprm[2] = -kd_leg + act.forcelimited = True + act.forcerange[:] = [-effort_limit, effort_limit] + act.ctrllimited = False + + for jname in WHEEL_JOINT_NAMES: + act = spec.add_actuator(name=jname, target=jname) + act.trntype = mujoco.mjtTrn.mjTRN_JOINT + act.dyntype = mujoco.mjtDyn.mjDYN_NONE + act.gaintype = mujoco.mjtGain.mjGAIN_FIXED + act.biastype = mujoco.mjtBias.mjBIAS_AFFINE + act.gainprm[0] = kd_wheel + act.biasprm[2] = -kd_wheel + act.forcelimited = True + act.forcerange[:] = [-effort_limit, effort_limit] + act.ctrllimited = False + + +@dataclass(frozen=True) +class ModelIds: + qpos: np.ndarray + qvel: np.ndarray + ctrl: np.ndarray + wheel_body: np.ndarray + wheel_geom: np.ndarray + + +@dataclass +class SensorFrame: + time: float + base_pos: np.ndarray + quat_wxyz: np.ndarray + rpy: np.ndarray + gyro: np.ndarray + projected_gravity: np.ndarray + joint_pos: np.ndarray + joint_vel: np.ndarray + wheel_vel: np.ndarray + + +def name_id(model: mujoco.MjModel, obj_type: mujoco.mjtObj, name: str) -> int: + idx = mujoco.mj_name2id(model, obj_type, name) + if idx < 0: + raise RuntimeError(f"MuJoCo object not found: {name}") + return idx + + +def build_model(args: argparse.Namespace, tmp_dir: Path) -> tuple[mujoco.MjModel, mujoco.MjData, ModelIds]: + scene_xml = make_sim_xml(args.terrain_xml, args.robot_xml, tmp_dir) + + old_cwd = Path.cwd() + os.chdir(str(args.robot_xml.parent)) + try: + spec = mujoco.MjSpec.from_file(str(scene_xml)) + rebuild_actuators(spec) + model = spec.compile() + finally: + os.chdir(str(old_cwd)) + + data = mujoco.MjData(model) + qpos_ids = np.array( + [model.jnt_qposadr[name_id(model, mujoco.mjtObj.mjOBJ_JOINT, n)] for n in ALL_JOINT_NAMES], + dtype=np.int32, + ) + qvel_ids = np.array( + [model.jnt_dofadr[name_id(model, mujoco.mjtObj.mjOBJ_JOINT, n)] for n in ALL_JOINT_NAMES], + dtype=np.int32, + ) + ctrl_ids = np.array( + [name_id(model, mujoco.mjtObj.mjOBJ_ACTUATOR, n) for n in ALL_JOINT_NAMES], + dtype=np.int32, + ) + wheel_body_ids = np.array( + [name_id(model, mujoco.mjtObj.mjOBJ_BODY, n) for n in WHEEL_BODY_NAMES], + dtype=np.int32, + ) + + wheel_geom_ids: list[int] = [] + for body_id in wheel_body_ids: + for geom_id in range(model.ngeom): + if model.geom_bodyid[geom_id] == body_id and model.geom_type[geom_id] == mujoco.mjtGeom.mjGEOM_CYLINDER: + wheel_geom_ids.append(geom_id) + break + else: + raise RuntimeError(f"No cylinder collision geom found for body id {body_id}") + + return model, data, ModelIds(qpos_ids, qvel_ids, ctrl_ids, wheel_body_ids, np.array(wheel_geom_ids)) + + +def reset_robot(model: mujoco.MjModel, data: mujoco.MjData, ids: ModelIds, args: argparse.Namespace) -> np.ndarray: + default_dof_pos = nominal_dof_pos(args) + data.qpos[:3] = [args.start_x, args.start_y, args.start_z] + data.qpos[3:7] = [1.0, 0.0, 0.0, 0.0] + data.qpos[ids.qpos] = default_dof_pos + data.qvel[:] = 0.0 + data.ctrl[ids.ctrl[:12]] = default_dof_pos[:12] + data.ctrl[ids.ctrl[12:]] = 0.0 + mujoco.mj_forward(model, data) + + settle_steps = int(round(args.settle / model.opt.timestep)) + for _ in range(settle_steps): + data.ctrl[ids.ctrl[:12]] = default_dof_pos[:12] + data.ctrl[ids.ctrl[12:]] = 0.0 + mujoco.mj_step(model, data) + return default_dof_pos + + +def read_sensors(model: mujoco.MjModel, data: mujoco.MjData, ids: ModelIds) -> SensorFrame: + del model + quat = data.qpos[3:7].copy() + rpy = np.array(quat_to_euler_wxyz(quat), dtype=np.float64) + joint_pos = data.qpos[ids.qpos].copy() + joint_vel = data.qvel[ids.qvel].copy() + return SensorFrame( + time=float(data.time), + base_pos=data.qpos[:3].copy(), + quat_wxyz=quat, + rpy=rpy, + gyro=data.qvel[3:6].copy(), + projected_gravity=get_gravity_orientation(quat), + joint_pos=joint_pos, + joint_vel=joint_vel, + wheel_vel=joint_vel[12:].copy(), + ) + + +@dataclass(frozen=True) +class WheelGeometry: + radius: float + track_width: float + wheel_y: np.ndarray + + +def infer_wheel_geometry(model: mujoco.MjModel, data: mujoco.MjData, ids: ModelIds) -> WheelGeometry: + radius_values = model.geom_size[ids.wheel_geom, 0] + radius = float(np.mean(radius_values)) + wheel_y = data.xipos[ids.wheel_body, 1].copy() + left_y = wheel_y[[0, 2]] + right_y = wheel_y[[1, 3]] + track = float(np.mean(left_y) - np.mean(right_y)) + if radius <= 0.0 or track <= 0.0: + raise RuntimeError(f"Invalid wheel geometry: radius={radius}, track={track}") + return WheelGeometry(radius=radius, track_width=track, wheel_y=wheel_y) + + +@dataclass +class IkCommand: + linear_x: float + yaw_rate: float + target_index: int = -1 + target_distance: float = 0.0 + + +class DifferentialWheelIk: + def __init__( + self, + geometry: WheelGeometry, + max_wheel_speed: float, + wheel_signs: np.ndarray, + yaw_wheel_gain: float, + args: argparse.Namespace, + ) -> None: + self.geometry = geometry + self.max_wheel_speed = max_wheel_speed + self.wheel_signs = wheel_signs.astype(np.float64) + self.yaw_wheel_gain = yaw_wheel_gain + self.args = args + + def solve(self, cmd: IkCommand, sensor: SensorFrame | None = None) -> np.ndarray: + half_track = 0.5 * self.geometry.track_width + yaw_rate = cmd.yaw_rate + if sensor is not None: + yaw_rate += self.args.yaw_rate_kp * (cmd.yaw_rate - float(sensor.gyro[2])) + + if self.args.wheel_model == "direct": + linear_wheel = self.args.linear_wheel_gain * cmd.linear_x + yaw_wheel = self.args.direct_yaw_wheel_gain * yaw_rate + else: + linear_wheel = cmd.linear_x / self.geometry.radius + yaw_wheel = self.yaw_wheel_gain * yaw_rate * half_track / self.geometry.radius + yaw_wheel = float(np.clip(yaw_wheel, -self.args.max_yaw_wheel_speed, self.args.max_yaw_wheel_speed)) + left = linear_wheel - yaw_wheel + right = linear_wheel + yaw_wheel + wheel = np.array([left, right, left, right], dtype=np.float64) + wheel = np.clip(wheel, -self.max_wheel_speed, self.max_wheel_speed) + return wheel * self.wheel_signs + + +class LegStanceIk: + """Numerical wheel-center IK for keeping the rough RL stance level.""" + + def __init__(self, model: mujoco.MjModel, data: mujoco.MjData, ids: ModelIds, args: argparse.Namespace) -> None: + self.model = model + self.ids = ids + self.args = args + self.shadow = mujoco.MjData(model) + self.jacp = np.zeros((3, model.nv), dtype=np.float64) + self.jacr = np.zeros((3, model.nv), dtype=np.float64) + self.last_target = ROUGH_DEFAULT_DOF_POS[:12].copy() + + self.leg_qpos = [ids.qpos[i * 3 : i * 3 + 3] for i in range(4)] + self.leg_qvel = [ids.qvel[i * 3 : i * 3 + 3] for i in range(4)] + self.leg_joint_ids = [ + [name_id(model, mujoco.mjtObj.mjOBJ_JOINT, LEG_JOINT_NAMES[i * 3 + j]) for j in range(3)] + for i in range(4) + ] + self.joint_ranges = [ + np.array([model.jnt_range[jid].copy() for jid in leg], dtype=np.float64) + for leg in self.leg_joint_ids + ] + + mujoco.mj_forward(model, data) + base_pos = data.qpos[:3].copy() + base_rot = quat_to_mat_wxyz(data.qpos[3:7]) + self.nominal_body_wheel = (base_rot.T @ (data.xipos[ids.wheel_body] - base_pos).T).T + + def compute(self, data: mujoco.MjData, sensor: SensorFrame) -> np.ndarray: + current_rot = quat_to_mat_wxyz(sensor.quat_wxyz) + level_rot = quat_to_mat_wxyz(yaw_to_quat_wxyz(float(sensor.rpy[2]))) + base_targets = (current_rot @ self.nominal_body_wheel.T).T + level_targets = (level_rot @ self.nominal_body_wheel.T).T + target_world = sensor.base_pos + base_targets + self.args.posture_gain * (level_targets - base_targets) + + self.shadow.qpos[:] = data.qpos + self.shadow.qvel[:] = 0.0 + mujoco.mj_forward(self.model, self.shadow) + + damping = self.args.leg_ik_damping + for _ in range(self.args.leg_ik_iterations): + for leg_idx, body_id in enumerate(self.ids.wheel_body): + err = target_world[leg_idx] - self.shadow.xipos[body_id] + if float(np.linalg.norm(err)) < 1e-4: + continue + + self.jacp.fill(0.0) + self.jacr.fill(0.0) + mujoco.mj_jacBody(self.model, self.shadow, self.jacp, self.jacr, int(body_id)) + cols = self.leg_qvel[leg_idx] + j_leg = self.jacp[:, cols] + lhs = j_leg @ j_leg.T + (damping * damping) * np.eye(3) + dq = j_leg.T @ np.linalg.solve(lhs, err) + dq = np.clip(dq, -self.args.leg_ik_step, self.args.leg_ik_step) + + qpos_ids = self.leg_qpos[leg_idx] + self.shadow.qpos[qpos_ids] += dq + ranges = self.joint_ranges[leg_idx] + self.shadow.qpos[qpos_ids] = np.clip(self.shadow.qpos[qpos_ids], ranges[:, 0], ranges[:, 1]) + mujoco.mj_forward(self.model, self.shadow) + + raw_target = self.shadow.qpos[self.ids.qpos[:12]].copy() + offset = np.clip( + raw_target - ROUGH_DEFAULT_DOF_POS[:12], + -self.args.max_leg_offset, + self.args.max_leg_offset, + ) + raw_target = ROUGH_DEFAULT_DOF_POS[:12] + offset + + max_delta = self.args.leg_target_rate + filtered = self.last_target + np.clip(raw_target - self.last_target, -max_delta, max_delta) + alpha = self.args.leg_target_filter + filtered = (1.0 - alpha) * self.last_target + alpha * filtered + self.last_target = filtered.copy() + return filtered + + +class TablePostureController: + def __init__(self, args: argparse.Namespace, initial_target: np.ndarray) -> None: + self.args = args + self.target = initial_target[:12].copy() + + def compute(self, sensor: SensorFrame) -> np.ndarray: + if self.args.posture == "rough": + raw = ROUGH_DEFAULT_DOF_POS[:12].copy() + elif self.args.posture == "custom": + raw = nominal_dof_pos(self.args)[:12].copy() + else: + pose = table_pose_for_height(self.args.body_height) + raw = pose[:12].copy() + + if self.args.imu_posture: + roll_corr = -self.args.roll_comp_gain * float(sensor.rpy[0]) + pitch_corr = -self.args.pitch_comp_gain * float(sensor.rpy[1]) + for i, side in enumerate((1.0, -1.0, 1.0, -1.0)): + raw[i * 3] = np.clip(raw[i * 3] + side * roll_corr, -0.5, 0.5) + raw[i * 3 + 1] = np.clip(raw[i * 3 + 1] + pitch_corr, -1.0, 2.5) + raw[i * 3 + 2] = np.clip(raw[i * 3 + 2], -2.65, -0.3) + + if self.args.encoder_posture_kp > 0.0: + encoder_err = self.target - sensor.joint_pos[:12] + raw += np.clip( + self.args.encoder_posture_kp * encoder_err, + -self.args.encoder_posture_max, + self.args.encoder_posture_max, + ) + + max_delta = self.args.leg_target_rate + raw = self.target + np.clip(raw - self.target, -max_delta, max_delta) + alpha = self.args.leg_target_filter + self.target = (1.0 - alpha) * self.target + alpha * raw + return self.target.copy() + + +def sensor_command_scale(sensor: SensorFrame, leg_target: np.ndarray, args: argparse.Namespace) -> float: + scale = 1.0 + if args.encoder_guard: + leg_error = float(np.max(np.abs(sensor.joint_pos[:12] - leg_target))) + if leg_error >= args.encoder_guard_stop: + scale = 0.0 + elif leg_error > args.encoder_guard_start: + span = max(1e-6, args.encoder_guard_stop - args.encoder_guard_start) + scale *= 1.0 - (leg_error - args.encoder_guard_start) / span + + if args.imu_guard: + tilt = math.hypot(float(sensor.rpy[0]), float(sensor.rpy[1])) + start = math.radians(args.imu_guard_start_deg) + stop = math.radians(args.imu_guard_stop_deg) + if tilt >= stop: + scale = 0.0 + elif tilt > start: + scale *= 1.0 - (tilt - start) / max(1e-6, stop - start) + + return float(np.clip(scale, 0.0, 1.0)) + + +class PathFollower: + def __init__( + self, + waypoints: Iterable[tuple[float, float]], + max_speed: float, + max_yaw_rate: float, + arrive_radius: float, + allow_reverse: bool, + ) -> None: + self.waypoints = list(waypoints) + self.idx = 0 + self.max_speed = max_speed + self.max_yaw_rate = max_yaw_rate + self.arrive_radius = arrive_radius + self.allow_reverse = allow_reverse + + @property + def done(self) -> bool: + return self.idx >= len(self.waypoints) + + def update(self, sensor: SensorFrame) -> IkCommand: + if self.done: + return IkCommand(0.0, 0.0, self.idx, 0.0) + + x, y = sensor.base_pos[:2] + target = self.waypoints[self.idx] + dx = target[0] - float(x) + dy = target[1] - float(y) + dist = math.hypot(dx, dy) + while dist < self.arrive_radius and self.idx < len(self.waypoints) - 1: + self.idx += 1 + target = self.waypoints[self.idx] + dx = target[0] - float(x) + dy = target[1] - float(y) + dist = math.hypot(dx, dy) + if dist < self.arrive_radius and self.idx == len(self.waypoints) - 1: + self.idx = len(self.waypoints) + return IkCommand(0.0, 0.0, self.idx, dist) + + desired_yaw = math.atan2(dy, dx) + yaw_error = wrap_pi(desired_yaw - float(sensor.rpy[2])) + direction = 1.0 + if self.allow_reverse and abs(yaw_error) > math.pi * 0.5: + desired_yaw = wrap_pi(desired_yaw + math.pi) + yaw_error = wrap_pi(desired_yaw - float(sensor.rpy[2])) + direction = -1.0 + yaw_rate = float(np.clip(2.8 * yaw_error, -self.max_yaw_rate, self.max_yaw_rate)) + + speed = min(self.max_speed, 1.2 * dist) + speed *= max(0.15, math.cos(min(abs(yaw_error), math.pi * 0.5))) + speed *= direction + return IkCommand(speed, yaw_rate, self.idx, dist) + + +class PurePursuitFollower: + def __init__(self, waypoints: Iterable[tuple[float, float]], args: argparse.Namespace) -> None: + self.points = np.array(list(waypoints), dtype=np.float64) + self.args = args + self.progress = 0 + self.closest_distance = float("inf") + self.finished = False + if len(self.points) < 2: + raise ValueError("PurePursuitFollower needs at least two points") + seg = self.points[1:] - self.points[:-1] + self.seg_len = np.linalg.norm(seg, axis=1) + self.cum = np.concatenate([[0.0], np.cumsum(self.seg_len)]) + self.total_len = float(self.cum[-1]) + + @property + def done(self) -> bool: + return self.finished + + @property + def idx(self) -> int: + return int(self.progress) + + def _project_s(self, p: np.ndarray) -> tuple[float, float]: + best_s = 0.0 + best_d = float("inf") + start_i = max(0, self.progress - 1) + end_i = min(len(self.points) - 1, self.progress + self.args.pure_search_segments) + for i in range(start_i, end_i): + a = self.points[i] + b = self.points[i + 1] + ab = b - a + denom = float(np.dot(ab, ab)) + if denom < 1e-9: + continue + t = float(np.clip(np.dot(p - a, ab) / denom, 0.0, 1.0)) + proj = a + t * ab + d = float(np.linalg.norm(p - proj)) + if d < best_d: + best_d = d + best_s = float(self.cum[i] + t * self.seg_len[i]) + self.progress = max(self.progress, i) + return best_s, best_d + + def _point_at_s(self, s: float) -> np.ndarray: + s = float(np.clip(s, 0.0, self.total_len)) + i = int(np.searchsorted(self.cum, s, side="right") - 1) + i = int(np.clip(i, 0, len(self.seg_len) - 1)) + local = 0.0 if self.seg_len[i] < 1e-9 else (s - self.cum[i]) / self.seg_len[i] + return self.points[i] + local * (self.points[i + 1] - self.points[i]) + + def update(self, sensor: SensorFrame) -> IkCommand: + p = sensor.base_pos[:2].astype(np.float64) + s, dist_path = self._project_s(p) + self.closest_distance = min(self.closest_distance, dist_path) + goal_dist = float(np.linalg.norm(self.points[-1] - p)) + if self.total_len - s < self.args.arrive_radius and goal_dist < self.args.arrive_radius: + self.finished = True + return IkCommand(0.0, 0.0, len(self.points) - 1, goal_dist) + + lookahead = np.clip( + self.args.lookahead_base + self.args.lookahead_time * abs(self.args.speed), + self.args.lookahead_min, + self.args.lookahead_max, + ) + target = self._point_at_s(s + lookahead) + dx, dy = target - p + yaw = float(sensor.rpy[2]) + c, sn = math.cos(yaw), math.sin(yaw) + x_body = c * dx + sn * dy + y_body = -sn * dx + c * dy + ld2 = max(lookahead * lookahead, 1e-6) + curvature = 2.0 * y_body / ld2 + + abs_curv = abs(curvature) + if abs_curv > 1e-6: + v_curve = math.sqrt(max(self.args.max_lat_acc, 1e-6) / abs_curv) + else: + v_curve = self.args.speed + speed = min(self.args.speed, v_curve) + speed = max(self.args.min_path_speed, speed) + if x_body < -0.05 and self.args.allow_reverse: + speed = -speed + yaw_rate = float(np.clip(speed * curvature, -self.args.max_yaw_rate, self.args.max_yaw_rate)) + return IkCommand(float(speed), yaw_rate, self.progress, dist_path) + + +def args_sign(x: float) -> float: + return -1.0 if x < -0.05 else 1.0 + + +def test_command(test_name: str, elapsed: float, sensor: SensorFrame, follower: PathFollower | None, args: argparse.Namespace) -> IkCommand: + if test_name == "forward": + return IkCommand(args.speed, 0.0) + if test_name == "yaw": + return IkCommand(0.0, args.yaw_rate) + if test_name == "arc": + return IkCommand(args.speed, args.yaw_rate) + if follower is None: + raise RuntimeError(f"Test {test_name} needs a path follower") + del elapsed + return follower.update(sensor) + + +def waypoints_for_test(test_name: str, args: argparse.Namespace) -> list[tuple[float, float]]: + sx = float(args.start_x) + sy = float(args.start_y) + if test_name == "waypoint": + return [ + (sx + 0.3, sy), + (sx + 0.65, sy), + (sx + 1.0, sy), + ] + if test_name == "slalom": + local = [ + (0.0, 0.0), + (0.8, -0.5), + (1.9, -0.95), + (2.8, -1.0), + (2.85, -1.8), + (2.75, -2.05), + (1.05, -2.0), + (0.9, -2.8), + (1.05, -3.0), + (2.75, -3.0), + (2.75, -3.72), + (2.25, -3.85), + (1.4, -4.25), + (1.4, -2.55), + (0.45, -3.42), + (0.0, 0.0), + ] + return [(sx + x, sy + y) for x, y in local] + return [] + + +@dataclass +class Metrics: + start_pos: np.ndarray + start_yaw: float + start_time: float = 0.0 + max_abs_roll: float = 0.0 + max_abs_pitch: float = 0.0 + max_tilt: float = 0.0 + max_leg_error: float = 0.0 + max_wheel_air_height: float = -1e9 + min_wheel_air_height: float = 1e9 + wheel_speed_error_sum: float = 0.0 + wheel_speed_error_count: int = 0 + max_wheel_speed: float = 0.0 + max_gyro_z: float = 0.0 + body_vx_sum: float = 0.0 + gyro_z_sum: float = 0.0 + yaw_unwrapped: float = 0.0 + velocity_count: int = 0 + last_yaw: float = field(init=False) + + def __post_init__(self) -> None: + self.last_yaw = float(self.start_yaw) + + def update( + self, + sensor: SensorFrame, + model: mujoco.MjModel, + data: mujoco.MjData, + ids: ModelIds, + geometry: WheelGeometry, + wheel_target: np.ndarray, + leg_target: np.ndarray, + ) -> None: + roll, pitch, _ = sensor.rpy + self.max_abs_roll = max(self.max_abs_roll, abs(float(roll))) + self.max_abs_pitch = max(self.max_abs_pitch, abs(float(pitch))) + self.max_tilt = max(self.max_tilt, math.hypot(float(roll), float(pitch))) + self.max_leg_error = max( + self.max_leg_error, + float(np.max(np.abs(sensor.joint_pos[:12] - leg_target))), + ) + + wheel_center_z = data.xipos[ids.wheel_body, 2] + floor_air_height = wheel_center_z - geometry.radius + self.max_wheel_air_height = max(self.max_wheel_air_height, float(np.max(floor_air_height))) + self.min_wheel_air_height = min(self.min_wheel_air_height, float(np.min(floor_air_height))) + + actual = sensor.wheel_vel + self.wheel_speed_error_sum += float(np.mean(np.abs(actual - wheel_target))) + self.wheel_speed_error_count += 1 + self.max_wheel_speed = max(self.max_wheel_speed, float(np.max(np.abs(actual)))) + self.max_gyro_z = max(self.max_gyro_z, abs(float(sensor.gyro[2]))) + rot = quat_to_mat_wxyz(sensor.quat_wxyz) + body_vel = rot.T @ data.qvel[:3] + yaw_now = float(sensor.rpy[2]) + self.yaw_unwrapped += wrap_pi(yaw_now - self.last_yaw) + self.last_yaw = yaw_now + self.body_vx_sum += float(body_vel[0]) + self.gyro_z_sum += float(sensor.gyro[2]) + self.velocity_count += 1 + del model + + def as_dict(self, sensor: SensorFrame, reached: int, total: int, reason: str, success: bool) -> dict: + yaw_change = wrap_pi(float(sensor.rpy[2]) - self.start_yaw) + delta = sensor.base_pos[:2] - self.start_pos[:2] + mean_wheel_err = self.wheel_speed_error_sum / max(1, self.wheel_speed_error_count) + mean_body_vx = self.body_vx_sum / max(1, self.velocity_count) + elapsed = max(1e-6, float(sensor.time) - float(self.start_time)) + mean_yaw_rate = self.yaw_unwrapped / elapsed + mean_gyro_z = self.gyro_z_sum / max(1, self.velocity_count) + return { + "success": bool(success), + "reason": reason, + "sim_time": round(sensor.time, 4), + "start_xy": [round(float(v), 4) for v in self.start_pos[:2]], + "final_xy": [round(float(v), 4) for v in sensor.base_pos[:2]], + "delta_xy": [round(float(v), 4) for v in delta], + "final_z": round(float(sensor.base_pos[2]), 4), + "yaw_change_deg": round(math.degrees(yaw_change), 3), + "final_yaw_deg": round(math.degrees(float(sensor.rpy[2])), 3), + "max_roll_deg": round(math.degrees(self.max_abs_roll), 3), + "max_pitch_deg": round(math.degrees(self.max_abs_pitch), 3), + "max_tilt_deg": round(math.degrees(self.max_tilt), 3), + "max_leg_encoder_error_rad": round(self.max_leg_error, 5), + "mean_wheel_speed_error_rad_s": round(mean_wheel_err, 5), + "max_wheel_speed_rad_s": round(self.max_wheel_speed, 5), + "mean_body_vx_mps": round(mean_body_vx, 5), + "mean_yaw_rate_rad_s": round(mean_yaw_rate, 5), + "mean_imu_gyro_z_rad_s": round(mean_gyro_z, 5), + "min_wheel_air_height_m": round(self.min_wheel_air_height, 5), + "max_wheel_air_height_m": round(self.max_wheel_air_height, 5), + "max_imu_gyro_z_rad_s": round(self.max_gyro_z, 5), + "reached_waypoints": int(reached), + "total_waypoints": int(total), + } + + +class InteractivePanel: + def __init__(self, args: argparse.Namespace) -> None: + try: + import tkinter as tk + from tkinter import ttk + except ImportError as exc: + raise RuntimeError("Interactive mode needs tkinter, but it is not available in this Python.") from exc + + self.tk = tk + self.alive = True + self.last_update = 0.0 + self.root = tk.Tk() + self.root.title("Wheel-Leg IK Control") + self.root.protocol("WM_DELETE_WINDOW", self.close) + + self.vx = tk.DoubleVar(value=float(args.speed)) + self.yaw = tk.DoubleVar(value=float(args.yaw_rate)) + self.status_vars: dict[str, object] = {} + + main = ttk.Frame(self.root, padding=10) + main.grid(row=0, column=0, sticky="nsew") + self.root.columnconfigure(0, weight=1) + main.columnconfigure(1, weight=1) + + self._add_slider(main, 0, "linear x m/s", self.vx, args.interactive_vx_limit) + self._add_slider(main, 1, "yaw z rad/s", self.yaw, args.interactive_yaw_limit) + + buttons = ttk.Frame(main) + buttons.grid(row=2, column=0, columnspan=3, sticky="ew", pady=(6, 10)) + ttk.Button(buttons, text="Zero", command=self.zero).pack(side="left", padx=(0, 6)) + ttk.Button(buttons, text="Quit", command=self.close).pack(side="left") + + metrics = ttk.LabelFrame(main, text="State", padding=8) + metrics.grid(row=3, column=0, columnspan=3, sticky="nsew") + metrics.columnconfigure(1, weight=1) + for row, key in enumerate( + [ + "cmd", + "pos", + "rpy", + "body_vel", + "imu", + "wheel", + "wheel_air", + "leg", + "limits", + ] + ): + ttk.Label(metrics, text=key).grid(row=row, column=0, sticky="w", padx=(0, 8)) + var = tk.StringVar(value="-") + self.status_vars[key] = var + ttk.Label(metrics, textvariable=var, width=48).grid(row=row, column=1, sticky="w") + + def _add_slider(self, parent: object, row: int, label: str, var: object, limit: float) -> None: + ttk = __import__("tkinter.ttk").ttk + ttk.Label(parent, text=label).grid(row=row, column=0, sticky="w") + scale = ttk.Scale(parent, from_=-limit, to=limit, variable=var, orient="horizontal") + scale.grid(row=row, column=1, sticky="ew", padx=8) + value = ttk.Label(parent, width=8) + value.grid(row=row, column=2, sticky="e") + + def refresh_value(*_: object) -> None: + value.configure(text=f"{float(var.get()): .2f}") + + var.trace_add("write", refresh_value) + refresh_value() + + def zero(self) -> None: + self.vx.set(0.0) + self.yaw.set(0.0) + + def close(self) -> None: + self.alive = False + + def command(self) -> IkCommand: + return IkCommand(float(self.vx.get()), float(self.yaw.get())) + + def update_events(self) -> bool: + if not self.alive: + return False + try: + self.root.update_idletasks() + self.root.update() + except self.tk.TclError: + self.alive = False + return self.alive + + def update_metrics( + self, + sensor: SensorFrame, + data: mujoco.MjData, + ids: ModelIds, + geometry: WheelGeometry, + wheel_target: np.ndarray, + leg_target: np.ndarray, + metrics: Metrics, + args: argparse.Namespace, + ) -> None: + if sensor.time - self.last_update < args.ui_update_dt: + return + self.last_update = sensor.time + + rot = quat_to_mat_wxyz(sensor.quat_wxyz) + body_vel = rot.T @ data.qvel[:3] + wheel_air = data.xipos[ids.wheel_body, 2] - geometry.radius + wheel_err = float(np.mean(np.abs(sensor.wheel_vel - wheel_target))) + leg_err = float(np.max(np.abs(sensor.joint_pos[:12] - leg_target))) + tilt = math.hypot(float(sensor.rpy[0]), float(sensor.rpy[1])) + + values = { + "cmd": f"x={self.vx.get(): .2f} m/s, yaw={self.yaw.get(): .2f} rad/s", + "pos": f"x={sensor.base_pos[0]: .3f}, y={sensor.base_pos[1]: .3f}, z={sensor.base_pos[2]: .3f}", + "rpy": ( + f"roll={math.degrees(sensor.rpy[0]): .2f}, " + f"pitch={math.degrees(sensor.rpy[1]): .2f}, " + f"yaw={math.degrees(sensor.rpy[2]): .2f} deg" + ), + "body_vel": f"vx={body_vel[0]: .3f}, vy={body_vel[1]: .3f}, vz={body_vel[2]: .3f} m/s", + "imu": f"gyro_z={sensor.gyro[2]: .3f} rad/s, tilt={math.degrees(tilt): .2f} deg", + "wheel": ( + f"target=[{', '.join(f'{v: .1f}' for v in wheel_target)}], " + f"err={wheel_err: .3f} rad/s" + ), + "wheel_air": f"min={np.min(wheel_air): .4f}, max={np.max(wheel_air): .4f} m", + "leg": f"encoder_err={leg_err: .4f} rad, max={metrics.max_leg_error: .4f} rad", + "limits": ( + f"max_tilt={math.degrees(metrics.max_tilt): .2f} deg, " + f"max_wheel_speed={metrics.max_wheel_speed: .2f} rad/s" + ), + } + for key, value in values.items(): + self.status_vars[key].set(value) + + def destroy(self) -> None: + try: + self.root.destroy() + except self.tk.TclError: + pass + + +def run_one(test_name: str, args: argparse.Namespace) -> dict: + tmp_root = Path(args.tmp_dir) if args.tmp_dir else Path(tempfile.gettempdir()) + with tempfile.TemporaryDirectory(prefix="ik_slalom_", dir=str(tmp_root)) as tmp: + model, data, ids = build_model(args, Path(tmp)) + default_dof_pos = reset_robot(model, data, ids, args) + geometry = infer_wheel_geometry(model, data, ids) + wheel_signs = np.array(args.wheel_signs, dtype=np.float64) + ik = DifferentialWheelIk(geometry, args.max_wheel_speed, wheel_signs, args.yaw_wheel_gain, args) + leg_ik = LegStanceIk(model, data, ids, args) if args.leg_ik else None + posture = TablePostureController(args, default_dof_pos) if leg_ik is None else None + path = waypoints_for_test(test_name, args) + if path and args.path_follower == "pure": + follower = PurePursuitFollower(path, args) + else: + follower = PathFollower(path, args.speed, args.max_yaw_rate, args.arrive_radius, args.allow_reverse) if path else None + + sensor0 = read_sensors(model, data, ids) + metrics = Metrics( + start_pos=sensor0.base_pos.copy(), + start_yaw=float(sensor0.rpy[2]), + start_time=float(sensor0.time), + ) + + control_steps = max(1, int(round(args.control_dt / model.opt.timestep))) + total_steps = int(round(args.duration / model.opt.timestep)) + wheel_target = np.zeros(4, dtype=np.float64) + leg_target = default_dof_pos[:12].copy() + reason = "timeout" + success = False + + viewer = mujoco.viewer.launch_passive(model, data) if args.viewer else None + panel = InteractivePanel(args) if args.interactive else None + try: + for step in range(total_steps): + if panel is not None and not panel.update_events(): + reason = "interactive panel closed" + break + if viewer is not None and not viewer.is_running(): + reason = "viewer closed" + break + + if step % control_steps == 0: + sensor = read_sensors(model, data, ids) + cmd = panel.command() if panel is not None else test_command(test_name, step * model.opt.timestep, sensor, follower, args) + raw_wheel_target = ik.solve(cmd, sensor) + if leg_ik is not None: + leg_target = leg_ik.compute(data, sensor) + elif posture is not None: + leg_target = posture.compute(sensor) + raw_wheel_target *= sensor_command_scale(sensor, leg_target, args) + max_wheel_delta = args.wheel_accel_limit * args.control_dt + wheel_target = wheel_target + np.clip(raw_wheel_target - wheel_target, -max_wheel_delta, max_wheel_delta) + data.ctrl[ids.ctrl[:12]] = leg_target + data.ctrl[ids.ctrl[12:]] = wheel_target + + if follower is not None and follower.done: + reason = "path complete" + success = True + break + + mujoco.mj_step(model, data) + if step % control_steps == 0: + sensor = read_sensors(model, data, ids) + metrics.update(sensor, model, data, ids, geometry, wheel_target, leg_target) + if panel is not None: + panel.update_metrics(sensor, data, ids, geometry, wheel_target, leg_target, metrics, args) + if viewer is not None: + viewer.sync() + + if viewer is not None and args.realtime: + time.sleep(model.opt.timestep * args.realtime_scale) + finally: + if panel is not None: + panel.destroy() + if viewer is not None: + viewer.close() + + final_sensor = read_sensors(model, data, ids) + reached = follower.idx if follower is not None else 0 + total = len(path) + + stable = ( + metrics.max_tilt < math.radians(args.max_tilt_deg) + and metrics.max_leg_error < args.max_leg_error + and metrics.max_wheel_air_height < args.max_wheel_air_height + ) + + if args.interactive: + success = stable + reason = reason if reason != "timeout" else "interactive duration elapsed" + elif test_name == "forward": + success = final_sensor.base_pos[0] - metrics.start_pos[0] > max(0.25, 0.35 * args.speed * args.duration) and stable + reason = "forward displacement ok" if success else reason + elif test_name == "yaw": + success = abs(wrap_pi(final_sensor.rpy[2] - metrics.start_yaw)) > max(0.15, 0.14 * abs(args.yaw_rate) * args.duration) and stable + reason = "yaw change ok" if success else reason + elif test_name == "arc": + delta = np.linalg.norm(final_sensor.base_pos[:2] - metrics.start_pos[:2]) + success = ( + delta > max(0.25, 0.25 * args.speed * args.duration) + and abs(wrap_pi(final_sensor.rpy[2] - metrics.start_yaw)) > 0.15 + and stable + ) + reason = "arc displacement and yaw ok" if success else reason + elif test_name in {"waypoint", "slalom"}: + success = follower is not None and follower.done and stable + reason = "path complete" if success else reason + + out = metrics.as_dict(final_sensor, reached, total, reason, success) + out.update( + { + "test": test_name, + "wheel_radius_m": round(geometry.radius, 5), + "track_width_m": round(geometry.track_width, 5), + "wheel_body_y_m": [round(float(v), 5) for v in geometry.wheel_y], + "wheel_signs": [float(v) for v in wheel_signs], + "wheel_model": args.wheel_model, + "linear_wheel_gain": float(args.linear_wheel_gain), + "direct_yaw_wheel_gain": float(args.direct_yaw_wheel_gain), + "yaw_wheel_gain": float(args.yaw_wheel_gain), + "stable": bool(stable), + "leg_ik": bool(args.leg_ik), + "posture": args.posture, + "body_height": float(args.body_height), + "imu_posture": bool(args.imu_posture), + "yaw_rate_kp": float(args.yaw_rate_kp), + "encoder_posture_kp": float(args.encoder_posture_kp), + "encoder_guard": bool(args.encoder_guard), + "imu_guard": bool(args.imu_guard), + "posture_gain": float(args.posture_gain), + "path_follower": args.path_follower, + "default_pose": ( + "rough_rl" + if args.posture == "rough" + else "custom" + if args.posture == "custom" + else "mujoco_sim_height_table" + ), + } + ) + return out + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--test", choices=("forward", "yaw", "arc", "waypoint", "slalom", "all"), default="forward") + parser.add_argument("--duration", type=float, default=8.0) + parser.add_argument("--settle", type=float, default=1.5) + parser.add_argument("--control-dt", type=float, default=0.02) + parser.add_argument("--speed", type=float, default=0.35) + parser.add_argument("--yaw-rate", type=float, default=0.25) + parser.add_argument("--max-yaw-rate", type=float, default=0.45) + parser.add_argument("--max-wheel-speed", type=float, default=10.0) + parser.add_argument("--wheel-model", choices=("diff", "direct"), default="diff") + parser.add_argument("--linear-wheel-gain", type=float, default=12.5) + parser.add_argument("--direct-yaw-wheel-gain", type=float, default=8.0) + parser.add_argument("--yaw-wheel-gain", type=float, default=2.2) + parser.add_argument("--yaw-rate-kp", type=float, default=0.0) + parser.add_argument("--max-yaw-wheel-speed", type=float, default=1.65) + parser.add_argument("--wheel-accel-limit", type=float, default=28.0) + parser.add_argument("--max-tilt-deg", type=float, default=25.0) + parser.add_argument("--max-leg-error", type=float, default=0.65) + parser.add_argument("--max-wheel-air-height", type=float, default=0.08) + parser.add_argument("--posture", choices=("rough", "table", "custom"), default="rough") + parser.add_argument("--body-height", type=float, default=0.37) + parser.add_argument("--custom-abduction", type=float, default=0.0) + parser.add_argument("--custom-hip", type=float, default=0.55) + parser.add_argument("--custom-knee", type=float, default=-1.30) + parser.add_argument("--imu-posture", action=argparse.BooleanOptionalAction, default=True) + parser.add_argument("--roll-comp-gain", type=float, default=0.35) + parser.add_argument("--pitch-comp-gain", type=float, default=0.35) + parser.add_argument("--encoder-posture-kp", type=float, default=0.15) + parser.add_argument("--encoder-posture-max", type=float, default=0.03) + parser.add_argument("--encoder-guard", action=argparse.BooleanOptionalAction, default=True) + parser.add_argument("--encoder-guard-start", type=float, default=0.28) + parser.add_argument("--encoder-guard-stop", type=float, default=0.65) + parser.add_argument("--imu-guard", action=argparse.BooleanOptionalAction, default=True) + parser.add_argument("--imu-guard-start-deg", type=float, default=12.0) + parser.add_argument("--imu-guard-stop-deg", type=float, default=28.0) + parser.add_argument("--leg-ik", action=argparse.BooleanOptionalAction, default=False) + parser.add_argument("--posture-gain", type=float, default=0.65) + parser.add_argument("--leg-ik-iterations", type=int, default=3) + parser.add_argument("--leg-ik-damping", type=float, default=0.02) + parser.add_argument("--leg-ik-step", type=float, default=0.035) + parser.add_argument("--max-leg-offset", type=float, default=0.28) + parser.add_argument("--leg-target-rate", type=float, default=0.035) + parser.add_argument("--leg-target-filter", type=float, default=0.45) + parser.add_argument("--arrive-radius", type=float, default=0.20) + parser.add_argument("--allow-reverse", action=argparse.BooleanOptionalAction, default=True) + parser.add_argument("--path-follower", choices=("waypoint", "pure"), default="pure") + parser.add_argument("--lookahead-base", type=float, default=0.45) + parser.add_argument("--lookahead-time", type=float, default=0.35) + parser.add_argument("--lookahead-min", type=float, default=0.35) + parser.add_argument("--lookahead-max", type=float, default=0.90) + parser.add_argument("--max-lat-acc", type=float, default=0.45) + parser.add_argument("--min-path-speed", type=float, default=0.25) + parser.add_argument("--pure-search-segments", type=int, default=4) + parser.add_argument("--start-x", type=float, default=0.0) + parser.add_argument("--start-y", type=float, default=0.0) + parser.add_argument("--start-z", type=float, default=0.6) + parser.add_argument( + "--terrain-xml", + type=Path, + default=None, + help="Optional terrain scene XML. Omit it to use a generated flat ground scene.", + ) + parser.add_argument("--robot-xml", type=Path, default=PROJECT_ROOT / "mjcf" / "wheelleg.xml") + parser.add_argument("--tmp-dir", type=Path, default=Path("D:/tmp") if Path("D:/tmp").exists() else None) + parser.add_argument("--interactive", action="store_true", help="Open a live command/metrics panel and drive manually.") + parser.add_argument("--interactive-vx-limit", type=float, default=1.0) + parser.add_argument("--interactive-yaw-limit", type=float, default=1.0) + parser.add_argument("--ui-update-dt", type=float, default=0.10) + parser.add_argument("--viewer", action="store_true", help="Open MuJoCo passive viewer while running the test.") + parser.add_argument("--realtime", action=argparse.BooleanOptionalAction, default=True) + parser.add_argument("--realtime-scale", type=float, default=1.0) + parser.add_argument( + "--wheel-signs", + type=float, + nargs=4, + default=[1.0, 1.0, 1.0, 1.0], + metavar=("FL", "FR", "RL", "RR"), + help="Per-wheel velocity sign multipliers in joint order.", + ) + return parser.parse_args() + + +def main() -> int: + args = parse_args() + if args.interactive: + args.viewer = True + args.duration = max(args.duration, 3600.0) + tests = ["forward", "yaw", "arc", "waypoint", "slalom"] if args.test == "all" else [args.test] + results = [run_one(name, args) for name in tests] + print(json.dumps(results[0] if len(results) == 1 else results, indent=2, ensure_ascii=False)) + return 0 if all(r["success"] for r in results) else 2 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/05_software/train/rc_mjlab/sim2sim/interface/mujoco_io.py b/05_software/train/rc_mjlab/sim2sim/interface/mujoco_io.py index 276aa64..a7447f7 100644 --- a/05_software/train/rc_mjlab/sim2sim/interface/mujoco_io.py +++ b/05_software/train/rc_mjlab/sim2sim/interface/mujoco_io.py @@ -87,9 +87,14 @@ class MuJoCoIO: return out_xml_path def _rebuild_actuators(self, spec): - actuators_to_delete = list(spec.actuators) - for act in actuators_to_delete: - spec.delete(act) + if hasattr(spec, "delete"): + actuators_to_delete = list(spec.actuators) + for act in actuators_to_delete: + spec.delete(act) + else: + actuators_to_delete = list(spec.actuators) + for act in actuators_to_delete: + act.delete() # Keep sim2sim aligned with the training robot config and sim2real runtime: # leg position PD = (50.0, 1.5), wheel velocity damping = 1.0. diff --git a/05_software/train/rc_mjlab/sim2sim/nav_route_sim2sim_check.py b/05_software/train/rc_mjlab/sim2sim/nav_route_sim2sim_check.py new file mode 100644 index 0000000..4425482 --- /dev/null +++ b/05_software/train/rc_mjlab/sim2sim/nav_route_sim2sim_check.py @@ -0,0 +1,2776 @@ +#!/usr/bin/env python3 +"""Batch sim2sim route validation for nav_tools waypoints. + +This script runs the MuJoCo robot with an ONNX locomotion policy and a simple +waypoint follower, then reports whether the route can be completed without +falling or entering avoid-region clearance. + +Example: + uv run python sim2sim/nav_route_sim2sim_check.py \ + --terrain-xml tools/nav_tools/xml/A.xml \ + --points tools/nav_tools/points/points_20260705_174627.json \ + --onnx model_6800.onnx \ + --start-yaw-offset-deg -180 \ + --heading-offset-deg 180 +""" + +from __future__ import annotations + +import argparse +import csv +import json +import math +import os +import pkgutil +import random +import sys +import time +import xml.etree.ElementTree as ET +from collections import deque +from dataclasses import dataclass +from pathlib import Path +from typing import Any + +import mujoco +import mujoco.viewer +import numpy as np +import onnxruntime as ort +import torch + + +PROJECT_ROOT = Path(__file__).resolve().parents[1] +SIM2SIM_DIR = Path(__file__).resolve().parent +if str(SIM2SIM_DIR) not in sys.path: + sys.path.insert(0, str(SIM2SIM_DIR)) +if str(PROJECT_ROOT) not in sys.path: + sys.path.insert(0, str(PROJECT_ROOT)) + +from interface.mujoco_io import MuJoCoIO # noqa: E402 +from policy.policy_runner import PolicyRunner # noqa: E402 +from tools.nav_tools.route_safety_check import ( # noqa: E402 + AvoidRegion, + Waypoint, + default_lateral_footprint_radius, + load_regions, + load_waypoints, + point_in_polygon, + point_segment_distance, +) + + +ACTION_SCALE = np.array( + [0.125, 0.25, 0.25] * 4 + [5.0, 5.0, 5.0, 5.0], + dtype=np.float32, +) +DEPLOY_DEFAULT_DOF_POS = np.array([0.0, 0.550, -1.125] * 4 + [0.0] * 4, dtype=np.float32) +ROBOT_BODY_LENGTH = 0.356 +ROBOT_BODY_WIDTH = 0.235 +ROBOT_BODY_CENTER_X = 0.1518 +ROBOT_ORIGIN_FROM_FRONT = 0.105 +ROBOT_BODY_CENTER_OFFSET_X = ROBOT_ORIGIN_FROM_FRONT - ROBOT_BODY_LENGTH * 0.5 +ROBOT_WHEEL_VIS_LENGTH = 0.16 +ROBOT_WHEEL_VIS_WIDTH = 0.055 +ROBOT_WHEEL_POSITIONS = { + "fl": ((0.32826 + 0.06389) - ROBOT_BODY_CENTER_X, 0.066172 - 0.027344, 0.1035, 0.014699, 0.04074, 0.0), + "fr": ((0.32826 + 0.06389) - ROBOT_BODY_CENTER_X, -0.065853 + 0.027311, -0.1035, -0.018447, -0.040735, -0.00075079), + "rl": ((-0.024743 - 0.06389) - ROBOT_BODY_CENTER_X, 0.066141 - 0.027309, 0.099459, 0.012475, 0.040737, 0.0), + "rr": ((-0.024743 - 0.06389) - ROBOT_BODY_CENTER_X, -0.065884 + 0.027341, -0.099408, -0.012435, -0.040737, -0.00075079), +} + + +@dataclass +class SimConfig: + control_hz: float = 50.0 + max_vx: float = 1.2 + max_vy: float = 0.0 + max_wz: float = 0.8 + kp_dist: float = 0.8 + kp_yaw: float = 1.8 + yaw_stop_threshold_deg: float = 45.0 + turn_in_place_enter_deg: float = 70.0 + turn_in_place_exit_deg: float = 18.0 + turn_in_place_max_wz: float = 0.8 + final_align_max_wz: float = 0.45 + final_align_kp_scale: float = 0.6 + waypoint_timeout_s: float = 30.0 + max_total_time_s: float = 420.0 + stable_cycles: int = 2 + lookahead_m: float = 0.45 + min_cmd_vx: float = 0.08 + creep_cmd_vx: float = 0.04 + cmd_vx_scale: float = 1.0 + stuck_timeout_s: float = 4.0 + stuck_progress_m: float = 0.08 + recovery_duration_s: float = 2.0 + max_recoveries: int = 4 + slalom_script_enabled: bool = True + slalom_script_start_tolerance: float = 0.10 + slalom_script_pos_tolerance: float = 0.08 + slalom_script_yaw_tolerance_deg: float = 5.0 + slalom_script_stable_cycles: int = 1 + slalom_script_rotate_steps_enabled: bool = False + slalom_script_final_rotate_enabled: bool = False + slalom_script_require_yaw_at_step: bool = False + slalom_script_kp_dist: float = 1.0 + slalom_script_kp_yaw: float = 1.6 + slalom_script_max_vx: float = 0.60 + slalom_script_max_vy: float = 0.50 + slalom_script_max_wz: float = 0.50 + slalom_script_min_cmd_linear: float = 0.2 + slalom_script_min_cmd_angular: float = 0.0 + slalom_script_min_cmd_epsilon: float = 0.05 + slalom_script_min_step_distance: float = 0.02 + slalom_script_yaw_gate_deg: float = 25.0 + slalom_script_drive_yaw_source: str = "segment" + slalom_script_curvature_speed_enabled: bool = True + slalom_script_curvature_min_scale: float = 0.55 + + +@dataclass(frozen=True) +class SlalomScriptStep: + kind: str + start_index: int + end_index: int + target_x: float + target_y: float + target_yaw: float | None + pos_tolerance: float | None = None + forward: float = 0.0 + left: float = 0.0 + + +@dataclass +class SimResult: + success: bool + reason: str + sim_time: float + reached_count: int + waypoint_count: int + min_clearance: float + min_margin: float + min_clearance_region: str + min_clearance_wp: str + max_roll_deg: float + max_pitch_deg: float + max_tilt_deg: float + samples: int + wall_time: float + real_time_factor: float + + +@dataclass +class RouteSnapshot: + time: float + qpos: np.ndarray + qvel: np.ndarray + ctrl: np.ndarray + follower_index: int + follower_turn_in_place: bool + follower_stable_count: int + follower_wp_start_time: float + follower_best_dist: float | None + follower_last_progress_time: float | None + follower_recovery_until: float | None + follower_recovery_count: int | None + follower_recovery_turn_sign: float | None + + +class OnnxPolicy: + def __init__(self, path: Path) -> None: + providers = ["CPUExecutionProvider"] + self.session = ort.InferenceSession(str(path), providers=providers) + self.input_name = self.session.get_inputs()[0].name + self.output_name = self.session.get_outputs()[0].name + shape = self.session.get_inputs()[0].shape + dim = shape[1] if len(shape) >= 2 else 53 + self.obs_dim = 53 if isinstance(dim, str) else int(dim) + self.last_actions = np.zeros(16, dtype=np.float32) + + def reset(self) -> None: + self.last_actions[:] = 0.0 + + def step(self, obs_53d: np.ndarray) -> tuple[np.ndarray, np.ndarray]: + if self.obs_dim == obs_53d.shape[0]: + model_input = obs_53d + else: + raise RuntimeError( + f"ONNX expects obs dim {self.obs_dim}, but this checker provides {obs_53d.shape[0]}" + ) + raw = self.session.run( + [self.output_name], + {self.input_name: model_input.astype(np.float32)[None, :]}, + )[0][0].astype(np.float32) + raw = np.clip(raw, -100.0, 100.0) + self.last_actions = raw.copy() + return raw * ACTION_SCALE, raw + + +class ExistingPolicyBackend: + """Adapter around sim2sim/policy/PolicyRunner to match nav_sim2sim.py.""" + + def __init__(self, path: Path, crawl_path: Path | None = None) -> None: + device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + policy_path: Path | dict[str, Path] + if crawl_path is not None: + policy_path = {"rough": path, "crawl": crawl_path} + else: + policy_path = path + self.runner = PolicyRunner(policy_path, device) + self.runner.reset() + + @property + def default_dof_pos(self) -> np.ndarray: + return self.runner.default_dof_pos + + @property + def last_actions(self) -> np.ndarray: + return self.runner.last_actions + + def reset(self) -> None: + self.runner.reset() + + def maybe_switch_policy(self, policy_name: str | None) -> None: + if not policy_name: + return + if policy_name == self.runner.current_policy_name: + return + if self.runner.transition_in_progress and policy_name == self.runner.current_policy_name: + return + if policy_name in self.runner.policies: + self.runner.trigger_transition(policy_name) + + def step(self, obs_53d: np.ndarray) -> tuple[np.ndarray, np.ndarray]: + return self.runner.step(obs_53d) + + def close(self) -> None: + listener = getattr(self.runner, "listener", None) + if listener is not None: + listener.stop() + + +class RoughPolicyIkCrawlBackend(ExistingPolicyBackend): + def __init__(self, path: Path) -> None: + super().__init__(path, None) + self.mode = "rough" + self.requested_mode = "rough" + self.crawl_default_dof_pos = np.array( + [ + 0.2, 1.697, -2.650, + -0.2, 1.697, -2.650, + 0.2, 1.697, -2.650, + -0.2, 1.697, -2.650, + 0.0, 0.0, 0.0, 0.0, + ], + dtype=np.float32, + ) + self.slalom_ik_default_dof_pos = np.array( + [ + 0.0, 1.697, -2.650, + 0.0, 1.697, -2.650, + 0.0, 1.697, -2.650, + 0.0, 1.697, -2.650, + 0.0, 0.0, 0.0, 0.0, + ], + dtype=np.float32, + ) + self._last_actions = np.zeros(16, dtype=np.float32) + self.crawl_ik_wheel_linear_gain = 6.25 + self.crawl_ik_wheel_yaw_gain = 4.0 + self.crawl_ik_max_wheel_speed = 6.0 + self.transition_steps = 60 + self.transition_step = self.transition_steps + self.transition_start_pose = self.runner.default_dof_pos.copy() + self.transition_target_pose = self.runner.default_dof_pos.copy() + + def reset(self) -> None: + self.runner.reset() + self.mode = "rough" + self.requested_mode = "rough" + self.transition_step = self.transition_steps + self.transition_start_pose = self.runner.default_dof_pos.copy() + self.transition_target_pose = self.runner.default_dof_pos.copy() + self._last_actions[:] = 0.0 + + @property + def default_dof_pos(self) -> np.ndarray: + if self.transition_step < self.transition_steps: + alpha = self.transition_step / max(1, self.transition_steps) + return (1.0 - alpha) * self.transition_start_pose + alpha * self.transition_target_pose + if self.requested_mode == "crawl": + return self.crawl_default_dof_pos + if self.requested_mode == "slalom_ik": + return self.slalom_ik_default_dof_pos + return self.runner.default_dof_pos + + @property + def last_actions(self) -> np.ndarray: + if self.requested_mode in {"crawl", "slalom_ik"}: + return self._last_actions + return self.runner.last_actions + + def maybe_switch_policy(self, policy_name: str | None) -> None: + normalized = (policy_name or "").lower() + if normalized in {"slalom", "slalom_ik", "slalomik"}: + next_mode = "slalom_ik" + elif normalized in {"crawl", "ik"}: + next_mode = "crawl" + else: + next_mode = "rough" + if next_mode == self.requested_mode: + return + self.transition_start_pose = self.default_dof_pos.copy() + if next_mode == "crawl": + self.transition_target_pose = self.crawl_default_dof_pos.copy() + elif next_mode == "slalom_ik": + self.transition_target_pose = self.slalom_ik_default_dof_pos.copy() + else: + self.transition_target_pose = self.runner.default_dof_pos.copy() + self.transition_step = 0 + self.requested_mode = next_mode + + def step(self, obs_53d: np.ndarray) -> tuple[np.ndarray, np.ndarray]: + in_transition = self.transition_step < self.transition_steps + if in_transition: + self.transition_step += 1 + if self.requested_mode not in {"crawl", "slalom_ik"}: + return self.runner.step(obs_53d) + cmd = obs_53d[6:9].astype(np.float32) + target = ( + self.slalom_ik_default_dof_pos.copy() + if self.requested_mode == "slalom_ik" + else self.crawl_default_dof_pos.copy() + ) + left_wheel = float(np.clip( + cmd[0] * self.crawl_ik_wheel_linear_gain - cmd[2] * self.crawl_ik_wheel_yaw_gain, + -self.crawl_ik_max_wheel_speed, + self.crawl_ik_max_wheel_speed, + )) + right_wheel = float(np.clip( + cmd[0] * self.crawl_ik_wheel_linear_gain + cmd[2] * self.crawl_ik_wheel_yaw_gain, + -self.crawl_ik_max_wheel_speed, + self.crawl_ik_max_wheel_speed, + )) + alpha = 1.0 + if in_transition: + alpha = min(1.0, self.transition_step / max(1, self.transition_steps)) + scaled = target.copy() + scaled[12:] = [left_wheel, right_wheel, left_wheel, right_wheel] + scaled[12:] *= alpha + raw = np.zeros(16, dtype=np.float32) + raw[12:] = (np.array([left_wheel, right_wheel, left_wheel, right_wheel], dtype=np.float32) * alpha) / 5.0 + self._last_actions = raw + # send_actions adds default_dof_pos to scaled actions, so return leg offsets. + scaled[:12] = 0.0 + return scaled, raw + + +class DirectOnnxBackend: + """Lightweight ONNX adapter kept for isolating PolicyRunner effects.""" + + def __init__(self, path: Path, default_dof_pos: np.ndarray) -> None: + self.policy = OnnxPolicy(path) + self._default_dof_pos = default_dof_pos.astype(np.float32) + + @property + def default_dof_pos(self) -> np.ndarray: + return self._default_dof_pos + + @property + def last_actions(self) -> np.ndarray: + return self.policy.last_actions + + def reset(self) -> None: + self.policy.reset() + + def maybe_switch_policy(self, policy_name: str | None) -> None: + _ = policy_name + + def step(self, obs_53d: np.ndarray) -> tuple[np.ndarray, np.ndarray]: + return self.policy.step(obs_53d) + + def close(self) -> None: + pass + + +class WaypointFollower: + def __init__(self, waypoints: list[Waypoint], cfg: SimConfig) -> None: + self.waypoints = waypoints + self.cfg = cfg + self.index = 0 + self.turn_in_place = False + self.stable_count = 0 + self.wp_start_time = 0.0 + + @property + def active(self) -> Waypoint | None: + if self.index >= len(self.waypoints): + return None + return self.waypoints[self.index] + + def reset_timing(self, sim_time: float) -> None: + self.wp_start_time = sim_time + + @staticmethod + def normalize_angle(value: float) -> float: + while value > math.pi: + value -= 2.0 * math.pi + while value < -math.pi: + value += 2.0 * math.pi + return value + + @staticmethod + def clamp(value: float, lo: float, hi: float) -> float: + return max(lo, min(hi, value)) + + def update(self, x: float, y: float, yaw: float, sim_time: float) -> tuple[np.ndarray, str | None]: + wp = self.active + if wp is None: + return np.zeros(3, dtype=np.float32), "complete" + + if sim_time - self.wp_start_time > self.cfg.waypoint_timeout_s: + return np.zeros(3, dtype=np.float32), f"timeout at waypoint {wp.id}" + + dx = wp.x - x + dy = wp.y - y + dist = math.hypot(dx, dy) + tolerance = wp.tolerance if wp.tolerance is not None else 0.15 + if dist <= tolerance: + self.stable_count += 1 + if self.stable_count >= self.cfg.stable_cycles: + self.index += 1 + self.turn_in_place = False + self.stable_count = 0 + self.wp_start_time = sim_time + if self.index >= len(self.waypoints): + return np.zeros(3, dtype=np.float32), "complete" + return np.zeros(3, dtype=np.float32), None + return np.zeros(3, dtype=np.float32), None + self.stable_count = 0 + + target_yaw = math.atan2(dy, dx) + yaw_err = self.normalize_angle(target_yaw - yaw) + yaw_stop_threshold = math.radians(self.cfg.yaw_stop_threshold_deg) + + if self.turn_in_place: + if abs(yaw_err) <= math.radians(self.cfg.turn_in_place_exit_deg): + self.turn_in_place = False + elif abs(yaw_err) >= math.radians(self.cfg.turn_in_place_enter_deg): + self.turn_in_place = True + + if self.turn_in_place: + return np.array( + [ + 0.0, + 0.0, + self.clamp( + self.cfg.kp_yaw * yaw_err, + -self.cfg.turn_in_place_max_wz, + self.cfg.turn_in_place_max_wz, + ), + ], + dtype=np.float32, + ), None + + speed_limit = self.cfg.max_vx if wp.speed is None else min(self.cfg.max_vx, max(0.0, wp.speed)) + cmd = np.zeros(3, dtype=np.float32) + cmd[2] = self.clamp(self.cfg.kp_yaw * yaw_err, -self.cfg.max_wz, self.cfg.max_wz) + if abs(yaw_err) <= yaw_stop_threshold: + cmd[0] = self.clamp(self.cfg.kp_dist * dist * math.cos(yaw_err), 0.0, speed_limit) + cmd[0] *= self.cfg.cmd_vx_scale + return cmd, None + + +class PurePursuitFollower(WaypointFollower): + def __init__(self, waypoints: list[Waypoint], cfg: SimConfig) -> None: + super().__init__(waypoints, cfg) + self.best_dist = float("inf") + self.last_progress_time = 0.0 + self.recovery_until = -1.0 + self.recovery_count = 0 + self.recovery_turn_sign = 1.0 + + def reset_timing(self, sim_time: float) -> None: + super().reset_timing(sim_time) + self.best_dist = float("inf") + self.last_progress_time = sim_time + self.recovery_until = -1.0 + self.recovery_count = 0 + + def _advance_reached(self, x: float, y: float, sim_time: float) -> str | None: + while self.active is not None: + wp = self.active + if wp.require_yaw: + break + tol = wp.tolerance if wp.tolerance is not None else 0.15 + if wp.mandatory_cross: + tol = min(tol, 0.15 if wp.mandatory_radius is None else max(0.01, wp.mandatory_radius)) + completion_x = wp.x if wp.mandatory_center_x is None else wp.mandatory_center_x + completion_y = wp.y if wp.mandatory_center_y is None else wp.mandatory_center_y + if math.hypot(completion_x - x, completion_y - y) > tol: + break + self.index += 1 + self.turn_in_place = False + self.stable_count = 0 + self.wp_start_time = sim_time + self.best_dist = float("inf") + self.last_progress_time = sim_time + if self.index >= len(self.waypoints): + return "complete" + return None + + def _lookahead_target(self, x: float, y: float) -> Waypoint: + active = self.active + if active is None: + return self.waypoints[-1] + if active.exact_reach: + return active + target = active + for wp in self.waypoints[self.index :]: + target = wp + if wp.mandatory_cross: + mandatory_radius = 0.15 if wp.mandatory_radius is None else max(0.01, wp.mandatory_radius) + center_x = wp.x if wp.mandatory_center_x is None else wp.mandatory_center_x + center_y = wp.y if wp.mandatory_center_y is None else wp.mandatory_center_y + if math.hypot(center_x - x, center_y - y) > mandatory_radius: + break + if math.hypot(wp.x - x, wp.y - y) >= self.cfg.lookahead_m: + break + return target + + def _current_speed_limit(self) -> float: + speed = self.cfg.max_vx + end = min(len(self.waypoints), self.index + 4) + for wp in self.waypoints[self.index : end]: + if wp.speed is not None: + speed = min(speed, max(0.0, wp.speed)) + return speed + + def update(self, x: float, y: float, yaw: float, sim_time: float) -> tuple[np.ndarray, str | None]: + nav_state = self._advance_reached(x, y, sim_time) + if nav_state is not None: + return np.zeros(3, dtype=np.float32), nav_state + + active = self.active + if active is None: + return np.zeros(3, dtype=np.float32), "complete" + active_dist = math.hypot(active.x - x, active.y - y) + if active.require_yaw and active_dist <= (active.tolerance if active.tolerance is not None else 0.15): + yaw_tolerance_deg = 5.0 if active.yaw_tolerance_deg is None else max(0.0, active.yaw_tolerance_deg) + yaw_err = self.normalize_angle(math.radians(active.yaw_deg) - yaw) + if abs(yaw_err) > math.radians(yaw_tolerance_deg): + self.stable_count = 0 + return np.array( + [ + 0.0, + 0.0, + self.clamp( + self.cfg.kp_yaw * self.cfg.final_align_kp_scale * yaw_err, + -self.cfg.final_align_max_wz, + self.cfg.final_align_max_wz, + ), + ], + dtype=np.float32, + ), None + required_stable_cycles = ( + self.cfg.stable_cycles if active.stable_cycles is None else max(1, active.stable_cycles) + ) + self.stable_count += 1 + if self.stable_count < required_stable_cycles: + return np.zeros(3, dtype=np.float32), None + self.index += 1 + self.turn_in_place = False + self.stable_count = 0 + self.wp_start_time = sim_time + self.best_dist = float("inf") + self.last_progress_time = sim_time + if self.index >= len(self.waypoints): + return np.zeros(3, dtype=np.float32), "complete" + return np.zeros(3, dtype=np.float32), None + if active_dist + self.cfg.stuck_progress_m < self.best_dist: + self.best_dist = active_dist + self.last_progress_time = sim_time + + if self.recovery_until > sim_time: + return np.array( + [ + -0.10 * abs(self.cfg.cmd_vx_scale), + 0.0, + 0.45 * self.recovery_turn_sign, + ], + dtype=np.float32, + ), None + + if sim_time - self.wp_start_time > self.cfg.waypoint_timeout_s: + return np.zeros(3, dtype=np.float32), f"timeout at waypoint {active.id}" + + if sim_time - self.last_progress_time > self.cfg.stuck_timeout_s: + if active.require_yaw: + self.last_progress_time = sim_time + elif self.recovery_count >= self.cfg.max_recoveries: + return np.zeros(3, dtype=np.float32), f"stuck near waypoint {active.id}" + else: + self.recovery_count += 1 + self.recovery_turn_sign *= -1.0 + self.recovery_until = sim_time + self.cfg.recovery_duration_s + self.last_progress_time = sim_time + return np.array([-0.10 * abs(self.cfg.cmd_vx_scale), 0.0, 0.45 * self.recovery_turn_sign], dtype=np.float32), None + + target = self._lookahead_target(x, y) + dx = target.x - x + dy = target.y - y + target_dist = math.hypot(dx, dy) + target_yaw = math.atan2(dy, dx) + yaw_err = self.normalize_angle(target_yaw - yaw) + + cmd = np.zeros(3, dtype=np.float32) + cmd[2] = self.clamp(self.cfg.kp_yaw * yaw_err, -self.cfg.max_wz, self.cfg.max_wz) + if abs(yaw_err) > math.radians(self.cfg.turn_in_place_enter_deg): + cmd[0] = 0.0 + return cmd, None + + speed_limit = self._current_speed_limit() + curvature_slow = max(0.35, 1.0 - abs(yaw_err) / math.radians(80.0)) + cmd_vx = self.cfg.kp_dist * target_dist * math.cos(yaw_err) + cmd_vx = self.clamp(cmd_vx, self.cfg.min_cmd_vx, speed_limit * curvature_slow) + if abs(yaw_err) > math.radians(self.cfg.yaw_stop_threshold_deg): + if abs(yaw_err) < math.radians(self.cfg.turn_in_place_enter_deg): + cmd_vx = min(self.cfg.creep_cmd_vx, speed_limit) + else: + cmd_vx = 0.0 + cmd[0] = cmd_vx * self.cfg.cmd_vx_scale + return cmd, None + + +class NavGoodFollower(WaypointFollower): + """Follower shaped after sim2real nav_good/simple_nav_node.py. + + This keeps the route as the active path, advances through near path points, + selects a lookahead target, then applies the same yaw gating and + turn-in-place structure as the ROS2 simple_nav node. + """ + + def __init__(self, waypoints: list[Waypoint], cfg: SimConfig) -> None: + super().__init__(waypoints, cfg) + self.goal_entered_tolerance = False + self.goal_complete_stable_count = 0 + self.goal_exit_tolerance_margin = 0.05 + self.final_align_kp_yaw_scale = 0.6 + self.final_align_creep_speed = 0.03 + self.path_reach_dist = 0.18 + self.best_dist = float("inf") + self.last_progress_time = 0.0 + + def reset_timing(self, sim_time: float) -> None: + super().reset_timing(sim_time) + self.goal_entered_tolerance = False + self.goal_complete_stable_count = 0 + self.turn_in_place = False + self.best_dist = float("inf") + self.last_progress_time = sim_time + + def _current_goal(self) -> Waypoint | None: + return self.active + + def _is_charge_segment(self, x: float, y: float, goal: Waypoint) -> bool: + policy = (goal.policy or "").lower() + if policy in {"charge", "wall", "obstacle", "climb"}: + return True + return -0.45 <= x <= 0.35 and -4.35 <= y <= -2.85 + + def _point_is_behind_segment( + self, + x: float, + y: float, + point: Waypoint, + next_point: Waypoint, + ) -> bool: + seg_x = next_point.x - point.x + seg_y = next_point.y - point.y + seg_len_sq = seg_x * seg_x + seg_y * seg_y + if seg_len_sq <= 1.0e-9: + return False + proj = ((x - point.x) * seg_x + (y - point.y) * seg_y) / seg_len_sq + return proj > 0.65 and math.hypot(next_point.x - x, next_point.y - y) < math.hypot(point.x - x, point.y - y) + + def _advance_path_nodes(self, x: float, y: float, sim_time: float) -> str | None: + while self.index < len(self.waypoints) - 1: + goal = self.waypoints[self.index] + if goal.require_yaw: + break + next_goal = self.waypoints[self.index + 1] + tol = max(self.path_reach_dist, goal.tolerance if goal.tolerance is not None else 0.15) + dist = math.hypot(goal.x - x, goal.y - y) + if dist > tol and not self._point_is_behind_segment(x, y, goal, next_goal): + break + self.index += 1 + self.wp_start_time = sim_time + self.turn_in_place = False + self.goal_entered_tolerance = False + self.goal_complete_stable_count = 0 + self.best_dist = float("inf") + self.last_progress_time = sim_time + if self.index >= len(self.waypoints): + return "complete" + return None + + def _path_follow_target(self, x: float, y: float, goal: Waypoint) -> Waypoint: + target_index = self.index + while target_index < len(self.waypoints) - 1: + candidate = self.waypoints[target_index + 1] + if math.hypot(candidate.x - x, candidate.y - y) > self.cfg.lookahead_m: + break + target_index += 1 + return self.waypoints[target_index] + + def update(self, x: float, y: float, yaw: float, sim_time: float) -> tuple[np.ndarray, str | None]: + nav_state = self._advance_path_nodes(x, y, sim_time) + if nav_state is not None: + return np.zeros(3, dtype=np.float32), nav_state + + goal = self._current_goal() + if goal is None: + return np.zeros(3, dtype=np.float32), "complete" + if sim_time - self.wp_start_time > self.cfg.waypoint_timeout_s: + return np.zeros(3, dtype=np.float32), f"timeout at waypoint {goal.id}" + + goal_dx = goal.x - x + goal_dy = goal.y - y + dist = math.hypot(goal_dx, goal_dy) + tol_enter = goal.tolerance if goal.tolerance is not None else 0.15 + tol_exit = tol_enter + self.goal_exit_tolerance_margin + position_ready = dist < (tol_exit if self.goal_entered_tolerance else tol_enter) + max_vx = self.cfg.max_vx if goal.speed is None else min(self.cfg.max_vx, max(0.0, goal.speed)) + + if goal.require_yaw and position_ready: + self.goal_entered_tolerance = True + yaw_tolerance_deg = 5.0 if goal.yaw_tolerance_deg is None else max(0.0, goal.yaw_tolerance_deg) + yaw_err = self.normalize_angle(math.radians(goal.yaw_deg) - yaw) + if abs(yaw_err) > math.radians(yaw_tolerance_deg): + self.goal_complete_stable_count = 0 + return np.array( + [ + 0.0, + 0.0, + self.clamp( + self.cfg.kp_yaw * self.final_align_kp_yaw_scale * yaw_err, + -self.cfg.final_align_max_wz, + self.cfg.final_align_max_wz, + ), + ], + dtype=np.float32, + ), None + required_stable_cycles = ( + self.cfg.stable_cycles if goal.stable_cycles is None else max(1, goal.stable_cycles) + ) + self.goal_complete_stable_count += 1 + if self.goal_complete_stable_count < required_stable_cycles: + return np.zeros(3, dtype=np.float32), None + self.index += 1 + self.wp_start_time = sim_time + self.turn_in_place = False + self.goal_entered_tolerance = False + self.goal_complete_stable_count = 0 + self.best_dist = float("inf") + self.last_progress_time = sim_time + if self.index >= len(self.waypoints): + return np.zeros(3, dtype=np.float32), "complete" + return np.zeros(3, dtype=np.float32), None + + is_final_goal = self.index >= len(self.waypoints) - 1 + if is_final_goal and position_ready: + self.goal_entered_tolerance = True + self.goal_complete_stable_count += 1 + if self.goal_complete_stable_count < self.cfg.stable_cycles: + return np.zeros(3, dtype=np.float32), None + self.index += 1 + self.wp_start_time = sim_time + self.turn_in_place = False + self.goal_entered_tolerance = False + self.goal_complete_stable_count = 0 + if self.index >= len(self.waypoints): + return np.zeros(3, dtype=np.float32), "complete" + return np.zeros(3, dtype=np.float32), None + + self.goal_entered_tolerance = False + self.goal_complete_stable_count = 0 + if dist + self.cfg.stuck_progress_m < self.best_dist: + self.best_dist = dist + self.last_progress_time = sim_time + if sim_time - self.last_progress_time > self.cfg.waypoint_timeout_s: + return np.zeros(3, dtype=np.float32), f"no progress near waypoint {goal.id}" + + target = goal if goal.require_yaw else self._path_follow_target(x, y, goal) + dx = target.x - x + dy = target.y - y + target_yaw = math.atan2(dy, dx) + yaw_err = self.normalize_angle(target_yaw - yaw) + + if self.turn_in_place: + if abs(yaw_err) <= math.radians(self.cfg.turn_in_place_exit_deg): + self.turn_in_place = False + elif abs(yaw_err) >= math.radians(self.cfg.turn_in_place_enter_deg): + self.turn_in_place = True + + if self.turn_in_place: + return np.array( + [ + 0.0, + 0.0, + self.clamp(self.cfg.kp_yaw * yaw_err, -self.cfg.turn_in_place_max_wz, self.cfg.turn_in_place_max_wz), + ], + dtype=np.float32, + ), None + + cmd = np.zeros(3, dtype=np.float32) + cmd[2] = self.clamp(self.cfg.kp_yaw * yaw_err, -self.cfg.max_wz, self.cfg.max_wz) + if abs(yaw_err) <= math.radians(self.cfg.yaw_stop_threshold_deg): + path_dist = math.hypot(dx, dy) + if self._is_charge_segment(x, y, goal): + cmd[0] = max_vx + else: + cmd[0] = self.clamp(self.cfg.kp_dist * path_dist * math.cos(yaw_err), 0.0, max_vx) + cmd[0] *= self.cfg.cmd_vx_scale + return cmd, None + + +class NavSim2SimFollower(WaypointFollower): + """Follower matched to sim2sim/nav_sim2sim.py NavController. + + It tracks only the current waypoint, switches at 0.15 m, stops forward + motion above ~45 deg yaw error, and can keep full waypoint speed through + obstacle-charge segments instead of scaling speed down by distance. + """ + + def __init__(self, waypoints: list[Waypoint], cfg: SimConfig) -> None: + super().__init__(waypoints, cfg) + self.reach_dist = 0.15 + + def _advance_reached(self, x: float, y: float, sim_time: float) -> str | None: + while self.active is not None: + wp = self.active + tol = wp.tolerance if wp.tolerance is not None else self.reach_dist + tol = max(self.reach_dist, tol) + if math.hypot(wp.x - x, wp.y - y) >= tol: + break + if self.index < len(self.waypoints) - 1: + self.index += 1 + self.turn_in_place = False + self.stable_count = 0 + self.wp_start_time = sim_time + return None + self.index += 1 + return "complete" + if self.index >= len(self.waypoints): + return "complete" + return None + + def _is_charge_segment(self, x: float, y: float, wp: Waypoint) -> bool: + policy = (wp.policy or "").lower() + if policy in {"charge", "wall", "obstacle", "climb"}: + return True + # A.xml has a low wall/step around x=0, y=-3.5. nav_sim2sim keeps + # speed through comparable obstacle sections instead of distance taper. + return -0.45 <= x <= 0.35 and -4.35 <= y <= -2.85 + + def update(self, x: float, y: float, yaw: float, sim_time: float) -> tuple[np.ndarray, str | None]: + nav_state = self._advance_reached(x, y, sim_time) + if nav_state is not None: + return np.zeros(3, dtype=np.float32), nav_state + wp = self.active + if wp is None: + return np.zeros(3, dtype=np.float32), "complete" + if sim_time - self.wp_start_time > self.cfg.waypoint_timeout_s: + return np.zeros(3, dtype=np.float32), f"timeout at waypoint {wp.id}" + + dx = wp.x - x + dy = wp.y - y + dist = math.hypot(dx, dy) + target_yaw = math.atan2(dy, dx) + yaw_err = self.normalize_angle(target_yaw - yaw) + speed_limit = self.cfg.max_vx if wp.speed is None else min(self.cfg.max_vx, max(0.0, wp.speed)) + + cmd = np.zeros(3, dtype=np.float32) + cmd[2] = self.clamp(self.cfg.kp_yaw * yaw_err, -self.cfg.max_wz, self.cfg.max_wz) + if abs(yaw_err) > 0.8: + cmd[0] = 0.0 + elif self._is_charge_segment(x, y, wp): + cmd[0] = speed_limit + else: + cmd[0] = self.clamp(self.cfg.kp_dist * dist * math.cos(yaw_err), -0.2, speed_limit) + cmd[0] *= self.cfg.cmd_vx_scale + return cmd, None + + +class SlalomScriptFollower(NavGoodFollower): + """NavGood follower plus the sim2real slalomStraight odometry script. + + The script starts only after the robot reaches the first slalomStraight + point, then drives consecutive slalomStraight points with body-frame + vx/vy/wz feedback. This mirrors simple_nav_node.py instead of the older + pure waypoint followers. + """ + + def __init__(self, waypoints: list[Waypoint], cfg: SimConfig) -> None: + super().__init__(waypoints, cfg) + self.slalom_script_active = False + self.slalom_script_start_index = 0 + self.slalom_script_end_index = 0 + self.slalom_script_steps: list[SlalomScriptStep] = [] + self.slalom_script_step_index = 0 + self.slalom_script_step_stable_count = 0 + + def reset_timing(self, sim_time: float) -> None: + super().reset_timing(sim_time) + self.reset_slalom_script() + + def reset_slalom_script(self) -> None: + self.slalom_script_active = False + self.slalom_script_start_index = 0 + self.slalom_script_end_index = 0 + self.slalom_script_steps = [] + self.slalom_script_step_index = 0 + self.slalom_script_step_stable_count = 0 + + @staticmethod + def _is_slalom_script_waypoint(wp: Waypoint | None) -> bool: + return bool(wp is not None and getattr(wp, "slalom_straight", False)) + + def _advance_path_nodes(self, x: float, y: float, sim_time: float) -> str | None: + active = self.active + if ( + self.cfg.slalom_script_enabled + and self._is_slalom_script_waypoint(active) + and not self.slalom_script_active + and self.index + 1 < len(self.waypoints) + and self._is_slalom_script_waypoint(self.waypoints[self.index + 1]) + ): + # Do not let the normal path follower skip the script start point at + # the wider path tolerance; the real node gates this with + # nav_slalom_script_start_tolerance. + return None + return super()._advance_path_nodes(x, y, sim_time) + + def get_slalom_script_bounds(self, start_index: int) -> tuple[int, int]: + if start_index < 0 or start_index >= len(self.waypoints): + return start_index, start_index + if not self._is_slalom_script_waypoint(self.waypoints[start_index]): + return start_index, start_index + end_index = start_index + while end_index + 1 < len(self.waypoints): + if getattr(self.waypoints[end_index], "slalom_script_break", False): + break + if not self._is_slalom_script_waypoint(self.waypoints[end_index + 1]): + break + end_index += 1 + return start_index, end_index + + def build_slalom_script_steps(self, start_index: int, end_index: int) -> list[SlalomScriptStep]: + if end_index <= start_index: + return [] + + steps: list[SlalomScriptStep] = [] + for index in range(start_index, end_index): + goal = self.waypoints[index] + next_goal = self.waypoints[index + 1] + route_dx = next_goal.x - goal.x + route_dy = next_goal.y - goal.y + route_dist = math.hypot(route_dx, route_dy) + route_yaw = math.atan2(route_dy, route_dx) if route_dist > 1.0e-6 else math.radians(goal.yaw_deg) + yaw_source = self.cfg.slalom_script_drive_yaw_source + if yaw_source == "segment": + target_yaw = route_yaw + elif yaw_source == "blend": + target_yaw = route_yaw + if index + 2 <= end_index: + following_goal = self.waypoints[index + 2] + next_dx = following_goal.x - next_goal.x + next_dy = following_goal.y - next_goal.y + if math.hypot(next_dx, next_dy) > 1.0e-6: + next_yaw = math.atan2(next_dy, next_dx) + delta = self.normalize_angle(next_yaw - route_yaw) + target_yaw = route_yaw + 0.15 * delta + elif yaw_source == "next": + target_yaw = math.radians(next_goal.yaw_deg) + else: + target_yaw = math.radians(goal.yaw_deg) + target_yaw = self.normalize_angle(target_yaw) + if self.cfg.slalom_script_rotate_steps_enabled: + steps.append( + SlalomScriptStep( + kind="rotate", + start_index=index, + end_index=index, + target_x=goal.x, + target_y=goal.y, + target_yaw=target_yaw, + pos_tolerance=getattr(goal, "slalom_script_pos_tolerance", None), + ) + ) + if route_dist >= self.cfg.slalom_script_min_step_distance: + forward = math.cos(target_yaw) * route_dx + math.sin(target_yaw) * route_dy + left = -math.sin(target_yaw) * route_dx + math.cos(target_yaw) * route_dy + steps.append( + SlalomScriptStep( + kind="drive", + start_index=index, + end_index=index + 1, + target_x=next_goal.x, + target_y=next_goal.y, + target_yaw=target_yaw, + pos_tolerance=getattr(next_goal, "slalom_script_pos_tolerance", None), + forward=forward, + left=left, + ) + ) + + final_goal = self.waypoints[end_index] + if self.cfg.slalom_script_final_rotate_enabled: + steps.append( + SlalomScriptStep( + kind="rotate", + start_index=end_index, + end_index=end_index, + target_x=final_goal.x, + target_y=final_goal.y, + target_yaw=math.radians(final_goal.yaw_deg), + pos_tolerance=getattr(final_goal, "slalom_script_pos_tolerance", None), + ) + ) + return steps + + def maybe_start_slalom_script(self, x: float, y: float, sim_time: float) -> bool: + if not self.cfg.slalom_script_enabled or self.slalom_script_active: + return self.slalom_script_active + active = self.active + if not self._is_slalom_script_waypoint(active): + return False + if math.hypot(active.x - x, active.y - y) > self.cfg.slalom_script_start_tolerance: + return False + + start_index, end_index = self.get_slalom_script_bounds(self.index) + if end_index <= start_index: + return False + steps = self.build_slalom_script_steps(start_index, end_index) + if not steps: + return False + + self.slalom_script_active = True + self.slalom_script_start_index = start_index + self.slalom_script_end_index = end_index + self.slalom_script_steps = steps + self.slalom_script_step_index = 0 + self.slalom_script_step_stable_count = 0 + self.turn_in_place = False + self.goal_entered_tolerance = False + self.goal_complete_stable_count = 0 + self.wp_start_time = sim_time + return True + + def compute_slalom_script_command( + self, + step: SlalomScriptStep, + x: float, + y: float, + yaw: float, + ) -> tuple[np.ndarray, bool]: + cmd = np.zeros(3, dtype=np.float32) + target_yaw = step.target_yaw + yaw_tolerance = math.radians(self.cfg.slalom_script_yaw_tolerance_deg) + + if step.kind == "rotate": + if target_yaw is None: + return cmd, True + yaw_err = self.normalize_angle(target_yaw - yaw) + if abs(yaw_err) <= yaw_tolerance: + return cmd, True + cmd[2] = self.clamp( + self.cfg.slalom_script_kp_yaw * yaw_err, + -self.cfg.slalom_script_max_wz, + self.cfg.slalom_script_max_wz, + ) + cmd[2] = self.apply_min_command( + float(cmd[2]), + self.cfg.slalom_script_min_cmd_angular, + self.cfg.slalom_script_max_wz, + self.cfg.slalom_script_min_cmd_epsilon, + ) + return cmd, False + + dx = step.target_x - x + dy = step.target_y - y + if target_yaw is None: + target_yaw = math.atan2(dy, dx) if math.hypot(dx, dy) > 1.0e-6 else yaw + yaw_err = self.normalize_angle(target_yaw - yaw) + pos_err = math.hypot(dx, dy) + pos_tolerance = ( + self.cfg.slalom_script_pos_tolerance + if step.pos_tolerance is None + else max(0.01, float(step.pos_tolerance)) + ) + complete = ( + pos_err <= pos_tolerance + and ( + not self.cfg.slalom_script_require_yaw_at_step + or abs(yaw_err) <= yaw_tolerance + ) + ) + if complete: + return cmd, True + + cmd[2] = self.clamp( + self.cfg.slalom_script_kp_yaw * yaw_err, + -self.cfg.slalom_script_max_wz, + self.cfg.slalom_script_max_wz, + ) + cmd[2] = self.apply_min_command( + float(cmd[2]), + self.cfg.slalom_script_min_cmd_angular, + self.cfg.slalom_script_max_wz, + self.cfg.slalom_script_min_cmd_epsilon, + ) + if abs(yaw_err) <= math.radians(self.cfg.slalom_script_yaw_gate_deg): + err_forward = math.cos(yaw) * dx + math.sin(yaw) * dy + err_left = -math.sin(yaw) * dx + math.cos(yaw) * dy + yaw_scale = max(0.35, math.cos(yaw_err) ** 2) + curvature_scale = 1.0 + if self.cfg.slalom_script_curvature_speed_enabled: + gate = max(1.0e-6, math.radians(self.cfg.slalom_script_yaw_gate_deg)) + curvature_scale = max( + self.cfg.slalom_script_curvature_min_scale, + 1.0 - abs(yaw_err) / gate, + ) + cmd[0] = self.clamp( + self.cfg.slalom_script_kp_dist * err_forward, + -self.cfg.slalom_script_max_vx * yaw_scale * curvature_scale, + self.cfg.slalom_script_max_vx * yaw_scale * curvature_scale, + ) + cmd[1] = self.clamp( + self.cfg.slalom_script_kp_dist * err_left, + -self.cfg.slalom_script_max_vy * curvature_scale, + self.cfg.slalom_script_max_vy * curvature_scale, + ) + cmd[0] = self.apply_min_command( + float(cmd[0]), + self.cfg.slalom_script_min_cmd_linear, + self.cfg.slalom_script_max_vx, + self.cfg.slalom_script_min_cmd_epsilon, + ) + cmd[1] = self.apply_min_command( + float(cmd[1]), + self.cfg.slalom_script_min_cmd_linear, + self.cfg.slalom_script_max_vy, + self.cfg.slalom_script_min_cmd_epsilon, + ) + return cmd, False + + @classmethod + def apply_min_command( + cls, + value: float, + min_abs: float, + max_abs: float, + epsilon: float, + ) -> float: + if max_abs <= 0.0 or min_abs <= 0.0: + return value + abs_value = abs(value) + if abs_value < max(0.0, epsilon) or abs_value >= min_abs: + return value + return cls.clamp(math.copysign(min_abs, value), -max_abs, max_abs) + + def finish_slalom_script(self, sim_time: float) -> tuple[np.ndarray, str | None]: + end_index = self.slalom_script_end_index + self.reset_slalom_script() + self.index = end_index + 1 + self.wp_start_time = sim_time + self.turn_in_place = False + self.goal_entered_tolerance = False + self.goal_complete_stable_count = 0 + self.best_dist = float("inf") + self.last_progress_time = sim_time + if self.index >= len(self.waypoints): + return np.zeros(3, dtype=np.float32), "complete" + return np.zeros(3, dtype=np.float32), None + + def handle_slalom_script( + self, + x: float, + y: float, + yaw: float, + sim_time: float, + ) -> tuple[np.ndarray, str | None] | None: + if not self.slalom_script_active and not self.maybe_start_slalom_script(x, y, sim_time): + return None + if sim_time - self.wp_start_time > self.cfg.waypoint_timeout_s: + active = self.active + active_id = active.id if active is not None else "unknown" + return np.zeros(3, dtype=np.float32), ( + f"timeout at slalom step {self.slalom_script_step_index + 1}/" + f"{len(self.slalom_script_steps)} near waypoint {active_id}" + ) + + while self.slalom_script_step_index < len(self.slalom_script_steps): + step = self.slalom_script_steps[self.slalom_script_step_index] + cmd, complete = self.compute_slalom_script_command(step, x, y, yaw) + if complete: + self.slalom_script_step_stable_count += 1 + if self.slalom_script_step_stable_count >= self.cfg.slalom_script_stable_cycles: + self.slalom_script_step_index += 1 + self.index = max(self.index, min(step.end_index, self.slalom_script_end_index)) + self.wp_start_time = sim_time + self.slalom_script_step_stable_count = 0 + continue + else: + self.slalom_script_step_stable_count = 0 + return cmd, None + + return self.finish_slalom_script(sim_time) + + def update(self, x: float, y: float, yaw: float, sim_time: float) -> tuple[np.ndarray, str | None]: + script_result = self.handle_slalom_script(x, y, yaw, sim_time) + if script_result is not None: + return script_result + return super().update(x, y, yaw, sim_time) + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Run MuJoCo+ONNX route validation.") + parser.add_argument("--terrain-xml", type=Path, default=PROJECT_ROOT / "tools/nav_tools/xml/A.xml") + parser.add_argument("--points", type=Path, default=PROJECT_ROOT / "tools/nav_tools/points/points_20260705_174627.json") + parser.add_argument("--onnx", type=Path, default=PROJECT_ROOT / "model_6800.onnx") + parser.add_argument("--crawl-onnx", type=Path, default=PROJECT_ROOT / "model_crawl.onnx") + parser.add_argument( + "--policy-backend", + choices=("policy-runner", "onnx", "rough-ik-crawl"), + default="policy-runner", + help="policy-runner matches nav_sim2sim.py; rough-ik-crawl matches sim2real nav_good crawl_backend=ik.", + ) + parser.add_argument("--enable-policy-switch", action="store_true") + parser.add_argument( + "--mission", + choices=("json", "slalom", "grand"), + default="json", + help="json uses --points; slalom/grand use the hardcoded nav_sim2sim coordinate frame.", + ) + parser.add_argument("--robot-xml", type=Path, default=PROJECT_ROOT / "mjcf/wheelleg.xml") + parser.add_argument("--hfield-dir", type=Path, default=PROJECT_ROOT / "sim2sim/terrain") + parser.add_argument("--out-dir", type=Path, default=PROJECT_ROOT / "sim2sim/route_check_runs") + parser.add_argument("--avoid-margin", type=float, default=0.05) + parser.add_argument("--footprint-radius", type=float, default=None) + parser.add_argument("--max-time", type=float, default=420.0) + parser.add_argument("--waypoint-timeout", type=float, default=30.0) + parser.add_argument("--max-vx", type=float, default=1.2) + parser.add_argument("--max-vy", type=float, default=0.0) + parser.add_argument("--max-wz", type=float, default=0.8) + parser.add_argument("--kp-dist", type=float, default=0.8) + parser.add_argument("--kp-yaw", type=float, default=1.8) + parser.add_argument("--yaw-stop-threshold-deg", type=float, default=45.0) + parser.add_argument("--turn-in-place-enter-deg", type=float, default=70.0) + parser.add_argument("--turn-in-place-exit-deg", type=float, default=18.0) + parser.add_argument("--follower", choices=("waypoint", "pure-pursuit", "nav-good", "nav-sim2sim", "slalom-script", "nav-script"), default="pure-pursuit") + parser.add_argument("--lookahead", type=float, default=0.45) + parser.add_argument("--min-cmd-vx", type=float, default=0.08) + parser.add_argument("--creep-cmd-vx", type=float, default=0.04) + parser.add_argument("--cmd-vx-scale", type=float, default=1.0) + parser.add_argument("--stuck-timeout", type=float, default=4.0) + parser.add_argument("--recovery-duration", type=float, default=2.0) + parser.add_argument("--max-recoveries", type=int, default=4) + parser.add_argument("--slalom-script", action="store_true", default=True) + parser.add_argument("--no-slalom-script", dest="slalom_script", action="store_false") + parser.add_argument("--slalom-script-start-tolerance", type=float, default=0.10) + parser.add_argument("--slalom-script-pos-tolerance", type=float, default=0.08) + parser.add_argument("--slalom-script-yaw-tolerance-deg", type=float, default=5.0) + parser.add_argument("--slalom-script-stable-cycles", type=int, default=1) + parser.add_argument("--slalom-script-rotate-steps", action="store_true", default=False) + parser.add_argument("--slalom-script-final-rotate", action="store_true", default=False) + parser.add_argument("--slalom-script-require-yaw-at-step", action="store_true", default=False) + parser.add_argument("--slalom-script-kp-dist", type=float, default=1.0) + parser.add_argument("--slalom-script-kp-yaw", type=float, default=1.6) + parser.add_argument("--slalom-script-max-vx", type=float, default=0.60) + parser.add_argument("--slalom-script-max-vy", type=float, default=0.50) + parser.add_argument("--slalom-script-max-wz", type=float, default=0.50) + parser.add_argument("--slalom-script-min-cmd-linear", type=float, default=0.2) + parser.add_argument("--slalom-script-min-cmd-angular", type=float, default=0.0) + parser.add_argument("--slalom-script-min-cmd-epsilon", type=float, default=0.05) + parser.add_argument("--slalom-script-min-step-distance", type=float, default=0.02) + parser.add_argument("--slalom-script-yaw-gate-deg", type=float, default=25.0) + parser.add_argument("--slalom-script-curvature-speed", action="store_true", default=True) + parser.add_argument( + "--no-slalom-script-curvature-speed", + dest="slalom_script_curvature_speed", + action="store_false", + ) + parser.add_argument("--slalom-script-curvature-min-scale", type=float, default=0.55) + parser.add_argument( + "--slalom-script-drive-yaw-source", + choices=("current", "next", "segment", "blend"), + default="segment", + help="Yaw used while driving each slalom segment.", + ) + parser.add_argument("--local-safety", action="store_true", default=False) + parser.add_argument("--no-local-safety", dest="local_safety", action="store_false") + parser.add_argument("--safety-horizon", type=float, default=1.0) + parser.add_argument("--safety-dt", type=float, default=0.1) + parser.add_argument( + "--start-yaw-offset-deg", + type=float, + default=0.0, + help="Added to route yawDeg when placing the robot.", + ) + parser.add_argument( + "--heading-offset-deg", + type=float, + default=0.0, + help="Added to MuJoCo base yaw before waypoint heading control.", + ) + parser.add_argument("--sample-every", type=int, default=5) + parser.add_argument("--sim-speed", type=float, default=1.0, help="Simulation wall-clock speed factor, matching nav_sim2sim.py timing semantics.") + parser.add_argument("--viewer", action="store_true", help="Open MuJoCo passive viewer while the check runs.") + parser.add_argument("--viewer-sync-every", type=int, default=2) + parser.add_argument("--dashboard", action="store_true", help="Open a pygame telemetry dashboard with route, avoid regions, and trail.") + parser.add_argument("--dashboard-fps", type=float, default=30.0) + parser.add_argument("--dashboard-sim-speed", type=float, default=1.0, help="Initial dashboard simulation speed factor; can be changed in the UI up to 10x.") + parser.add_argument("--dashboard-width", type=int, default=1180) + parser.add_argument("--dashboard-height", type=int, default=760) + parser.add_argument("--dashboard-trail", type=int, default=6000) + parser.add_argument("--start-index", type=int, default=1, help="1-based waypoint index to start testing from.") + parser.add_argument("--end-index", type=int, default=None, help="1-based waypoint index to stop testing at.") + parser.add_argument("--start-id", type=str, default=None, help="Waypoint id to start testing from; overrides --start-index.") + parser.add_argument("--end-id", type=str, default=None, help="Waypoint id to stop testing at; overrides --end-index.") + parser.add_argument( + "--skip-initial-waypoint", + action="store_true", + help="Use the first sliced waypoint as spawn pose, then navigate to the next waypoint.", + ) + parser.add_argument( + "--auto-skip-slice-start", + action="store_true", + default=True, + help="When --start-index > 1, skip the sliced start waypoint by default.", + ) + parser.add_argument("--no-auto-skip-slice-start", dest="auto_skip_slice_start", action="store_false") + parser.add_argument("--start-z", type=float, default=0.75, help="Initial base z before settling.") + parser.add_argument("--start-x-offset", type=float, default=0.0, help="World x offset added to the initial spawn pose.") + parser.add_argument("--start-y-offset", type=float, default=0.0, help="World y offset added to the initial spawn pose.") + parser.add_argument("--settle-steps", type=int, default=500) + parser.add_argument("--min-base-z", type=float, default=0.12) + parser.add_argument("--stop-on-clearance-violation", action="store_true") + parser.add_argument("--deployment-randomization", action="store_true") + parser.add_argument("--random-seed", type=int, default=1) + parser.add_argument("--pose-noise-xy", type=float, default=0.015) + parser.add_argument("--pose-noise-yaw-deg", type=float, default=1.0) + parser.add_argument("--command-delay-ms", type=float, default=40.0) + parser.add_argument("--action-delay-ms", type=float, default=20.0) + parser.add_argument("--control-jitter-ms", type=float, default=4.0) + parser.add_argument("--command-dropout-prob", type=float, default=0.01) + parser.add_argument("--push-force", type=float, default=25.0) + parser.add_argument("--push-interval", type=float, default=8.0) + parser.add_argument("--push-duration", type=float, default=0.08) + parser.add_argument("--no-csv", action="store_true") + return parser.parse_args() + + +def make_combined_terrain_xml(terrain_xml: Path, work_dir: Path) -> Path: + text = terrain_xml.read_text(encoding="utf-8") + if '' not in text and '' not in text: + end = text.find(">") + if end < 0: + raise ValueError(f"Invalid terrain XML: {terrain_xml}") + text = text[: end + 1] + '\n' + text[end + 1 :] + out_path = work_dir / f"{terrain_xml.stem}_with_robot_include.xml" + out_path.write_text(text, encoding="utf-8") + return out_path + + +def builtin_mission_waypoints(name: str) -> list[Waypoint]: + slalom = [ + (2.9, -9.5, 0.4, "rough"), + (1.8, -9.95, 0.4, "rough"), + (0.9, -10.0, 0.4, "rough"), + (0.8, -10.8, 0.4, "rough"), + (0.9, -11.0, 0.4, "rough"), + (2.7, -11.0, 0.4, "rough"), + (2.8, -11.8, 0.4, "rough"), + (2.7, -12.0, 0.4, "rough"), + (0.9, -12.0, 0.4, "rough"), + (0.9, -12.75, 0.4, "rough"), + (1.42, -12.82, 0.4, "rough"), + (2.3, -13.3, 0.4, "rough"), + (2.3, -11.5, 0.4, "rough"), + (3.32, -12.44, 0.4, "rough"), + (3.7, -9.0, 0.6, "rough"), + ] + grand_tail = [ + (5.7, -10.2, 0.5, "rough"), + (5.7, -9.0, 0.3, "crawl"), + (5.7, -7.8, 0.3, "rough"), + (5.7, -7.0, 0.5, "rough"), + (3.7, -9.0, 0.5, "rough"), + (3.7, -12.5, 0.5, "rough"), + (4.84, -12.5, 0.4, "rough"), + (5.84, -12.0, 0.4, "rough"), + (5.84, -10.2, 0.4, "rough"), + (3.3, -10.2, 0.5, "rough"), + (3.3, -9.0, 0.5, "rough"), + (3.7, -9.0, 0.5, "rough"), + (3.3, -9.0, 0.5, "rough"), + (1.8, -9.0, 0.5, "rough"), + (1.8, -8.0, 0.4, "rough"), + (1.8, -7.5, 0.4, "rough"), + (1.8, -5.8, 1.2, "rough"), + (1.8, -3.5, 0.4, "rough"), + (1.8, -1.6, 0.4, "rough"), + (1.8, -1.38, 0.4, "rough"), + (1.8, 0.0, 0.4, "rough"), + (3.2, 0.0, 0.4, "rough"), + (4.85, 0.0, 0.4, "rough"), + (5.7, -0.5, 0.4, "rough"), + (5.7, -2.25, 0.4, "rough"), + (5.7, -3.5, 0.4, "rough"), + (5.7, -5.0, 0.4, "rough"), + (5.7, -7.0, 0.4, "rough"), + (3.3, -7.0, 0.5, "rough"), + (3.3, -9.0, 0.5, "rough"), + (3.7, -9.0, 0.6, "rough"), + ] + rows = slalom if name == "slalom" else slalom + grand_tail + return [ + Waypoint( + index=i, + id=f"{name}_{i}", + x=x, + y=y, + yaw_deg=0.0, + speed=speed, + policy=policy, + tolerance=0.15, + ) + for i, (x, y, speed, policy) in enumerate(rows, start=1) + ] + + +def load_route(path: Path) -> tuple[list[Waypoint], list[AvoidRegion]]: + with path.open("r", encoding="utf-8") as f: + payload = json.load(f) + if not isinstance(payload, dict): + raise ValueError(f"Route JSON root must be object: {path}") + return load_waypoints(payload), load_regions(payload) + + +def load_requested_route(args: argparse.Namespace) -> tuple[list[Waypoint], list[AvoidRegion]]: + if args.mission == "json": + waypoints, regions = load_route(args.points) + else: + waypoints, regions = builtin_mission_waypoints(args.mission), [] + + id_to_pos = {wp.id: i + 1 for i, wp in enumerate(waypoints)} + start = id_to_pos.get(str(args.start_id), max(1, int(args.start_index))) if args.start_id is not None else max(1, int(args.start_index)) + end_default = int(args.end_index) if args.end_index is not None else len(waypoints) + end = id_to_pos.get(str(args.end_id), end_default) if args.end_id is not None else end_default + if start > end or start > len(waypoints): + raise ValueError(f"Invalid waypoint slice: start={start} end={end} total={len(waypoints)}") + sliced = waypoints[start - 1 : min(end, len(waypoints))] + if len(sliced) < 1: + raise ValueError("Waypoint slice is empty") + return sliced, regions + + +def initial_pose_for_route(args: argparse.Namespace, waypoints: list[Waypoint]) -> tuple[float, float, float]: + if args.mission == "json": + start = waypoints[0] + return start.x, start.y, start.yaw_deg + float(args.start_yaw_offset_deg) + return 3.7, -9.0, 0.0 + + +def set_robot_pose( + io: MuJoCoIO, + x: float, + y: float, + yaw_deg: float, + z: float, + settle_steps: int, + default_dof_pos: np.ndarray, +) -> None: + yaw = math.radians(yaw_deg) + io.d.qpos[0] = x + io.d.qpos[1] = y + io.d.qpos[2] = z + io.d.qpos[3:7] = [math.cos(yaw * 0.5), 0.0, 0.0, math.sin(yaw * 0.5)] + io.d.qpos[io.qpos_ids] = default_dof_pos + io.d.qvel[:] = 0.0 + io.d.ctrl[io.ctrl_ids[:12]] = default_dof_pos[:12] + io.d.ctrl[io.ctrl_ids[12:]] = 0.0 + mujoco.mj_forward(io.m, io.d) + for _ in range(max(0, int(settle_steps))): + mujoco.mj_step(io.m, io.d) + + +def clearance_to_regions( + x: float, + y: float, + regions: list[AvoidRegion], +) -> tuple[float, str]: + best = float("inf") + best_name = "" + for region in regions: + polygon = region.polygon + if len(polygon) < 3: + continue + if point_in_polygon(x, y, polygon): + return 0.0, region.name + dist = min( + point_segment_distance(x, y, ax, ay, bx, by) + for (ax, ay), (bx, by) in zip(polygon, polygon[1:] + polygon[:1]) + ) + if dist < best: + best = dist + best_name = region.name + return best, best_name + + +def safety_filter_command( + desired: np.ndarray, + x: float, + y: float, + yaw: float, + target: Waypoint | None, + regions: list[AvoidRegion], + required_clearance: float, + cfg: SimConfig, + horizon_s: float, + dt_s: float, +) -> np.ndarray: + if not regions or target is None: + return desired + + base_vx = float(desired[0]) + base_vy = float(desired[1]) + base_wz = float(desired[2]) + vx_abs = abs(base_vx) + vy_abs = abs(base_vy) + vx_sign = -1.0 if base_vx < 0.0 else 1.0 + vy_sign = -1.0 if base_vy < 0.0 else 1.0 + vx_samples = [0.0, 0.35 * vx_abs, 0.65 * vx_abs, vx_abs] + vy_samples = [0.0, 0.5 * vy_abs, vy_abs] + wz_span = max(0.35, min(cfg.max_wz, abs(base_wz) + 0.35)) + wz_samples = [ + base_wz - wz_span, + base_wz - 0.5 * wz_span, + base_wz, + base_wz + 0.5 * wz_span, + base_wz + wz_span, + ] + best_cmd = desired.copy() + best_score = -float("inf") + initial_dist = math.hypot(target.x - x, target.y - y) + steps = max(1, int(round(horizon_s / dt_s))) + + for vx_mag in vx_samples: + for vy_mag in vy_samples: + for wz in wz_samples: + px, py, pyaw = x, y, yaw + min_margin = float("inf") + for _ in range(steps): + vx = vx_sign * vx_mag + vy = vy_sign * vy_mag + px += (vx * math.cos(pyaw) - vy * math.sin(pyaw)) * dt_s + py += (vx * math.sin(pyaw) + vy * math.cos(pyaw)) * dt_s + pyaw = WaypointFollower.normalize_angle(pyaw + wz * dt_s) + clearance, _ = clearance_to_regions(px, py, regions) + min_margin = min(min_margin, clearance - required_clearance) + final_dist = math.hypot(target.x - px, target.y - py) + progress = initial_dist - final_dist + yaw_cost = abs(wz - base_wz) + speed_cost = abs(vx_mag - vx_abs) + abs(vy_mag - vy_abs) + risk_penalty = 20.0 * max(0.0, -min_margin) + margin_reward = min(0.4, min_margin) + score = 3.0 * progress + margin_reward - risk_penalty - 0.12 * yaw_cost - 0.08 * speed_cost + if score > best_score: + best_score = score + best_cmd = np.array( + [ + vx_sign * vx_mag, + vy_sign * vy_mag, + WaypointFollower.clamp(wz, -cfg.max_wz, cfg.max_wz), + ], + dtype=np.float32, + ) + return best_cmd + + +def robot_yaw_from_qpos(qpos: np.ndarray) -> float: + qw, qx, qy, qz = qpos[3:7] + siny_cosp = 2.0 * (qw * qz + qx * qy) + cosy_cosp = 1.0 - 2.0 * (qy * qy + qz * qz) + return math.atan2(siny_cosp, cosy_cosp) + + +def quat_to_euler_wxyz(quat: np.ndarray) -> tuple[float, float, float]: + qw, qx, qy, qz = [float(v) for v in quat] + sinr_cosp = 2.0 * (qw * qx + qy * qz) + cosr_cosp = 1.0 - 2.0 * (qx * qx + qy * qy) + roll = math.atan2(sinr_cosp, cosr_cosp) + sinp = 2.0 * (qw * qy - qz * qx) + pitch = math.asin(max(-1.0, min(1.0, sinp))) + yaw = robot_yaw_from_qpos(np.array([0.0, 0.0, 0.0, qw, qx, qy, qz], dtype=np.float64)) + return roll, pitch, yaw + + +@dataclass(frozen=True) +class DashboardGeom: + name: str + kind: str + pos: tuple[float, ...] + size: tuple[float, ...] + quat: tuple[float, float, float, float] + rgba: tuple[float, float, float, float] + collidable: bool + + +def parse_dashboard_geoms(xml_path: Path) -> list[DashboardGeom]: + geoms: list[DashboardGeom] = [] + if not xml_path.exists(): + return geoms + try: + root = ET.parse(xml_path).getroot() + except ET.ParseError: + return geoms + for index, geom in enumerate(root.iter("geom"), start=1): + name = geom.get("name", f"geom_{index}") + if name == "floor": + continue + kind = geom.get("type", "box") + pos_text = geom.get("pos") + size_text = geom.get("size") + if not pos_text or not size_text: + continue + try: + pos = tuple(float(v) for v in pos_text.split()) + size = tuple(float(v) for v in size_text.split()) + quat_values = tuple(float(v) for v in geom.get("quat", "1 0 0 0").split()) + rgba_values = tuple(float(v) for v in geom.get("rgba", "0.65 0.65 0.65 1").split()) + except ValueError: + continue + if len(pos) < 2 or len(size) < 1 or len(quat_values) != 4: + continue + rgba = rgba_values if len(rgba_values) == 4 else (0.65, 0.65, 0.65, 1.0) + collidable = geom.get("contype", "1") != "0" and geom.get("conaffinity", "1") != "0" + geoms.append( + DashboardGeom( + name=name, + kind=kind, + pos=pos, + size=size, + quat=quat_values, # type: ignore[arg-type] + rgba=rgba, # type: ignore[arg-type] + collidable=collidable, + ) + ) + return geoms + + +def quat_yaw_wxyz(quat: tuple[float, float, float, float]) -> float: + qw, qx, qy, qz = quat + siny_cosp = 2.0 * (qw * qz + qx * qy) + cosy_cosp = 1.0 - 2.0 * (qy * qy + qz * qz) + return math.atan2(siny_cosp, cosy_cosp) + + +def local_rect_polygon( + origin_x: float, + origin_y: float, + yaw: float, + center_x: float, + center_y: float, + length: float, + width: float, +) -> list[tuple[float, float]]: + c = math.cos(yaw) + s = math.sin(yaw) + hx = length * 0.5 + hy = width * 0.5 + points = [] + for lx, ly in [(-hx, -hy), (hx, -hy), (hx, hy), (-hx, hy)]: + px = center_x + lx + py = center_y + ly + points.append((origin_x + px * c - py * s, origin_y + px * s + py * c)) + return points + + +def robot_wheel_local_points() -> list[tuple[str, float, float]]: + wheels = [] + for name, (pitch_x, pitch_y, knee_y, wheel_y, wheel_geom_y, knee_x) in ROBOT_WHEEL_POSITIONS.items(): + x = ROBOT_BODY_CENTER_OFFSET_X + pitch_x + knee_x + y = pitch_y + knee_y + wheel_y + wheel_geom_y + wheels.append((name, x, y)) + return wheels + + +class DashboardButton: + def __init__(self, rect: tuple[int, int, int, int], label: str, action: str) -> None: + self.rect_tuple = rect + self.label = label + self.action = action + + def rect(self, pygame: Any) -> Any: + return pygame.Rect(*self.rect_tuple) + + +class PygameRouteDashboard: + def __init__( + self, + waypoints: list[Waypoint], + regions: list[AvoidRegion], + terrain_xml: Path, + width: int, + height: int, + fps: float, + max_trail: int, + control_hz: float, + initial_sim_speed: float, + ) -> None: + os.environ.setdefault("PYGAME_HIDE_SUPPORT_PROMPT", "1") + # Older pkg_resources versions used by some pygame installs still + # reference pkgutil.ImpImporter, which was removed in Python 3.12. + if not hasattr(pkgutil, "ImpImporter"): + import zipimport + pkgutil.ImpImporter = zipimport.zipimporter # type: ignore[attr-defined] + import pygame + + self.pygame = pygame + pygame.init() + pygame.font.init() + self.screen = pygame.display.set_mode((width, height), pygame.RESIZABLE) + pygame.display.set_caption("nav_route_sim2sim_check dashboard") + self.clock = pygame.time.Clock() + self.font = pygame.font.Font(None, 24) + self.small_font = pygame.font.Font(None, 19) + self.title_font = pygame.font.Font(None, 28) + self.waypoints = waypoints + self.regions = regions + self.geoms = parse_dashboard_geoms(terrain_xml) + self.width = width + self.height = height + self.panel_width = 400 + self.fps = max(1.0, float(fps)) + self.control_hz = max(1.0, float(control_hz)) + self.max_trail = max(50, int(max_trail)) + self.trail: list[tuple[float, float]] = [] + self.zoom = 60.0 + self.pan_x = 0.0 + self.pan_y = 0.0 + self.speed_scale = 1.0 + self.sim_speed = max(0.1, min(10.0, float(initial_sim_speed))) + self.rewind_seconds = 0.0 + self.paused = False + self.buttons: list[DashboardButton] = [] + self._dragging = False + self._drag_start: tuple[int, int] | None = None + self._last_draw_time = 0.0 + self._fit_view() + + @property + def map_width(self) -> int: + return max(240, self.width - self.panel_width) + + def _fit_view(self) -> None: + points: list[tuple[float, float]] = [(wp.x, wp.y) for wp in self.waypoints] + for region in self.regions: + points.extend(region.polygon) + for geom in self.geoms: + if len(geom.pos) >= 2: + points.append((geom.pos[0], geom.pos[1])) + if not points: + return + xs = [p[0] for p in points] + ys = [p[1] for p in points] + span_x = max(1.0, max(xs) - min(xs)) + span_y = max(1.0, max(ys) - min(ys)) + margin = 70 + self.zoom = max( + 12.0, + min( + 120.0, + min((self.map_width - margin * 2) / span_x, (self.height - margin * 2) / span_y), + ), + ) + center_x = (min(xs) + max(xs)) * 0.5 + center_y = (min(ys) + max(ys)) * 0.5 + self.pan_x = -center_x * self.zoom + self.pan_y = center_y * self.zoom + + def _screen(self, x: float, y: float) -> tuple[int, int]: + sx = int(self.map_width / 2.0 + x * self.zoom + self.pan_x) + sy = int(self.height / 2.0 - y * self.zoom + self.pan_y) + return sx, sy + + def _draw_text(self, text: str, x: int, y: int, color: tuple[int, int, int] = (226, 232, 240), small: bool = False) -> None: + font = self.small_font if small else self.font + self.screen.blit(font.render(text, True, color), (x, y)) + + def _draw_card(self, rect: tuple[int, int, int, int], title: str | None = None) -> None: + pygame = self.pygame + pygame.draw.rect(self.screen, (20, 28, 48), rect, border_radius=7) + pygame.draw.rect(self.screen, (47, 61, 90), rect, width=1, border_radius=7) + if title: + self._draw_text(title, rect[0] + 12, rect[1] + 9, (203, 213, 225), small=True) + + def _draw_bar(self, x: int, y: int, w: int, value: float, lo: float, hi: float, color: tuple[int, int, int]) -> None: + pygame = self.pygame + frac = 0.0 if hi <= lo else max(0.0, min(1.0, (value - lo) / (hi - lo))) + pygame.draw.rect(self.screen, (8, 13, 25), (x, y, w, 8), border_radius=4) + pygame.draw.rect(self.screen, color, (x, y, int(w * frac), 8), border_radius=4) + + def _rgba_to_color(self, rgba: tuple[float, float, float, float], alpha: int | None = None) -> tuple[int, int, int] | tuple[int, int, int, int]: + rgb = tuple(max(0, min(255, int(v * 255))) for v in rgba[:3]) + if alpha is None: + return rgb + return (*rgb, alpha) + + def _draw_grid(self) -> None: + pygame = self.pygame + bg = (9, 14, 26) + grid = (28, 36, 58) + axis = (58, 72, 106) + self.screen.fill(bg) + step = 1.0 + left_world = -(self.map_width / 2.0 + self.pan_x) / self.zoom + right_world = (self.map_width / 2.0 - self.pan_x) / self.zoom + bottom_world = -(self.height / 2.0 - self.pan_y) / self.zoom + top_world = (self.height / 2.0 + self.pan_y) / self.zoom + gx = math.floor(left_world / step) * step + while gx <= right_world: + sx, _ = self._screen(gx, 0.0) + pygame.draw.line(self.screen, axis if abs(gx) < 1e-6 else grid, (sx, 0), (sx, self.height), 2 if abs(gx) < 1e-6 else 1) + gx += step + gy = math.floor(bottom_world / step) * step + while gy <= top_world: + _, sy = self._screen(0.0, gy) + pygame.draw.line(self.screen, axis if abs(gy) < 1e-6 else grid, (0, sy), (self.map_width, sy), 2 if abs(gy) < 1e-6 else 1) + gy += step + + def _draw_map(self, telemetry: dict[str, Any]) -> None: + pygame = self.pygame + self._draw_grid() + self._draw_xml_geoms() + overlay = pygame.Surface((self.map_width, self.height), pygame.SRCALPHA) + for region in self.regions: + pts = [self._screen(px, py) for px, py in region.polygon] + if len(pts) >= 3: + pygame.draw.polygon(overlay, (244, 63, 94, 72), pts) + pygame.draw.polygon(self.screen, (251, 113, 133), pts, width=2) + self.screen.blit(overlay, (0, 0)) + + route = [self._screen(wp.x, wp.y) for wp in self.waypoints] + if len(route) >= 2: + pygame.draw.lines(self.screen, (14, 165, 233), False, route, width=2) + active_index = int(telemetry.get("wp_index", 0)) + for index, wp in enumerate(self.waypoints): + color = (148, 163, 184) + radius = 4 + if index < active_index: + color = (34, 197, 94) + elif index == active_index: + color = (250, 204, 21) + radius = 7 + pygame.draw.circle(self.screen, color, self._screen(wp.x, wp.y), radius) + + if len(self.trail) >= 2: + pygame.draw.lines(self.screen, (34, 197, 94), False, [self._screen(x, y) for x, y in self.trail], width=3) + + x = float(telemetry.get("x", 0.0)) + y = float(telemetry.get("y", 0.0)) + yaw = float(telemetry.get("yaw", 0.0)) + self._draw_robot_pose(x, y, yaw) + + def _draw_robot_pose(self, x: float, y: float, yaw: float) -> None: + pygame = self.pygame + body = local_rect_polygon( + x, + y, + yaw, + ROBOT_BODY_CENTER_OFFSET_X, + 0.0, + ROBOT_BODY_LENGTH, + ROBOT_BODY_WIDTH, + ) + body_screen = [self._screen(px, py) for px, py in body] + pygame.draw.polygon(self.screen, (30, 41, 59), body_screen) + pygame.draw.polygon(self.screen, (226, 232, 240), body_screen, width=2) + + c = math.cos(yaw) + s = math.sin(yaw) + for _, lx, ly in robot_wheel_local_points(): + wx = x + lx * c - ly * s + wy = y + lx * s + ly * c + wheel = local_rect_polygon( + wx, + wy, + yaw, + 0.0, + 0.0, + ROBOT_WHEEL_VIS_LENGTH, + ROBOT_WHEEL_VIS_WIDTH, + ) + pygame.draw.polygon(self.screen, (2, 6, 23), [self._screen(px, py) for px, py in wheel]) + + origin = self._screen(x, y) + nose = self._screen(x + 0.32 * math.cos(yaw), y + 0.32 * math.sin(yaw)) + radius = max(3, int(self.zoom * 0.025)) + pygame.draw.circle(self.screen, (45, 212, 191), origin, radius) + pygame.draw.line(self.screen, (45, 212, 191), (origin[0] - radius - 2, origin[1]), (origin[0] + radius + 2, origin[1]), 1) + pygame.draw.line(self.screen, (45, 212, 191), (origin[0], origin[1] - radius - 2), (origin[0], origin[1] + radius + 2), 1) + pygame.draw.line(self.screen, (240, 253, 250), origin, nose, 2) + + def _draw_xml_geoms(self) -> None: + pygame = self.pygame + geom_layer = pygame.Surface((self.map_width, self.height), pygame.SRCALPHA) + for geom in self.geoms: + if len(geom.pos) < 2 or not geom.size: + continue + color = self._rgba_to_color(geom.rgba, 130 if geom.collidable else 55) + outline = self._rgba_to_color(geom.rgba) + if geom.kind == "box" and len(geom.size) >= 2: + cx, cy = geom.pos[0], geom.pos[1] + sx, sy = geom.size[0], geom.size[1] + yaw = quat_yaw_wxyz(geom.quat) + points = [] + for lx, ly in [(-sx, -sy), (sx, -sy), (sx, sy), (-sx, sy)]: + wx = cx + lx * math.cos(yaw) - ly * math.sin(yaw) + wy = cy + lx * math.sin(yaw) + ly * math.cos(yaw) + points.append(self._screen(wx, wy)) + pygame.draw.polygon(geom_layer, color, points) + pygame.draw.polygon(self.screen, outline, points, width=1) + elif geom.kind == "cylinder": + cx, cy = self._screen(geom.pos[0], geom.pos[1]) + radius = max(2, int(abs(geom.size[0]) * self.zoom)) + pygame.draw.circle(geom_layer, color, (cx, cy), radius) + pygame.draw.circle(self.screen, outline, (cx, cy), radius, width=1) + elif geom.kind == "plane": + continue + self.screen.blit(geom_layer, (0, 0)) + + def _draw_panel(self, telemetry: dict[str, Any]) -> None: + pygame = self.pygame + x0 = self.map_width + pygame.draw.rect(self.screen, (12, 18, 32), (x0, 0, self.panel_width, self.height)) + pygame.draw.line(self.screen, (55, 65, 88), (x0, 0), (x0, self.height), 2) + x = x0 + 16 + y = 14 + self.screen.blit(self.title_font.render("Route Monitor", True, (248, 250, 252)), (x, y)) + self._draw_text("MuJoCo sim2sim telemetry", x, y + 25, (148, 163, 184), small=True) + + y += 58 + card_w = self.panel_width - 32 + self._draw_card((x, y, card_w, 112), "state") + mode_color = (250, 204, 21) if str(telemetry.get("mode", "")).lower().startswith("crawl") else (45, 212, 191) + self._draw_text(str(telemetry.get("mode", "rough")), x + 12, y + 31, mode_color) + self._draw_text(f"t {float(telemetry.get('time', 0.0)):.2f}s", x + 130, y + 31, (226, 232, 240)) + self._draw_text( + f"wp {telemetry.get('wp_id', '')} {int(telemetry.get('wp_index', 0))}/{int(telemetry.get('wp_count', 0))}", + x + 12, + y + 60, + (226, 232, 240), + ) + self._draw_text( + f"x {float(telemetry.get('x', 0.0)):.2f} y {float(telemetry.get('y', 0.0)):.2f} yaw {math.degrees(float(telemetry.get('yaw', 0.0))):.1f}", + x + 12, + y + 86, + (148, 163, 184), + small=True, + ) + + y += 124 + self._draw_card((x, y, card_w, 128), "command limits") + cmd_vx = float(telemetry.get("cmd_vx", 0.0)) + cmd_vy = float(telemetry.get("cmd_vy", 0.0)) + cmd_wz = float(telemetry.get("cmd_wz", 0.0)) + for row, (name, value, color) in enumerate( + [ + ("x", cmd_vx, (34, 197, 94)), + ("y", cmd_vy, (14, 165, 233)), + ("yaw", cmd_wz, (250, 204, 21)), + ] + ): + yy = y + 32 + row * 30 + self._draw_text(f"{name} {value:+.3f}", x + 12, yy - 7, (226, 232, 240), small=True) + self._draw_bar(x + 90, yy, 245, value, -1.0, 1.0, color) + cx = x + 90 + 245 // 2 + pygame.draw.line(self.screen, (71, 85, 105), (cx, yy - 3), (cx, yy + 11), 1) + + y += 140 + self._draw_card((x, y, card_w, 112), "safety") + margin = float(telemetry.get("margin", 0.0)) + margin_color = (251, 113, 133) if margin < 0.0 else (34, 197, 94) + self._draw_text(f"margin {margin:+.3f} m", x + 12, y + 32, margin_color) + self._draw_text(f"clearance {float(telemetry.get('clearance', 0.0)):.3f} m", x + 190, y + 32, (226, 232, 240)) + self._draw_text(f"region {telemetry.get('region', '')}", x + 12, y + 62, (148, 163, 184), small=True) + self._draw_text( + f"roll {float(telemetry.get('roll_deg', 0.0)):.1f} pitch {float(telemetry.get('pitch_deg', 0.0)):.1f} tilt {float(telemetry.get('max_tilt_deg', 0.0)):.1f}", + x + 12, + y + 84, + (148, 163, 184), + small=True, + ) + + y += 124 + self._draw_controls(x, y, card_w) + + def _draw_controls(self, x: int, y: int, card_w: int) -> None: + pygame = self.pygame + self._draw_card((x, y, card_w, min(245, self.height - y - 12)), "controls") + x += 12 + y += 32 + self._draw_text(f"nav {self.speed_scale:.2f}x", x, y, (226, 232, 240)) + self._draw_text(f"sim {self.sim_speed:.1f}x", x + 132, y, (226, 232, 240)) + self._draw_text(f"rtf {float(self._last_rtf):.1f}x" if hasattr(self, "_last_rtf") else "rtf --", x + 250, y, (148, 163, 184), small=True) + y += 30 + labels = [ + ("nav -", "speed_down"), + ("nav +", "speed_up"), + ("nav 1x", "speed_normal"), + ("sim -", "sim_down"), + ("sim +", "sim_up"), + ("sim 1x", "sim_normal"), + ("sim 5x", "sim_5"), + ("sim 10x", "sim_10"), + ("rew -1s", "rewind_1"), + ("rew -5s", "rewind_5"), + ("pause", "pause"), + ("fit", "fit"), + ] + self.buttons = [] + bx = x + by = y + for i, (label, action) in enumerate(labels): + if i and i % 3 == 0: + bx = x + by += 36 + button = DashboardButton((bx, by, 104, 28), label, action) + rect = button.rect(pygame) + fill = (31, 41, 55) + if action == "pause" and self.paused: + fill = (245, 158, 11) + elif action == "speed_normal" and abs(self.speed_scale - 1.0) < 1e-6: + fill = (16, 185, 129) + elif action == "sim_normal" and abs(self.sim_speed - 1.0) < 1e-6: + fill = (14, 165, 233) + pygame.draw.rect(self.screen, fill, rect, border_radius=5) + pygame.draw.rect(self.screen, (71, 85, 105), rect, width=1, border_radius=5) + text = self.small_font.render(label, True, (248, 250, 252)) + self.screen.blit(text, (rect.centerx - text.get_width() // 2, rect.centery - text.get_height() // 2)) + self.buttons.append(button) + bx += 112 + by += 48 + self._draw_text("keys: +/- nav, [/ ] sim, backspace rewind, space pause", x, by, (148, 163, 184), small=True) + self._draw_text("wheel zoom, right drag pan, f fit", x, by + 20, (148, 163, 184), small=True) + + def pump_events(self) -> bool: + pygame = self.pygame + for event in pygame.event.get(): + if event.type == pygame.QUIT: + return False + if event.type == pygame.KEYDOWN: + if event.key in (pygame.K_EQUALS, pygame.K_PLUS, pygame.K_KP_PLUS): + self.speed_scale = min(10.0, self.speed_scale + 0.10) + elif event.key in (pygame.K_MINUS, pygame.K_KP_MINUS): + self.speed_scale = max(0.05, self.speed_scale - 0.10) + elif event.key == pygame.K_0: + self.speed_scale = 1.0 + elif event.key == pygame.K_RIGHTBRACKET: + self.sim_speed = self._next_sim_speed(1) + elif event.key == pygame.K_LEFTBRACKET: + self.sim_speed = self._next_sim_speed(-1) + elif event.key == pygame.K_BACKSPACE: + self.rewind_seconds = max(self.rewind_seconds, 1.0) + elif event.key == pygame.K_SPACE: + self.paused = not self.paused + elif event.key == pygame.K_f: + self._fit_view() + if event.type == pygame.VIDEORESIZE: + self.width = max(700, int(event.w)) + self.height = max(480, int(event.h)) + self.screen = pygame.display.set_mode((self.width, self.height), pygame.RESIZABLE) + self._fit_view() + if event.type == pygame.MOUSEBUTTONDOWN: + if event.button == 1: + for button in self.buttons: + if button.rect(pygame).collidepoint(event.pos): + self._handle_button(button.action) + break + elif event.button == 3: + self._dragging = True + self._drag_start = event.pos + elif event.button == 4 and event.pos[0] < self.map_width: + self.zoom = min(240.0, self.zoom * 1.12) + elif event.button == 5 and event.pos[0] < self.map_width: + self.zoom = max(8.0, self.zoom / 1.12) + if event.type == pygame.MOUSEBUTTONUP and event.button == 3: + self._dragging = False + self._drag_start = None + if event.type == pygame.MOUSEMOTION and self._dragging and self._drag_start is not None: + dx = event.pos[0] - self._drag_start[0] + dy = event.pos[1] - self._drag_start[1] + self.pan_x += dx + self.pan_y += dy + self._drag_start = event.pos + return True + + def draw_if_due(self, telemetry: dict[str, Any], force: bool = False) -> None: + now = time.perf_counter() + draw_interval = 1.0 / max(1.0, self.fps) + if force or now - self._last_draw_time >= draw_interval: + self._last_rtf = float(telemetry.get("rtf", 0.0)) + self.trail.append((float(telemetry.get("x", 0.0)), float(telemetry.get("y", 0.0)))) + if len(self.trail) > self.max_trail: + self.trail = self.trail[-self.max_trail :] + self._draw_map(telemetry) + self._draw_panel(telemetry) + self.pygame.display.flip() + self._last_draw_time = now + + def _handle_button(self, action: str) -> None: + if action == "speed_down": + self.speed_scale = max(0.05, self.speed_scale - 0.10) + elif action == "speed_up": + self.speed_scale = min(10.0, self.speed_scale + 0.10) + elif action == "speed_normal": + self.speed_scale = 1.0 + elif action == "sim_down": + self.sim_speed = self._next_sim_speed(-1) + elif action == "sim_up": + self.sim_speed = self._next_sim_speed(1) + elif action == "sim_normal": + self.sim_speed = 1.0 + elif action == "sim_5": + self.sim_speed = 5.0 + elif action == "sim_10": + self.sim_speed = 10.0 + elif action == "rewind_1": + self.rewind_seconds = max(self.rewind_seconds, 1.0) + elif action == "rewind_5": + self.rewind_seconds = max(self.rewind_seconds, 5.0) + elif action == "pause": + self.paused = not self.paused + elif action == "fit": + self._fit_view() + + def _next_sim_speed(self, direction: int) -> float: + steps = [0.2, 0.5, 0.8, 1.0, 1.5, 2.0, 3.0, 5.0, 10.0] + current = float(self.sim_speed) + if direction > 0: + for value in steps: + if value > current + 1e-6: + return value + return steps[-1] + for value in reversed(steps): + if value < current - 1e-6: + return value + return steps[0] + + def consume_rewind_seconds(self) -> float: + value = self.rewind_seconds + self.rewind_seconds = 0.0 + return value + + def close(self) -> None: + self.pygame.quit() + + +def capture_route_snapshot(io: MuJoCoIO, follower: WaypointFollower) -> RouteSnapshot: + return RouteSnapshot( + time=float(io.d.time), + qpos=io.d.qpos.copy(), + qvel=io.d.qvel.copy(), + ctrl=io.d.ctrl.copy(), + follower_index=int(follower.index), + follower_turn_in_place=bool(follower.turn_in_place), + follower_stable_count=int(follower.stable_count), + follower_wp_start_time=float(follower.wp_start_time), + follower_best_dist=float(getattr(follower, "best_dist", 0.0)) if hasattr(follower, "best_dist") else None, + follower_last_progress_time=float(getattr(follower, "last_progress_time", 0.0)) if hasattr(follower, "last_progress_time") else None, + follower_recovery_until=float(getattr(follower, "recovery_until", 0.0)) if hasattr(follower, "recovery_until") else None, + follower_recovery_count=int(getattr(follower, "recovery_count", 0)) if hasattr(follower, "recovery_count") else None, + follower_recovery_turn_sign=float(getattr(follower, "recovery_turn_sign", 1.0)) if hasattr(follower, "recovery_turn_sign") else None, + ) + + +def restore_route_snapshot(io: MuJoCoIO, follower: WaypointFollower, snapshot: RouteSnapshot) -> None: + io.d.time = snapshot.time + io.d.qpos[:] = snapshot.qpos + io.d.qvel[:] = snapshot.qvel + io.d.ctrl[:] = snapshot.ctrl + follower.index = snapshot.follower_index + follower.turn_in_place = snapshot.follower_turn_in_place + follower.stable_count = snapshot.follower_stable_count + follower.wp_start_time = snapshot.follower_wp_start_time + if snapshot.follower_best_dist is not None and hasattr(follower, "best_dist"): + setattr(follower, "best_dist", snapshot.follower_best_dist) + if snapshot.follower_last_progress_time is not None and hasattr(follower, "last_progress_time"): + setattr(follower, "last_progress_time", snapshot.follower_last_progress_time) + if snapshot.follower_recovery_until is not None and hasattr(follower, "recovery_until"): + setattr(follower, "recovery_until", snapshot.follower_recovery_until) + if snapshot.follower_recovery_count is not None and hasattr(follower, "recovery_count"): + setattr(follower, "recovery_count", snapshot.follower_recovery_count) + if snapshot.follower_recovery_turn_sign is not None and hasattr(follower, "recovery_turn_sign"): + setattr(follower, "recovery_turn_sign", snapshot.follower_recovery_turn_sign) + mujoco.mj_forward(io.m, io.d) + + +def run_sim(args: argparse.Namespace) -> tuple[SimResult, Path | None, Path]: + args.out_dir.mkdir(parents=True, exist_ok=True) + stamp = time.strftime("%Y%m%d_%H%M%S") + f"_{time.time_ns() % 1_000_000_000:09d}" + run_dir = args.out_dir / f"route_check_{stamp}" + run_dir.mkdir(parents=True, exist_ok=True) + + waypoints, regions = load_requested_route(args) + footprint_radius = ( + float(args.footprint_radius) + if args.footprint_radius is not None + else default_lateral_footprint_radius() + ) + required_clearance = footprint_radius + float(args.avoid_margin) + cfg = SimConfig( + max_vx=float(args.max_vx), + max_vy=float(args.max_vy), + max_wz=float(args.max_wz), + kp_dist=float(args.kp_dist), + kp_yaw=float(args.kp_yaw), + yaw_stop_threshold_deg=float(args.yaw_stop_threshold_deg), + turn_in_place_enter_deg=float(args.turn_in_place_enter_deg), + turn_in_place_exit_deg=float(args.turn_in_place_exit_deg), + max_total_time_s=float(args.max_time), + waypoint_timeout_s=float(args.waypoint_timeout), + lookahead_m=float(args.lookahead), + min_cmd_vx=float(args.min_cmd_vx), + creep_cmd_vx=float(args.creep_cmd_vx), + cmd_vx_scale=float(args.cmd_vx_scale), + stuck_timeout_s=float(args.stuck_timeout), + recovery_duration_s=float(args.recovery_duration), + max_recoveries=int(args.max_recoveries), + slalom_script_enabled=bool(args.slalom_script), + slalom_script_start_tolerance=float(args.slalom_script_start_tolerance), + slalom_script_pos_tolerance=float(args.slalom_script_pos_tolerance), + slalom_script_yaw_tolerance_deg=float(args.slalom_script_yaw_tolerance_deg), + slalom_script_stable_cycles=int(args.slalom_script_stable_cycles), + slalom_script_rotate_steps_enabled=bool(args.slalom_script_rotate_steps), + slalom_script_final_rotate_enabled=bool(args.slalom_script_final_rotate), + slalom_script_require_yaw_at_step=bool(args.slalom_script_require_yaw_at_step), + slalom_script_kp_dist=float(args.slalom_script_kp_dist), + slalom_script_kp_yaw=float(args.slalom_script_kp_yaw), + slalom_script_max_vx=float(args.slalom_script_max_vx), + slalom_script_max_vy=float(args.slalom_script_max_vy), + slalom_script_max_wz=float(args.slalom_script_max_wz), + slalom_script_min_cmd_linear=float(args.slalom_script_min_cmd_linear), + slalom_script_min_cmd_angular=float(args.slalom_script_min_cmd_angular), + slalom_script_min_cmd_epsilon=float(args.slalom_script_min_cmd_epsilon), + slalom_script_min_step_distance=float(args.slalom_script_min_step_distance), + slalom_script_yaw_gate_deg=float(args.slalom_script_yaw_gate_deg), + slalom_script_drive_yaw_source=str(args.slalom_script_drive_yaw_source), + slalom_script_curvature_speed_enabled=bool(args.slalom_script_curvature_speed), + slalom_script_curvature_min_scale=max( + 0.1, min(1.0, float(args.slalom_script_curvature_min_scale)) + ), + ) + + combined_xml = make_combined_terrain_xml(args.terrain_xml.resolve(), run_dir) + old_cwd = Path.cwd() + try: + io = MuJoCoIO(combined_xml, args.robot_xml.resolve(), args.hfield_dir.resolve()) + finally: + os.chdir(old_cwd) + if args.policy_backend == "rough-ik-crawl": + policy = RoughPolicyIkCrawlBackend(args.onnx.resolve()) + elif args.policy_backend == "policy-runner": + crawl_path = args.crawl_onnx.resolve() if args.crawl_onnx and args.crawl_onnx.exists() else None + policy = ExistingPolicyBackend(args.onnx.resolve(), crawl_path) + else: + policy = DirectOnnxBackend(args.onnx.resolve(), DEPLOY_DEFAULT_DOF_POS) + follower: WaypointFollower + if args.follower in {"slalom-script", "nav-script"}: + follower = SlalomScriptFollower(waypoints, cfg) + elif args.follower == "nav-good": + follower = NavGoodFollower(waypoints, cfg) + elif args.follower == "nav-sim2sim": + follower = NavSim2SimFollower(waypoints, cfg) + elif args.follower == "pure-pursuit": + follower = PurePursuitFollower(waypoints, cfg) + else: + follower = WaypointFollower(waypoints, cfg) + if ( + args.skip_initial_waypoint + or (args.auto_skip_slice_start and int(args.start_index) > 1) + ) and len(waypoints) > 1: + follower.index = 1 + + start_x, start_y, start_yaw_deg = initial_pose_for_route(args, waypoints) + start_x += float(args.start_x_offset) + start_y += float(args.start_y_offset) + set_robot_pose( + io, + start_x, + start_y, + start_yaw_deg, + float(args.start_z), + int(args.settle_steps), + policy.default_dof_pos, + ) + policy.reset() + follower.reset_timing(io.d.time) + + sim_steps_per_control = max(1, int(round((1.0 / cfg.control_hz) / io.m.opt.timestep))) + csv_path = None if args.no_csv else run_dir / "trajectory.csv" + csv_file = None + writer = None + if csv_path is not None: + csv_file = csv_path.open("w", newline="", encoding="utf-8") + writer = csv.writer(csv_file) + writer.writerow( + [ + "time", + "wp_index", + "wp_id", + "script_active", + "script_step", + "script_step_count", + "x", + "y", + "z", + "yaw_deg", + "roll_deg", + "pitch_deg", + "cmd_vx", + "cmd_vy", + "cmd_wz", + "clearance", + "margin", + "region", + "raw_wheel_fl", + "raw_wheel_fr", + "raw_wheel_rl", + "raw_wheel_rr", + "qvel_wheel_fl", + "qvel_wheel_fr", + "qvel_wheel_rl", + "qvel_wheel_rr", + ] + ) + + min_clearance = float("inf") + min_clearance_region = "" + min_clearance_wp = "" + max_roll = 0.0 + max_pitch = 0.0 + max_tilt = 0.0 + samples = 0 + reason = "max time reached" + success = False + + viewer = None + if args.viewer: + viewer = mujoco.viewer.launch_passive(io.m, io.d) + viewer.cam.distance = 5.0 + viewer.cam.elevation = -35.0 + viewer.cam.azimuth = 135.0 + sim_speed_factor = max(0.1, min(10.0, float(args.sim_speed))) + if args.dashboard: + sim_speed_factor = max(0.1, min(10.0, float(args.dashboard_sim_speed))) + dashboard = None + if args.dashboard: + dashboard = PygameRouteDashboard( + waypoints=waypoints, + regions=regions, + terrain_xml=args.terrain_xml.resolve(), + width=int(args.dashboard_width), + height=int(args.dashboard_height), + fps=float(args.dashboard_fps), + max_trail=int(args.dashboard_trail), + control_hz=cfg.control_hz, + initial_sim_speed=sim_speed_factor, + ) + snapshots: list[RouteSnapshot] = [] + snapshot_keep_s = 45.0 + control_dt = 1.0 / cfg.control_hz + next_exec_time = time.perf_counter() + wall_start_time = next_exec_time + sim_start_time = float(io.d.time) + randomizer = random.Random(int(args.random_seed)) + command_delay_steps = max(0, int(round(float(args.command_delay_ms) * 0.001 * cfg.control_hz))) + action_delay_steps = max(0, int(round(float(args.action_delay_ms) * 0.001 * cfg.control_hz))) + command_queue: deque[np.ndarray] = deque() + action_queue: deque[np.ndarray] = deque() + last_deployed_command = np.zeros(3, dtype=np.float32) + base_body_id = mujoco.mj_name2id(io.m, mujoco.mjtObj.mjOBJ_BODY, "base_link") + + try: + while float(io.d.time) - sim_start_time < cfg.max_total_time_s: + if viewer is not None and not viewer.is_running(): + reason = "viewer closed" + break + if dashboard is not None and not dashboard.pump_events(): + reason = "dashboard closed" + break + if dashboard is not None: + sim_speed_factor = max(0.1, min(10.0, float(dashboard.sim_speed))) + x = float(io.d.qpos[0]) + y = float(io.d.qpos[1]) + z = float(io.d.qpos[2]) + yaw = robot_yaw_from_qpos(io.d.qpos) + sensed_x = x + sensed_y = y + sensed_yaw = yaw + if args.deployment_randomization: + sensed_x += randomizer.gauss(0.0, max(0.0, float(args.pose_noise_xy))) + sensed_y += randomizer.gauss(0.0, max(0.0, float(args.pose_noise_xy))) + sensed_yaw += math.radians( + randomizer.gauss(0.0, max(0.0, float(args.pose_noise_yaw_deg))) + ) + heading_yaw = follower.normalize_angle(sensed_yaw + math.radians(float(args.heading_offset_deg))) + roll, pitch, _ = quat_to_euler_wxyz(io.d.qpos[3:7].copy()) + roll_deg = math.degrees(roll) + pitch_deg = math.degrees(pitch) + max_roll = max(max_roll, abs(roll_deg)) + max_pitch = max(max_pitch, abs(pitch_deg)) + max_tilt = max(max_tilt, math.hypot(roll_deg, pitch_deg)) + + active = follower.active + active_id = active.id if active is not None else "done" + clearance, region_name = clearance_to_regions(x, y, regions) + margin = clearance - required_clearance + if clearance < min_clearance: + min_clearance = clearance + min_clearance_region = region_name + min_clearance_wp = active_id + + if z < float(args.min_base_z) or abs(roll_deg) > 70.0 or abs(pitch_deg) > 70.0: + reason = f"robot fell or tipped at t={io.d.time:.2f}s" + break + if args.stop_on_clearance_violation and margin < 0.0: + reason = ( + f"clearance violation at t={io.d.time:.2f}s: " + f"clearance={clearance:.3f} required={required_clearance:.3f} region={region_name}" + ) + break + + command, nav_state = follower.update(sensed_x, sensed_y, heading_yaw, io.d.time) + if nav_state == "complete": + success = True + reason = "route complete" + break + if nav_state and nav_state.startswith("timeout"): + reason = nav_state + break + if nav_state: + reason = nav_state + break + skip_local_safety = False + if active is not None and (active.policy or "").lower() == "crawl": + skip_local_safety = True + if hasattr(follower, "_is_charge_segment") and active is not None: + skip_local_safety = bool(getattr(follower, "_is_charge_segment")(x, y, active)) or skip_local_safety + if args.local_safety and not skip_local_safety: + command = safety_filter_command( + command, + x, + y, + heading_yaw, + follower.active, + regions, + required_clearance, + cfg, + float(args.safety_horizon), + float(args.safety_dt), + ) + if dashboard is not None: + command[0] = float(command[0]) * dashboard.speed_scale + if dashboard.paused: + command[:] = 0.0 + command = np.clip(command, -1.0, 1.0).astype(np.float32) + if args.deployment_randomization: + if randomizer.random() < max(0.0, min(1.0, float(args.command_dropout_prob))): + command = last_deployed_command.copy() + command_queue.append(command.copy()) + command = command_queue.popleft() if len(command_queue) > command_delay_steps else np.zeros(3, dtype=np.float32) + last_deployed_command = command.copy() + + use_route_policy = args.enable_policy_switch or args.policy_backend == "rough-ik-crawl" + active_policy = active.policy if active is not None and use_route_policy else "rough" + policy.maybe_switch_policy(active_policy) + policy_mode = str(getattr(policy, "requested_mode", getattr(getattr(policy, "runner", None), "current_policy_name", active_policy))) + default_dof_pos = policy.default_dof_pos + obs = io.get_obs_53d(command, default_dof_pos, policy.last_actions) + scaled_actions, raw_actions = policy.step(obs) + if args.deployment_randomization: + action_queue.append(scaled_actions.copy()) + scaled_actions = action_queue.popleft() if len(action_queue) > action_delay_steps else np.zeros_like(scaled_actions) + io.send_actions(scaled_actions, default_dof_pos) + for _ in range(sim_steps_per_control): + if args.deployment_randomization and base_body_id != -1: + io.d.xfrc_applied[base_body_id] = 0.0 + push_phase = (float(io.d.time) - sim_start_time) % max(0.1, float(args.push_interval)) + if push_phase < max(0.0, float(args.push_duration)): + angle = randomizer.uniform(-math.pi, math.pi) + force = max(0.0, float(args.push_force)) + io.d.xfrc_applied[base_body_id, 0] = force * math.cos(angle) + io.d.xfrc_applied[base_body_id, 1] = force * math.sin(angle) + mujoco.mj_step(io.m, io.d) + pole_contact = None + pole_contact_robot_geom = None + pole_contact_robot_body = None + pole_contact_position = None + border_contact = None + for contact_index in range(io.d.ncon): + contact = io.d.contact[contact_index] + geom1 = mujoco.mj_id2name(io.m, mujoco.mjtObj.mjOBJ_GEOM, contact.geom1) or "" + geom2 = mujoco.mj_id2name(io.m, mujoco.mjtObj.mjOBJ_GEOM, contact.geom2) or "" + if geom1.startswith("slalom_pole_") or geom2.startswith("slalom_pole_"): + pole_contact = geom1 if geom1.startswith("slalom_pole_") else geom2 + robot_geom_id = contact.geom2 if geom1.startswith("slalom_pole_") else contact.geom1 + pole_contact_robot_geom = geom2 if geom1.startswith("slalom_pole_") else geom1 + robot_body_id = int(io.m.geom_bodyid[robot_geom_id]) + pole_contact_robot_body = ( + mujoco.mj_id2name(io.m, mujoco.mjtObj.mjOBJ_BODY, robot_body_id) or "unknown" + ) + pole_contact_position = tuple(float(value) for value in contact.pos) + break + if geom1.startswith("border_") or geom2.startswith("border_"): + border_contact = geom1 if geom1.startswith("border_") else geom2 + break + if pole_contact is not None: + contact_xyz = "" + if pole_contact_position is not None: + contact_xyz = ( + f" at xyz=({pole_contact_position[0]:.3f}," + f"{pole_contact_position[1]:.3f},{pole_contact_position[2]:.3f})" + ) + reason = ( + f"physical contact: robot body {pole_contact_robot_body or 'unknown'} " + f"geom {pole_contact_robot_geom or 'unnamed'} with " + f"{pole_contact}{contact_xyz} at t={io.d.time:.2f}s near waypoint {active_id}" + ) + break + if border_contact is not None: + reason = f"physical contact with field boundary {border_contact} at t={io.d.time:.2f}s near waypoint {active_id}" + break + if pole_contact is not None or border_contact is not None: + break + if dashboard is not None: + snapshots.append(capture_route_snapshot(io, follower)) + cutoff_time = float(io.d.time) - snapshot_keep_s + while len(snapshots) > 2 and snapshots[0].time < cutoff_time: + snapshots.pop(0) + viewer_sync_stride = max(1, int(args.viewer_sync_every), int(math.ceil(max(1.0, sim_speed_factor) * 2.0))) + if viewer is not None and samples % viewer_sync_stride == 0: + base_id = mujoco.mj_name2id(io.m, mujoco.mjtObj.mjOBJ_BODY, "base_link") + if base_id != -1: + viewer.cam.lookat[:] = io.d.xpos[base_id] + viewer.sync() + + if dashboard is not None: + wall_elapsed = max(1e-6, time.perf_counter() - wall_start_time) + rtf = max(0.0, (float(io.d.time) - sim_start_time) / wall_elapsed) + telemetry = { + "time": float(io.d.time), + "rtf": rtf, + "status": "running", + "mode": policy_mode, + "wp_index": follower.index, + "wp_count": len(waypoints), + "wp_id": active_id, + "x": x, + "y": y, + "z": z, + "yaw": yaw, + "roll_deg": roll_deg, + "pitch_deg": pitch_deg, + "cmd_vx": float(command[0]), + "cmd_vy": float(command[1]), + "cmd_wz": float(command[2]), + "clearance": clearance, + "margin": margin, + "region": region_name, + "min_margin": min_clearance - required_clearance, + "max_tilt_deg": max_tilt, + } + dashboard.draw_if_due(telemetry) + rewind_seconds = dashboard.consume_rewind_seconds() + if rewind_seconds > 0.0 and snapshots: + target_time = max(0.0, float(io.d.time) - rewind_seconds) + rewind_snapshot = snapshots[0] + for snapshot in snapshots: + if snapshot.time <= target_time: + rewind_snapshot = snapshot + else: + break + restore_route_snapshot(io, follower, rewind_snapshot) + snapshots = [snapshot for snapshot in snapshots if snapshot.time <= rewind_snapshot.time] + if hasattr(policy, "reset"): + policy.reset() + reason = "max time reached" + next_exec_time = time.perf_counter() + + if writer is not None and samples % max(1, int(args.sample_every)) == 0: + writer.writerow( + [ + f"{io.d.time:.4f}", + follower.index, + active_id, + int(bool(getattr(follower, "slalom_script_active", False))), + int(getattr(follower, "slalom_script_step_index", -1)), + len(getattr(follower, "slalom_script_steps", [])), + f"{x:.5f}", + f"{y:.5f}", + f"{z:.5f}", + f"{math.degrees(yaw):.3f}", + f"{roll_deg:.3f}", + f"{pitch_deg:.3f}", + f"{float(command[0]):.4f}", + f"{float(command[1]):.4f}", + f"{float(command[2]):.4f}", + f"{clearance:.5f}", + f"{margin:.5f}", + region_name, + f"{raw_actions[12]:.5f}", + f"{raw_actions[13]:.5f}", + f"{raw_actions[14]:.5f}", + f"{raw_actions[15]:.5f}", + f"{io.d.qvel[io.qvel_ids[12]]:.5f}", + f"{io.d.qvel[io.qvel_ids[13]]:.5f}", + f"{io.d.qvel[io.qvel_ids[14]]:.5f}", + f"{io.d.qvel[io.qvel_ids[15]]:.5f}", + ] + ) + samples += 1 + jitter_s = 0.0 + if args.deployment_randomization: + jitter_s = randomizer.uniform( + -max(0.0, float(args.control_jitter_ms)) * 0.001, + max(0.0, float(args.control_jitter_ms)) * 0.001, + ) + dt_real = max(0.001, control_dt + jitter_s) / sim_speed_factor + next_exec_time += dt_real + now = time.perf_counter() + sleep_time = next_exec_time - now + if sleep_time > 0.0: + time.sleep(sleep_time) + elif sleep_time < -dt_real: + next_exec_time = now + finally: + wall_time = max(1e-6, time.perf_counter() - wall_start_time) + elapsed_sim_time = max(0.0, float(io.d.time) - sim_start_time) + real_time_factor = max(0.0, elapsed_sim_time / wall_time) + if csv_file is not None: + csv_file.close() + if viewer is not None: + viewer.close() + if dashboard is not None: + dashboard.close() + policy.close() + + result = SimResult( + success=success, + reason=reason, + sim_time=elapsed_sim_time, + reached_count=follower.index, + waypoint_count=len(waypoints), + min_clearance=float(min_clearance), + min_margin=float(min_clearance - required_clearance), + min_clearance_region=min_clearance_region, + min_clearance_wp=min_clearance_wp, + max_roll_deg=max_roll, + max_pitch_deg=max_pitch, + max_tilt_deg=max_tilt, + samples=samples, + wall_time=wall_time, + real_time_factor=real_time_factor, + ) + report = { + "success": result.success, + "reason": result.reason, + "sim_time": round(result.sim_time, 4), + "reached_count": result.reached_count, + "waypoint_count": result.waypoint_count, + "min_clearance": round(result.min_clearance, 6), + "required_clearance": round(required_clearance, 6), + "min_margin": round(result.min_margin, 6), + "min_clearance_region": result.min_clearance_region, + "min_clearance_wp": result.min_clearance_wp, + "max_roll_deg": round(result.max_roll_deg, 3), + "max_pitch_deg": round(result.max_pitch_deg, 3), + "max_tilt_deg": round(result.max_tilt_deg, 3), + "samples": result.samples, + "wall_time": round(result.wall_time, 4), + "real_time_factor": round(result.real_time_factor, 4), + "sim_speed": round(sim_speed_factor, 4), + "points": str(args.points.resolve()), + "mission": args.mission, + "terrain_xml": str(args.terrain_xml.resolve()), + "onnx": str(args.onnx.resolve()), + "crawl_onnx": str(args.crawl_onnx.resolve()) if args.crawl_onnx else None, + "policy_backend": args.policy_backend, + "enable_policy_switch": args.enable_policy_switch, + "follower": args.follower, + "max_vx": args.max_vx, + "max_vy": args.max_vy, + "max_wz": args.max_wz, + "lookahead": args.lookahead, + "cmd_vx_scale": args.cmd_vx_scale, + "slalom_script": args.slalom_script, + "slalom_script_start_tolerance": args.slalom_script_start_tolerance, + "slalom_script_pos_tolerance": args.slalom_script_pos_tolerance, + "slalom_script_kp_dist": args.slalom_script_kp_dist, + "slalom_script_kp_yaw": args.slalom_script_kp_yaw, + "slalom_script_max_vx": args.slalom_script_max_vx, + "slalom_script_max_vy": args.slalom_script_max_vy, + "slalom_script_max_wz": args.slalom_script_max_wz, + "slalom_script_min_cmd_linear": args.slalom_script_min_cmd_linear, + "slalom_script_min_cmd_angular": args.slalom_script_min_cmd_angular, + "slalom_script_min_cmd_epsilon": args.slalom_script_min_cmd_epsilon, + "slalom_script_yaw_gate_deg": args.slalom_script_yaw_gate_deg, + "slalom_script_drive_yaw_source": args.slalom_script_drive_yaw_source, + "local_safety": args.local_safety, + "safety_horizon": args.safety_horizon, + "start_yaw_offset_deg": args.start_yaw_offset_deg, + "start_x_offset": args.start_x_offset, + "start_y_offset": args.start_y_offset, + "heading_offset_deg": args.heading_offset_deg, + "start_z": args.start_z, + "settle_steps": args.settle_steps, + "viewer": args.viewer, + "start_index": args.start_index, + "end_index": args.end_index, + "skip_initial_waypoint": args.skip_initial_waypoint, + "auto_skip_slice_start": args.auto_skip_slice_start, + "trajectory_csv": str(csv_path) if csv_path else None, + } + (run_dir / "report.json").write_text(json.dumps(report, ensure_ascii=False, indent=2), encoding="utf-8") + return result, csv_path, run_dir + + +def main() -> int: + args = parse_args() + result, csv_path, run_dir = run_sim(args) + print("Route sim2sim check") + print(f" success: {result.success}") + print(f" reason: {result.reason}") + print(f" reached: {result.reached_count}/{result.waypoint_count}") + print(f" sim_time: {result.sim_time:.2f}s") + print(f" wall_time: {result.wall_time:.2f}s rtf={result.real_time_factor:.2f}x") + print( + " clearance: " + f"min={result.min_clearance:.3f}m margin={result.min_margin:.3f}m " + f"region={result.min_clearance_region} wp={result.min_clearance_wp}" + ) + print( + " attitude: " + f"max_roll={result.max_roll_deg:.1f}deg " + f"max_pitch={result.max_pitch_deg:.1f}deg max_tilt={result.max_tilt_deg:.1f}deg" + ) + print(f" report_dir: {run_dir}") + if csv_path: + print(f" trajectory: {csv_path}") + return 0 if result.success and result.min_margin >= 0.0 else 2 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/05_software/train/rc_mjlab/sim2sim/nav_sim2sim.py b/05_software/train/rc_mjlab/sim2sim/nav_sim2sim.py index 9e1a740..b798dac 100644 --- a/05_software/train/rc_mjlab/sim2sim/nav_sim2sim.py +++ b/05_software/train/rc_mjlab/sim2sim/nav_sim2sim.py @@ -324,9 +324,11 @@ def main(): terrain_dir = Path(__file__).parent / "terrain" terrain_xml = terrain_dir / "scene_terrain.xml" robot_xml = project_root / "mjcf" / "wheelleg.xml" + rough_onnx = project_root / "model_6800.onnx" + crawl_onnx = project_root / "model_crawl.onnx" policy_path = { - "rough": project_root / "model_rough.pt", - "crawl": project_root / "model_crawl.pt" + "rough": rough_onnx if rough_onnx.exists() else project_root / "model_rough.pt", + "crawl": crawl_onnx if crawl_onnx.exists() else project_root / "model_crawl.pt" } # 1. 解析 XML 地图障碍物,实现 100% 可视化精准对应 diff --git a/05_software/train/rc_mjlab/sim2sim/policy/policy_runner.py b/05_software/train/rc_mjlab/sim2sim/policy/policy_runner.py index 3b15db4..b5a3134 100644 --- a/05_software/train/rc_mjlab/sim2sim/policy/policy_runner.py +++ b/05_software/train/rc_mjlab/sim2sim/policy/policy_runner.py @@ -3,7 +3,10 @@ import torch.nn as nn import numpy as np from collections import deque from pathlib import Path -from pynput import keyboard +try: + from pynput import keyboard +except ImportError: + keyboard = None # ============================================================ # Policy Model @@ -26,6 +29,28 @@ class PolicyMLP(nn.Module): def load_policy(model_path, device): + if str(model_path).endswith('.onnx'): + import onnxruntime as ort + session = ort.InferenceSession(str(model_path)) + class OnnxWrapper: + def __init__(self, session): + self.session = session + self.obs_dim = session.get_inputs()[0].shape[1] + if isinstance(self.obs_dim, str): + self.obs_dim = 53 + class MockMean: + def __init__(self, d): + self.d = d + def numel(self): + return self.d + self.obs_mean = MockMean(self.obs_dim) + + def __call__(self, x): + inputs = {self.session.get_inputs()[0].name: x.cpu().numpy()} + out = self.session.run(None, inputs)[0] + return torch.tensor(out, device=x.device) + return OnnxWrapper(session) + ckpt = torch.load(model_path, map_location=device, weights_only=False) state_dict = ckpt["actor_state_dict"] @@ -129,9 +154,13 @@ class PolicyRunner: ], dtype=np.float32) # Background keyboard listener for seamless switcher keys ('1' and '2') - self.listener = keyboard.Listener(on_press=self._on_press) - self.listener.start() - print("[PolicyRunner] Background Keyboard Switcher active: Press '1' for ROUGH, '2' for CRAWL") + self.listener = None + if keyboard is not None: + self.listener = keyboard.Listener(on_press=self._on_press) + self.listener.start() + print("[PolicyRunner] Background Keyboard Switcher active: Press '1' for ROUGH, '2' for CRAWL") + else: + print("[PolicyRunner] pynput not installed; background keyboard switcher disabled.") def _on_press(self, key): try: diff --git a/05_software/train/rc_mjlab/sim2sim/requirements.txt b/05_software/train/rc_mjlab/sim2sim/requirements.txt new file mode 100644 index 0000000..4da9002 --- /dev/null +++ b/05_software/train/rc_mjlab/sim2sim/requirements.txt @@ -0,0 +1,3 @@ +# Additional runtime dependencies for the post-training Sim2Sim tools. +onnxruntime>=1.19.0 +pygame>=2.6.1 diff --git a/05_software/train/rc_mjlab/sim2sim/sim2sim.py b/05_software/train/rc_mjlab/sim2sim/sim2sim.py index 91560c8..c6adf7c 100644 --- a/05_software/train/rc_mjlab/sim2sim/sim2sim.py +++ b/05_software/train/rc_mjlab/sim2sim/sim2sim.py @@ -41,6 +41,19 @@ class PolicyMLP(nn.Module): def load_policy(model_path, device): + if str(model_path).endswith('.onnx'): + import onnxruntime as ort + session = ort.InferenceSession(str(model_path)) + class OnnxWrapper: + def __init__(self, session): + self.session = session + def __call__(self, x): + inputs = {self.session.get_inputs()[0].name: x.cpu().numpy()} + out = self.session.run(None, inputs)[0] + return torch.tensor(out, device=x.device) + return OnnxWrapper(session) + + ckpt = torch.load(model_path, map_location=device, weights_only=False) state_dict = ckpt["actor_state_dict"] model = PolicyMLP() @@ -131,7 +144,9 @@ def main(): terrain_dir = Path(__file__).parent / "terrain" terrain_xml = terrain_dir / "scene_terrain.xml" robot_xml = Path(__file__).parent.parent / "mjcf" / "wheelleg.xml" - policy_path = Path(__file__).parent.parent / "model_1700.pt" + policy_path = Path(__file__).parent.parent / "model_6800.onnx" + if not policy_path.exists(): + policy_path = Path(__file__).parent.parent / "model_rough.pt" hfield_dir = terrain_dir temp_xml = project_root / "mjcf" / "sim2sim_temp.xml" diff --git a/05_software/train/rc_mjlab/tools/nav_tools/README.md b/05_software/train/rc_mjlab/tools/nav_tools/README.md new file mode 100644 index 0000000..2b672c1 --- /dev/null +++ b/05_software/train/rc_mjlab/tools/nav_tools/README.md @@ -0,0 +1,7 @@ +# 路线检查公共模块 + +`route_safety_check.py` 提供航点、避障区域、机器人平面包络和几何距离计算,供 `sim2sim/nav_route_sim2sim_check.py` 复用。 + +该模块只依赖 Python 标准库。原开发目录中的地图编辑器、PCD、比赛路线 JSON、备份和批量实验结果不属于本次后期 Sim2Sim 里程碑,未在这里复制。 + +外部路线文件需要包含 `waypoints`(或 `segments[].waypoints`)以及 `regions` / `avoid_regions`。也可以不提供路线文件,直接使用 Sim2Sim 检查器的内置任务。 diff --git a/05_software/train/rc_mjlab/tools/nav_tools/route_safety_check.py b/05_software/train/rc_mjlab/tools/nav_tools/route_safety_check.py new file mode 100644 index 0000000..1e3dca3 --- /dev/null +++ b/05_software/train/rc_mjlab/tools/nav_tools/route_safety_check.py @@ -0,0 +1,638 @@ +#!/usr/bin/env python3 +"""Offline route safety checker for nav_tools waypoint JSON files. + +The checker treats avoid regions as hard no-go polygons and validates the +route centerline with a circular robot footprint. It is intentionally light on +dependencies so it can run on the robot laptop without ROS, pygame, or shapely. +""" + +from __future__ import annotations + +import argparse +import json +import math +import sys +import xml.etree.ElementTree as ET +from dataclasses import dataclass +from pathlib import Path +from typing import Any + + +ROBOT_BODY_LENGTH = 0.356 +ROBOT_BODY_WIDTH = 0.235 +ROBOT_BODY_CENTER_X = 0.1518 +ROBOT_ORIGIN_FROM_FRONT = 0.105 +ROBOT_WHEEL_VIS_LENGTH = 0.16 +ROBOT_WHEEL_VIS_WIDTH = 0.055 +ROBOT_POSE_HIP = 0.550 +ROBOT_POSE_KNEE = -1.125 +PCD_ROBOT_RADIUS = 0.18 +ROBOT_FOOTPRINT_PADDING = 0.03 + + +@dataclass(frozen=True) +class Waypoint: + index: int + id: str + x: float + y: float + yaw_deg: float + speed: float | None + policy: str + tolerance: float | None + slalom_straight: bool = False + slalom_script_break: bool = False + slalom_script_pos_tolerance: float | None = None + exact_reach: bool = False + precision_follow: bool = False + require_yaw: bool = False + yaw_tolerance_deg: float | None = None + stable_cycles: int | None = None + mandatory_cross: bool = False + mandatory_radius: float | None = None + mandatory_center_x: float | None = None + mandatory_center_y: float | None = None + + +@dataclass(frozen=True) +class AvoidRegion: + name: str + kind: str + polygon: tuple[tuple[float, float], ...] + + +@dataclass(frozen=True) +class SegmentRisk: + start_id: str + end_id: str + region: str + clearance_m: float + required_m: float + margin_m: float + length_m: float + centerline_intersects: bool + + @property + def status(self) -> str: + if self.centerline_intersects: + return "INTERSECT" + if self.margin_m < 0.0: + return "VIOLATION" + if self.margin_m < 0.05: + return "TIGHT" + return "OK" + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser( + description="Check nav_tools waypoint routes against avoid/no-go polygons." + ) + parser.add_argument( + "--points", + type=Path, + default=Path("tools/nav_tools/points/points_20260705_174627.json"), + help="Route JSON exported by nav_map_viewer.", + ) + parser.add_argument( + "--xml", + type=Path, + default=Path("tools/nav_tools/xml/A.xml"), + help="Optional MuJoCo terrain XML used for metadata checks.", + ) + parser.add_argument( + "--onnx", + type=Path, + default=Path("model_6800.onnx"), + help="Optional ONNX policy path used for input/output shape reporting.", + ) + parser.add_argument( + "--footprint-radius", + type=float, + default=None, + help="Robot circular footprint radius in meters. Defaults to sim2real lateral footprint.", + ) + parser.add_argument( + "--avoid-margin", + type=float, + default=0.05, + help="Extra clearance added outside the robot footprint.", + ) + parser.add_argument( + "--warn-margin", + type=float, + default=0.05, + help="Report a TIGHT warning when spare margin is below this value.", + ) + parser.add_argument( + "--top", + type=int, + default=20, + help="Number of closest segment-region pairs to print.", + ) + parser.add_argument( + "--json-out", + type=Path, + default=None, + help="Optional machine-readable report path.", + ) + parser.add_argument( + "--allow-violations", + action="store_true", + help="Exit with code 0 even when violations are detected.", + ) + return parser.parse_args() + + +def load_json(path: Path) -> dict[str, Any]: + with path.open("r", encoding="utf-8") as f: + data = json.load(f) + if not isinstance(data, dict): + raise ValueError(f"JSON root must be an object: {path}") + return data + + +def _optional_float(value: Any) -> float | None: + if value is None: + return None + try: + return float(value) + except (TypeError, ValueError): + return None + + +def load_waypoints(payload: dict[str, Any]) -> list[Waypoint]: + rows = None + if isinstance(payload.get("segments"), list) and payload["segments"]: + rows = [] + for segment in payload["segments"]: + if isinstance(segment, dict) and isinstance(segment.get("waypoints"), list): + rows.extend(segment["waypoints"]) + if rows is None: + rows = payload.get("waypoints") + if not isinstance(rows, list): + raise ValueError("Route JSON has no top-level waypoints or segments[].waypoints") + + waypoints: list[Waypoint] = [] + for index, row in enumerate(rows, start=1): + if not isinstance(row, dict): + continue + x = float(row.get("world_x", row.get("x", 0.0))) + y = float(row.get("world_y", row.get("y", 0.0))) + yaw = float(row.get("yawDeg", row.get("yaw_deg", row.get("yaw", 0.0)))) + speed = row.get("speed") + tolerance = row.get("tolerance") + waypoints.append( + Waypoint( + index=index, + id=str(row.get("id", index)), + x=x, + y=y, + yaw_deg=yaw, + speed=float(speed) if speed is not None else None, + policy=str(row.get("policy", "")), + tolerance=float(tolerance) if tolerance is not None else None, + slalom_straight=bool(row.get("slalom_straight", row.get("slalomStraight", False))), + slalom_script_break=bool( + row.get("slalom_script_break", row.get("slalomScriptBreak", False)) + ), + slalom_script_pos_tolerance=_optional_float( + row.get( + "slalom_script_pos_tolerance", + row.get("slalomScriptPosTolerance", row.get("scriptTolerance")), + ) + ), + exact_reach=bool(row.get("exact_reach", row.get("exactReach", False))), + precision_follow=bool(row.get("precision_follow", row.get("precisionFollow", False))), + require_yaw=bool(row.get("require_yaw", row.get("requireYaw", False))), + yaw_tolerance_deg=_optional_float( + row.get("yaw_tolerance_deg", row.get("yawToleranceDeg")) + ), + stable_cycles=( + int(row.get("stable_cycles", row.get("stableCycles"))) + if row.get("stable_cycles", row.get("stableCycles")) is not None + else None + ), + mandatory_cross=bool(row.get("mandatory_cross", row.get("mandatoryCross", False))), + mandatory_radius=_optional_float( + row.get("mandatory_radius", row.get("mandatoryRadius")) + ), + mandatory_center_x=_optional_float( + row.get("mandatory_center_x", row.get("mandatoryCenterX")) + ), + mandatory_center_y=_optional_float( + row.get("mandatory_center_y", row.get("mandatoryCenterY")) + ), + ) + ) + if len(waypoints) < 2: + raise ValueError("Route must contain at least two waypoints") + return waypoints + + +def load_regions(payload: dict[str, Any]) -> list[AvoidRegion]: + rows = payload.get("regions", payload.get("avoid_regions", [])) + if not isinstance(rows, list): + return [] + + regions: list[AvoidRegion] = [] + for index, row in enumerate(rows, start=1): + if not isinstance(row, dict): + continue + polygon_rows = row.get("polygon", row.get("points", [])) + if not isinstance(polygon_rows, list): + continue + polygon: list[tuple[float, float]] = [] + for point in polygon_rows: + if isinstance(point, dict): + polygon.append((float(point.get("x", 0.0)), float(point.get("y", 0.0)))) + elif isinstance(point, (list, tuple)) and len(point) >= 2: + polygon.append((float(point[0]), float(point[1]))) + if len(polygon) >= 3: + regions.append( + AvoidRegion( + name=str(row.get("name", f"avoid_{index}")), + kind=str(row.get("kind", "avoid")), + polygon=tuple(polygon), + ) + ) + return regions + + +def robot_wheel_local_points(body_center_offset_x: float) -> list[tuple[float, float]]: + thigh_dx = -0.25 * math.sin(ROBOT_POSE_HIP) + shank_dx = -0.2 * math.sin(ROBOT_POSE_HIP + ROBOT_POSE_KNEE) + wheel_positions = ( + ((0.32826 + 0.06389) - ROBOT_BODY_CENTER_X, 0.066172 - 0.027344, 0.1035, 0.014699, 0.04074, 0.0), + ((0.32826 + 0.06389) - ROBOT_BODY_CENTER_X, -0.065853 + 0.027311, -0.1035, -0.018447, -0.040735, -0.00075079), + ((-0.024743 - 0.06389) - ROBOT_BODY_CENTER_X, 0.066141 - 0.027309, 0.099459, 0.012475, 0.040737, 0.0), + ((-0.024743 - 0.06389) - ROBOT_BODY_CENTER_X, -0.065884 + 0.027341, -0.099408, -0.012435, -0.040737, -0.00075079), + ) + return [ + ( + body_center_offset_x + pitch_x + knee_x + thigh_dx + shank_dx, + pitch_y + knee_y + wheel_y + wheel_geom_y, + ) + for pitch_x, pitch_y, knee_y, wheel_y, wheel_geom_y, knee_x in wheel_positions + ] + + +def default_lateral_footprint_radius() -> float: + half_width = ROBOT_BODY_WIDTH * 0.5 + radius = max(PCD_ROBOT_RADIUS, half_width) + body_center_offset_x = ROBOT_ORIGIN_FROM_FRONT - ROBOT_BODY_LENGTH * 0.5 + for _, wheel_y in robot_wheel_local_points(body_center_offset_x): + radius = max(radius, abs(wheel_y) + ROBOT_WHEEL_VIS_WIDTH * 0.5) + return radius + ROBOT_FOOTPRINT_PADDING + + +def point_segment_distance( + px: float, + py: float, + ax: float, + ay: float, + bx: float, + by: float, +) -> float: + dx = bx - ax + dy = by - ay + length_sq = dx * dx + dy * dy + if length_sq <= 1.0e-12: + return math.hypot(px - ax, py - ay) + t = ((px - ax) * dx + (py - ay) * dy) / length_sq + t = max(0.0, min(1.0, t)) + qx = ax + t * dx + qy = ay + t * dy + return math.hypot(px - qx, py - qy) + + +def orientation( + ax: float, + ay: float, + bx: float, + by: float, + cx: float, + cy: float, +) -> float: + return (bx - ax) * (cy - ay) - (by - ay) * (cx - ax) + + +def on_segment( + ax: float, + ay: float, + bx: float, + by: float, + cx: float, + cy: float, +) -> bool: + return ( + min(ax, bx) - 1.0e-9 <= cx <= max(ax, bx) + 1.0e-9 + and min(ay, by) - 1.0e-9 <= cy <= max(ay, by) + 1.0e-9 + and abs(orientation(ax, ay, bx, by, cx, cy)) <= 1.0e-9 + ) + + +def segments_intersect( + a: tuple[float, float], + b: tuple[float, float], + c: tuple[float, float], + d: tuple[float, float], +) -> bool: + ax, ay = a + bx, by = b + cx, cy = c + dx, dy = d + o1 = orientation(ax, ay, bx, by, cx, cy) + o2 = orientation(ax, ay, bx, by, dx, dy) + o3 = orientation(cx, cy, dx, dy, ax, ay) + o4 = orientation(cx, cy, dx, dy, bx, by) + if o1 * o2 < 0.0 and o3 * o4 < 0.0: + return True + return ( + on_segment(ax, ay, bx, by, cx, cy) + or on_segment(ax, ay, bx, by, dx, dy) + or on_segment(cx, cy, dx, dy, ax, ay) + or on_segment(cx, cy, dx, dy, bx, by) + ) + + +def point_in_polygon(x: float, y: float, polygon: tuple[tuple[float, float], ...]) -> bool: + inside = False + for index, (ax, ay) in enumerate(polygon): + bx, by = polygon[(index + 1) % len(polygon)] + if point_segment_distance(x, y, ax, ay, bx, by) <= 1.0e-9: + return True + if (ay > y) != (by > y): + x_cross = (bx - ax) * (y - ay) / (by - ay) + ax + if x < x_cross: + inside = not inside + return inside + + +def segment_polygon_intersects( + a: tuple[float, float], + b: tuple[float, float], + polygon: tuple[tuple[float, float], ...], +) -> bool: + if point_in_polygon(a[0], a[1], polygon) or point_in_polygon(b[0], b[1], polygon): + return True + return any( + segments_intersect(a, b, polygon[index], polygon[(index + 1) % len(polygon)]) + for index in range(len(polygon)) + ) + + +def segment_polygon_distance( + a: tuple[float, float], + b: tuple[float, float], + polygon: tuple[tuple[float, float], ...], +) -> float: + if segment_polygon_intersects(a, b, polygon): + return 0.0 + distances = [point_segment_distance(px, py, a[0], a[1], b[0], b[1]) for px, py in polygon] + for index, (ax, ay) in enumerate(polygon): + bx, by = polygon[(index + 1) % len(polygon)] + distances.append(point_segment_distance(a[0], a[1], ax, ay, bx, by)) + distances.append(point_segment_distance(b[0], b[1], ax, ay, bx, by)) + return min(distances) + + +def analyze_route( + waypoints: list[Waypoint], + regions: list[AvoidRegion], + required_clearance: float, +) -> list[SegmentRisk]: + risks: list[SegmentRisk] = [] + for start, end in zip(waypoints, waypoints[1:]): + a = (start.x, start.y) + b = (end.x, end.y) + length = math.hypot(end.x - start.x, end.y - start.y) + for region in regions: + intersects = segment_polygon_intersects(a, b, region.polygon) + clearance = 0.0 if intersects else segment_polygon_distance(a, b, region.polygon) + risks.append( + SegmentRisk( + start_id=start.id, + end_id=end.id, + region=region.name, + clearance_m=clearance, + required_m=required_clearance, + margin_m=clearance - required_clearance, + length_m=length, + centerline_intersects=intersects, + ) + ) + risks.sort(key=lambda item: (item.margin_m, item.clearance_m)) + return risks + + +def parse_xml_summary(path: Path) -> dict[str, Any]: + if not path.exists(): + return {"path": str(path), "exists": False} + root = ET.parse(path).getroot() + geoms = [geom for geom in root.iter("geom")] + collidable = [ + geom for geom in geoms + if geom.get("name") != "floor" + and geom.get("contype", "1") != "0" + and geom.get("conaffinity", "1") != "0" + ] + return { + "path": str(path), + "exists": True, + "model": root.get("model", ""), + "geom_count": len(geoms), + "collidable_geom_count": len(collidable), + } + + +def parse_onnx_summary(path: Path) -> dict[str, Any]: + if not path.exists(): + return {"path": str(path), "exists": False} + try: + import onnx # type: ignore + except Exception as exc: # pragma: no cover - depends on local env + return {"path": str(path), "exists": True, "error": f"onnx import failed: {exc}"} + + model = onnx.load(str(path)) + inputs = [ + { + "name": item.name, + "shape": [ + dim.dim_value if dim.dim_value else dim.dim_param + for dim in item.type.tensor_type.shape.dim + ], + } + for item in model.graph.input + ] + outputs = [ + { + "name": item.name, + "shape": [ + dim.dim_value if dim.dim_value else dim.dim_param + for dim in item.type.tensor_type.shape.dim + ], + } + for item in model.graph.output + ] + return { + "path": str(path), + "exists": True, + "inputs": inputs, + "outputs": outputs, + "metadata_keys": [prop.key for prop in model.metadata_props], + } + + +def risk_to_dict(risk: SegmentRisk) -> dict[str, Any]: + return { + "start_id": risk.start_id, + "end_id": risk.end_id, + "region": risk.region, + "clearance_m": round(risk.clearance_m, 6), + "required_m": round(risk.required_m, 6), + "margin_m": round(risk.margin_m, 6), + "length_m": round(risk.length_m, 6), + "centerline_intersects": risk.centerline_intersects, + "status": risk.status, + } + + +def print_report( + points_path: Path, + xml_summary: dict[str, Any], + onnx_summary: dict[str, Any], + waypoints: list[Waypoint], + regions: list[AvoidRegion], + footprint_radius: float, + avoid_margin: float, + warn_margin: float, + risks: list[SegmentRisk], + top: int, +) -> None: + required_clearance = footprint_radius + avoid_margin + violations = [risk for risk in risks if risk.margin_m < 0.0 or risk.centerline_intersects] + tight = [ + risk for risk in risks + if risk.margin_m >= 0.0 and risk.margin_m < warn_margin + ] + route_len = sum( + math.hypot(b.x - a.x, b.y - a.y) + for a, b in zip(waypoints, waypoints[1:]) + ) + + print("Route safety check") + print(f" points: {points_path}") + print(f" waypoints: {len(waypoints)}, regions: {len(regions)}, path_length: {route_len:.3f} m") + print( + " clearance: " + f"footprint={footprint_radius:.3f} m + avoid_margin={avoid_margin:.3f} m " + f"=> required={required_clearance:.3f} m" + ) + if xml_summary.get("exists"): + print( + " xml: " + f"{xml_summary.get('path')} " + f"(model={xml_summary.get('model')}, geoms={xml_summary.get('geom_count')}, " + f"collidable={xml_summary.get('collidable_geom_count')})" + ) + else: + print(f" xml: missing ({xml_summary.get('path')})") + if onnx_summary.get("exists") and not onnx_summary.get("error"): + print(f" onnx: {onnx_summary.get('path')}") + print(f" inputs: {onnx_summary.get('inputs')}") + print(f" outputs: {onnx_summary.get('outputs')}") + elif onnx_summary.get("exists"): + print(f" onnx: {onnx_summary.get('error')}") + else: + print(f" onnx: missing ({onnx_summary.get('path')})") + + print("") + if violations: + print(f"FAIL: {len(violations)} segment-region pairs are inside required clearance.") + elif tight: + print(f"WARN: no violations, but {len(tight)} segment-region pairs are tight.") + else: + print("PASS: all segment-region pairs satisfy the requested clearance.") + + print("") + print(f"Closest {min(top, len(risks))} segment-region pairs:") + print(" status wp_start->wp_end region clear req spare") + for risk in risks[:top]: + print( + f" {risk.status:<10} " + f"{risk.start_id:>4}->{risk.end_id:<4} " + f"{risk.region:<10} " + f"{risk.clearance_m:>6.3f} " + f"{risk.required_m:>6.3f} " + f"{risk.margin_m:>7.3f}" + ) + + +def main() -> int: + args = parse_args() + points_path = args.points.resolve() + xml_path = args.xml.resolve() + onnx_path = args.onnx.resolve() + + payload = load_json(points_path) + waypoints = load_waypoints(payload) + regions = load_regions(payload) + if not regions: + raise ValueError(f"No avoid regions found in {points_path}") + + footprint_radius = ( + float(args.footprint_radius) + if args.footprint_radius is not None + else default_lateral_footprint_radius() + ) + required_clearance = footprint_radius + float(args.avoid_margin) + risks = analyze_route(waypoints, regions, required_clearance) + xml_summary = parse_xml_summary(xml_path) + onnx_summary = parse_onnx_summary(onnx_path) + + print_report( + points_path, + xml_summary, + onnx_summary, + waypoints, + regions, + footprint_radius, + float(args.avoid_margin), + float(args.warn_margin), + risks, + max(0, int(args.top)), + ) + + violations = [risk for risk in risks if risk.margin_m < 0.0 or risk.centerline_intersects] + tight = [ + risk for risk in risks + if risk.margin_m >= 0.0 and risk.margin_m < float(args.warn_margin) + ] + report = { + "points": str(points_path), + "waypoint_count": len(waypoints), + "region_count": len(regions), + "footprint_radius_m": round(footprint_radius, 6), + "avoid_margin_m": round(float(args.avoid_margin), 6), + "required_clearance_m": round(required_clearance, 6), + "violations": [risk_to_dict(risk) for risk in violations], + "tight": [risk_to_dict(risk) for risk in tight], + "closest": [risk_to_dict(risk) for risk in risks[: max(0, int(args.top))]], + "xml": xml_summary, + "onnx": onnx_summary, + } + if args.json_out: + args.json_out.parent.mkdir(parents=True, exist_ok=True) + args.json_out.write_text(json.dumps(report, ensure_ascii=False, indent=2), encoding="utf-8") + + if violations and not args.allow_violations: + return 2 + return 0 + + +if __name__ == "__main__": + try: + raise SystemExit(main()) + except Exception as exc: + print(f"ERROR: {exc}", file=sys.stderr) + raise SystemExit(1) diff --git a/README.md b/README.md index e6b0c26..dd76f47 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ RC_WheelLeg 是山东华宇工学院 16DOF 串联轮足机器人项目。 -当前 `16dof` 分支用于整理 16DOF 机械、强化学习训练、Sim2Sim、Sim2Real、ROS 2 部署和比赛版本。机械资料、比赛训练架构和后期 MuJoCo 工具集已经完成整理。 +当前 `16dof` 分支用于整理 16DOF 机械、强化学习训练、Sim2Sim、Sim2Real、ROS 2 部署和比赛版本。机械资料、比赛训练架构、后期 MuJoCo 工具集和后期 Sim2Sim 已经完成整理。 ## 平台概览 @@ -37,6 +37,7 @@ RC_WheelLeg/ - [x] 整理第二版 Sim2Real 随机化训练配置 - [x] 整理比赛最终训练代码架构 - [x] 整理后期 MuJoCo 姿态、IK、动力学和 MPC 工具 +- [x] 整理后期 Sim2Sim、路线检查与比赛 Rough ONNX 策略 - [ ] 核对比赛机械与仿真模型参数 - [ ] 整理 URDF/MJCF 机器人描述 - [ ] 整理后续统一训练、ROS 2 和比赛版本