- Negated velocities for wheel1 and wheel3 in `control_wheels_vel` to match hardware direction, ensuring correct movement.
- Introduced `self.offs` in `BalanceController` to store offset values across calls instead of recreating them each update.
- Refactored `_update_offsets` to operate on the instance offsets, increased threshold sensitivity from 0.2 to 1, and adjusted scaling factors for smoother offset accumulation.
- Simplified offset limiting and normalization logic, removing redundant local variables.
- Updated `run_balance_loop` to initialize and use the persistent `self.offs` state.
These changes fix incorrect wheel commands and improve the stability and accuracy of the balance controller's offset handling.
- Updated import in `balance.py` from `dm_imu_pkg` to the correct `dm_imu` package.
- Introduced `quick_test()` function as a convenient debugging entry point, moving the previous script execution logic into this callable.
- Modified `__main__` block to display a UI usage message instead of directly running the balance loop.
- Revised `dm_imu.egg-info/PKG-INFO` to reflect the new Gradio‑based control panel documentation and project description.
Add new .pyc files for Legs_controller, balance, and dm_imu_pkg __init__ modules,
and update DM_CAN .pyc. Append new log entry to ui.log for BalanceController
initialization attempt, indicafing code execution and cache generation.
- Rename app_ui.py to main.py for better naming convention
- Update balance.py import to use dm_imu_pkg.dm_imu_py for modularity
- Constrain Gradio version to <5.0 in pyproject.toml and <6.0 in PKG-INFO for compatibility
- Add compiled .so file for dm_imu_pkg and update cached .pyc files after builds
- Include motors_enabled flag in main.py UI for better state management
These changes improve code organization, resolve potential import issues, and ensure dependency compatibility in the balance controller project.
new file: Legs_controller.py
modified: README.md
new file: __pycache__/Legs_controller.cpython-310.pyc
new file: __pycache__/Legs_controller.cpython-313.pyc
new file: __pycache__/balance.cpython-310.pyc
new file: __pycache__/gradio.cpython-310.pyc
new file: __pycache__/gradio.cpython-313.pyc
new file: app_ui.py
new file: balance.py
new file: build/.cmake/api/v1/query/client-vscode/query.json
new file: build/.cmake/api/v1/reply/cache-v2-ae4a9db768b4bbb36baa.json
new file: build/.cmake/api/v1/reply/cmakeFiles-v1-389eb8769a8295e7571d.json
new file: build/.cmake/api/v1/reply/codemodel-v2-5ea8cfc0b9263cbe5ae5.json
new file: build/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json
new file: build/.cmake/api/v1/reply/index-2025-09-11T04-53-20-0515.json
new file: build/.cmake/api/v1/reply/target-imu_py-Debug-3913d741f2156d7faae9.json
new file: build/.cmake/api/v1/reply/toolchains-v1-3105704d088db7adbfb5.json
new file: build/CMakeCache.txt
new file: build/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake
new file: build/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_CXX.bin
new file: build/CMakeFiles/3.22.1/CMakeSystem.cmake
new file: build/CMakeFiles/3.22.1/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file: build/CMakeFiles/3.22.1/CompilerIdCXX/a.out
new file: build/CMakeFiles/CMakeDirectoryInformation.cmake
new file: build/CMakeFiles/CMakeOutput.log
new file: build/CMakeFiles/Makefile.cmake
new file: build/CMakeFiles/Makefile2
new file: build/CMakeFiles/TargetDirectories.txt
new file: build/CMakeFiles/cmake.check_cache
new file: build/CMakeFiles/imu_py.dir/DependInfo.cmake
new file: build/CMakeFiles/imu_py.dir/build.make
new file: build/CMakeFiles/imu_py.dir/cmake_clean.cmake
new file: build/CMakeFiles/imu_py.dir/compiler_depend.make
new file: build/CMakeFiles/imu_py.dir/compiler_depend.ts
new file: build/CMakeFiles/imu_py.dir/depend.make
new file: build/CMakeFiles/imu_py.dir/flags.make
new file: build/CMakeFiles/imu_py.dir/link.txt
new file: build/CMakeFiles/imu_py.dir/progress.make
new file: build/CMakeFiles/progress.marks
new file: build/Makefile
new file: build/cmake_install.cmake
new file: build/compile_commands.json
new file: dm_imu/bsp_crc.cpp
new file: dm_imu/bsp_crc.h
new file: dm_imu/imu_data.csv
new file: dm_imu/imu_driver.cpp
new file: dm_imu/imu_driver.h
new file: dm_imu/imu_plot.png
new file: dm_imu/plot_imu.py
new file: dm_imu/test_imu.cpp
new file: imu_data.csv
new file: pybind_imu/CMakeLists.txt
new file: pybind_imu/README.md
new file: pybind_imu/build/CMakeCache.txt
new file: pybind_imu/build/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake
new file: pybind_imu/build/CMakeFiles/3.22.1/CMakeDetermineCompilerABI_CXX.bin
new file: pybind_imu/build/CMakeFiles/3.22.1/CMakeSystem.cmake
new file: pybind_imu/build/CMakeFiles/3.22.1/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file: pybind_imu/build/CMakeFiles/3.22.1/CompilerIdCXX/a.out
new file: pybind_imu/build/CMakeFiles/CMakeDirectoryInformation.cmake
new file: pybind_imu/build/CMakeFiles/CMakeOutput.log
new file: pybind_imu/build/CMakeFiles/Makefile.cmake
new file: pybind_imu/build/CMakeFiles/Makefile2
new file: pybind_imu/build/CMakeFiles/TargetDirectories.txt
new file: pybind_imu/build/CMakeFiles/cmake.check_cache
new file: pybind_imu/build/CMakeFiles/imu_py.dir/DependInfo.cmake
new file: pybind_imu/build/CMakeFiles/imu_py.dir/build.make
new file: pybind_imu/build/CMakeFiles/imu_py.dir/cmake_clean.cmake
new file: pybind_imu/build/CMakeFiles/imu_py.dir/compiler_depend.make
new file: pybind_imu/build/CMakeFiles/imu_py.dir/compiler_depend.ts
new file: pybind_imu/build/CMakeFiles/imu_py.dir/depend.make
new file: pybind_imu/build/CMakeFiles/imu_py.dir/flags.make
new file: pybind_imu/build/CMakeFiles/imu_py.dir/home/allenyuan/balance/dm_imu/bsp_crc.cpp.o
new file: pybind_imu/build/CMakeFiles/imu_py.dir/home/allenyuan/balance/dm_imu/bsp_crc.cpp.o.d
new file: pybind_imu/build/CMakeFiles/imu_py.dir/home/allenyuan/balance/dm_imu/imu_driver.cpp.o
new file: pybind_imu/build/CMakeFiles/imu_py.dir/home/allenyuan/balance/dm_imu/imu_driver.cpp.o.d
new file: pybind_imu/build/CMakeFiles/imu_py.dir/link.txt
new file: pybind_imu/build/CMakeFiles/imu_py.dir/progress.make
new file: pybind_imu/build/CMakeFiles/imu_py.dir/pybind_imu.cpp.o
new file: pybind_imu/build/CMakeFiles/imu_py.dir/pybind_imu.cpp.o.d
new file: pybind_imu/build/CMakeFiles/progress.marks
new file: pybind_imu/build/Makefile
new file: pybind_imu/build/cmake_install.cmake
new file: pybind_imu/build/imu_py.cpython-310-aarch64-linux-gnu.so
new file: pybind_imu/example.py
new file: pybind_imu/pybind_imu.cpp
new file: src/example.py
new file: test_imu
new file: u2can/DM_CAN.py
new file: u2can/DM_Motor_Test.py
new file: u2can/LICENSE
new file: u2can/README.md
new file: u2can/__pycache__/DM_CAN.cpython-310.pyc
new file: u2can/__pycache__/DM_CAN.cpython-312.pyc
new file: u2can/__pycache__/DM_CAN.cpython-313.pyc
new file: u2can/__pycache__/gradio.cpython-313.pyc
new file: u2can/__pycache__/motor_interface.cpython-313.pyc
new file: u2can/motor_interface.py
new file: u2can/requirements.txt
new file: ui.log