Files
balance/u2can/__pycache__/DM_CAN.cpython-312.pyc

216 lines
30 KiB
Plaintext
Raw Normal View History

new file: .vscode/settings.json 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
2025-12-06 22:47:57 +08:00
<EFBFBD>
ӝ5ijX<00><00><00>ddlmZddlZddlmZddlmZddlmZGd<06>d<07>Z Gd<08>d <09>Z
new file: .vscode/settings.json 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
2025-12-06 22:47:57 +08:00
d
<EFBFBD>Z d e d e d e fd<0E>Z d ejde de fd<11>Zd<12>Zd<13>Zd<14>Zd<15>Zd<16>Zd<17>Zd<18>ZGd<19>de<05>ZGd<1B>de<05>ZGd<1D>de<05>Zy)<1F>)<01>sleepN)<01>IntEnum)<01>unpack)<01>packc<00>><00>eZdZd<01>Zdededefd<05>Zd<06>Zd<07>Zd<08>Zd <09>Z y
) <0B>Motorc<00><00>td<01>|_td<01>|_td<01>|_td<01>|_td<01>|_||_||_||_d|_ tj|_ i|_ y)u<>
define Motor object 定义电机对象
:param MotorType: Motor type 电机类型
:param SlaveID: CANID 电机ID
:param MasterID: MasterID 主机ID 建议不要设为0
rFN)<0E>float<61>Pd<50>Vd<56>state_q<5F>state_dq<64> state_tau<61>SlaveID<49>MasterID<49> MotorType<70>isEnable<6C> Control_Type<70>MIT<49>NowControlMode<64>temp_param_dict)<04>selfrrrs <20>(/Users/liuhaiyan/balance/u2can/DM_CAN.py<70>__init__zMotor.__init__ sm<00><00><18><01>(<28><04><07><17><01>(<28><04><07><1C>Q<EFBFBD>x<EFBFBD><04> <0C><1D>a<EFBFBD><08><04> <0A><1E>q<EFBFBD><18><04><0E><1E><04> <0C> <20><04> <0A>"<22><04><0E><1D><04> <0A>*<2A>.<2E>.<2E><04><1B>!<21><04><1C><00>q<>dq<64>tauc<00>.<00>||_||_||_y<00>N)r rr)rrrrs r<00> recv_datazMotor.recv_datas<00><00><18><04> <0C><1A><04> <0A><1C><04>rc<00><00>|jS)uz
new file: .vscode/settings.json 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
2025-12-06 22:47:57 +08:00
get the position of the motor 获取电机位置
:return: the position of the motor 电机位置
)r <00>rs r<00> getPositionzMotor.getPosition!s<00><00>
<14>|<7C>|<7C>rc<00><00>|jS)uz
get the velocity of the motor 获取电机速度
:return: the velocity of the motor 电机速度
)rr#s r<00> getVelocityzMotor.getVelocity(s<00><00>
<14>}<7D>}<7D>rc<00><00>|jS)uv
get the torque of the motor 获取电机力矩
:return: the torque of the motor 电机力矩
)rr#s r<00> getTorquezMotor.getTorque/s<00><00>
<14>~<7E>~<7E>rc<00>><00>||jvr|j|Sy)u<>
get the parameter of the motor 获取电机内部的参数,需要提前读取
:param RID: DM_variable 电机参数
:return: the parameter of the motor 电机参数
N)r)r<00>RIDs r<00>getParamzMotor.getParam6s&<00><00> <0F>$<24>&<26>&<26> &<26><17>'<27>'<27><03>,<2C> ,<2C>rN)
<EFBFBD>__name__<5F>
__module__<EFBFBD> __qualname__rr
r!r$r&r(r+<00>rrrrs5<00><00>"<22>&<1D>5<EFBFBD><1D>e<EFBFBD><1D>%<25><1D>
<1C><1D><1E> rrc <00><><00>eZdZejgd<01>ej
<00>Zgd<02>gd<03>gd<04>gd<05>gd<06>gd<07>gd<08>gd <09>gd
<EFBFBD>gd <0B>gd <0C>gd <0C>g Zd <0A>Zde de de de de f
d<13>Z
de de de de de de f d<15>Z de de fd<18>Z d<19>Z de fd<1B>Zd<1C>Zd<1D>Zd<1E>Zd<1F>Zd <20>Zd!<21>Zd"<22>Zd#<23>Zd$<24>Zd%ej
fd&<26>Zd'<27>Zd(<28>Zd)<29>Zd*<2A>Zd+<2B>Zd,<2C>Zd-<2D>Zd.<2E>Z d/<2F>Z!d0<64>Z"y1)2<> MotorControl)<1E>U<00><><00><00><00>rrr<00>
rrrrrrrrr<00>rrrrrrrrrrr)<03>)@r4r7)r9<00>2r7)r9r8<00>)r9r7r;)r9<00>-<00>)r9r<<00>()r9r<<00>6)r9<00><00><>)r9r=rA)r9ir6)r9r<r7c<00><><00>||_t<00>|_t<00>|_|jj
rt d<01>|j<00>|jj<00>y)u~
define MotorControl object 定义电机控制对象
:param serial_device: serial object 串口对象
zSerial port is openN) <09>serial_<6C>dict<63>
motors_map<EFBFBD>bytes<65> data_save<76>is_open<65>print<6E>close<73>open)r<00> serial_devices rrzMotorControl.__init__MsO<00><00>
%<25><04> <0C><1E>&<26><04><0F><1E><17><04><0E> <0F><<3C><<3C> <1F> <1F> <11>'<27> (<28> <19> <1F> <1F> !<21> <0C> <0C> <0C><19><19>r<00>kp<6B>kdrrrc<00><><00>|j|jvr td<01>yt|ddd<05>}t|ddd<05>}|j} |j
| d}
|j
| d} |j
| d} t||
|
d <09>} t|| | d<05>}t|| | d<05>}t jgd
<EFBFBD>t j<00>}| d z d z|d<| d z|d<|d z |d<|dzd z|d z dzz|d<|d z|d <|d z |d<|dzd z|d z dzz|d<|d z|d<|j|j|<10>|j<00>y)uA
MIT Control Mode Function 达妙电机MIT控制模式函数
:param DM_Motor: Motor object 电机对象
:param kp: kp
:param kd: kd
:param q: position 期望位置
:param dq: velocity 期望速度
:param tau: torque 期望力矩
:return: None
z%controlMIT ERROR : Motor ID not foundNri<><00> <00>r6<00><00><00>rrrrrrrrr8<00><><00><00>r5<00><00>) rrErI<00> float_to_uintr<00> Limit_Param<61>np<6E>array<61>uint8<74>_MotorControl__send_data<74>recv)r<00>DM_MotorrMrNrrr<00>kp_uint<6E>kd_uintr<00>Q_MAX<41>DQ_MAX<41>TAU_MAX<41>q_uint<6E>dq_uint<6E>tau_uint<6E>data_bufs r<00>
controlMITzMotorControl.controlMITZs<><00><00> <14> <1B> <1B>4<EFBFBD>?<3F>?<3F> 2<> <11>9<> :<3A> <12><1F><02>A<EFBFBD>s<EFBFBD>B<EFBFBD>/<2F><07><1F><02>A<EFBFBD>q<EFBFBD>"<22>-<2D><07><1C>&<26>&<26> <09><14> <20> <20><19>+<2B>A<EFBFBD>.<2E><05><15>!<21>!<21>)<29>,<2C>Q<EFBFBD>/<2F><06><16>"<22>"<22>9<EFBFBD>-<2D>a<EFBFBD>0<><07><1E>q<EFBFBD>5<EFBFBD>&<26>%<25><12>4<><06><1F><02>V<EFBFBD>G<EFBFBD>V<EFBFBD>R<EFBFBD>8<><07> <20><13>w<EFBFBD>h<EFBFBD><07><12><<3C><08><15>8<EFBFBD>8<EFBFBD>L<>b<EFBFBD>h<EFBFBD>h<EFBFBD>W<><08><1D><11>{<7B>d<EFBFBD>*<2A><08><11> <0B><1C>t<EFBFBD>m<EFBFBD><08><11> <0B><1D><11>l<EFBFBD><08><11> <0B><1F>#<23> <0A>!<21>+<2B><17>A<EFBFBD><1C><13>0D<30>E<><08><11> <0B><1D><04>n<EFBFBD><08><11> <0B><1D><11>l<EFBFBD><08><11> <0B><1F>#<23> <0A>!<21>+<2B><18>Q<EFBFBD><1D>#<23>0E<30>F<><08><11> <0B><1E><14>o<EFBFBD><08><11> <0B> <0C><18><18><18>)<29>)<29>8<EFBFBD>4<> <0C> <09> <09> r<00>delayc<00>F<00>|j||||||<06>t|<07>y)uv
MIT Control Mode Function with delay 达妙电机MIT控制模式函数带延迟
:param DM_Motor: Motor object 电机对象
:param kp: kp
:param kd: kd
:param q: position 期望位置
:param dq: velocity 期望速度
:param tau: torque 期望力矩
:param delay: delay time 延迟时间 单位秒
N)rkr)rrarMrNrrrrls r<00> control_delayzMotorControl.control_delay}s!<00><00> <0A><0F><0F><08>"<22>b<EFBFBD>!<21>R<EFBFBD><13>5<> <0A>e<EFBFBD> r<00> P_desired<65> V_desiredc<00>:<00>|j|jvr td<01>yd|jz}tjgd<04>tj
<00>}t |<02>}t |<03>}||dd||dd|j||<05>|j<00>y)u
control the motor in position and velocity control mode 电机位置速度控制模式
:param Motor: Motor object 电机对象
:param P_desired: desired position 期望位置
:param V_desired: desired velocity 期望速度
:return: None
z*Control Pos_Vel Error : Motor ID not foundN<64>rTrrVr8<00> rrErIr\r]r^<00>float_to_uint8sr_r`)rrrorp<00>motoridrj<00>P_desired_uint8s<38>V_desired_uint8ss r<00>control_Pos_VelzMotorControl.control_Pos_Vel<65>s<><00><00> <11>=<3D>=<3D><04><0F><0F> /<2F> <11>><3E> ?<3F> <12><17>%<25>-<2D>-<2D>'<27><07><15>8<EFBFBD>8<EFBFBD>L<>b<EFBFBD>h<EFBFBD>h<EFBFBD>W<><08>*<2A>9<EFBFBD>5<><18>*<2A>9<EFBFBD>5<><18>(<28><08><11>1<EFBFBD> <0A>(<28><08><11>1<EFBFBD> <0A> <0C><18><18><17>(<28>+<2B> <0C> <09> <09> rc<00><00>|j|jvr td<01>yd|jz}tjgd<04>tj
<00>}t |<02>}||dd|j||<04>|j<00>y)u<>
control the motor in velocity control mode 电机速度控制模式
:param Motor: Motor object 电机对象
:param Vel_desired: desired velocity 期望速度
z&control_VEL ERROR : Motor ID not foundNirTrrVrs)rr<00> Vel_desiredrurj<00>Vel_desired_uint8ss r<00> control_VelzMotorControl.control_Vel<65>sr<00><00> <11>=<3D>=<3D><04><0F><0F> /<2F> <11>:<3A> ;<3B> <12><17>%<25>-<2D>-<2D>'<27><07><15>8<EFBFBD>8<EFBFBD>L<>b<EFBFBD>h<EFBFBD>h<EFBFBD>W<><08>,<2C>[<5B>9<><1A>*<2A><08><11>1<EFBFBD> <0A> <0C><18><18><17>(<28>+<2B> <0C> <09> <09> r<00>Pos_desc<00><><00>|j|jvr td<01>yd|jz}tjgd<04>tj
<00>}t |<02>}||ddtj|<03>}tj|<04>} |dz|d<|dz |d <| dz|d
<| dz |d <|j||<06>|j<00>y) u<>
control the motor in EMIT control mode 电机力位混合模式
:param Pos_des: desired position rad 期望位置 单位为rad
:param Vel_des: desired velocity rad/s 期望速度 为放大100倍
:param i_des: desired current rang 0-10000 期望电流标幺值放大10000倍
电流标幺值:实际电流值除以最大电流值,最大电流见上电打印
z*control_pos_vel ERROR : Motor ID not foundNirTrrVrUr8rQrXrY)
rrErIr\r]r^rt<00>uint16r_r`)
rrr}<00>Vel_des<65>i_desrurj<00>Pos_desired_uint8s<38>Vel_uint<6E> ides_uints
r<00>control_pos_forcezMotorControl.control_pos_force<63>s<><00><00> <11>=<3D>=<3D><04><0F><0F> /<2F> <11>><3E> ?<3F> <12><17>%<25>-<2D>-<2D>'<27><07><15>8<EFBFBD>8<EFBFBD>L<>b<EFBFBD>h<EFBFBD>h<EFBFBD>W<><08>,<2C>W<EFBFBD>5<><1A>*<2A><08><11>1<EFBFBD> <0A><15>9<EFBFBD>9<EFBFBD>W<EFBFBD>%<25><08><16>I<EFBFBD>I<EFBFBD>e<EFBFBD>$<24> <09><1E><14>o<EFBFBD><08><11> <0B><1E>!<21>m<EFBFBD><08><11> <0B><1F>$<24>&<26><08><11> <0B><1F>1<EFBFBD>n<EFBFBD><08><11> <0B> <0C><18><18><17>(<28>+<2B> <0C> <09> <09> rc<00><><00>|j|tjd<01><00>td<02>|j <00>y)u<>
enable motor 使能电机
最好在上电后几秒后再使能电机
:param Motor: Motor object 电机对象
<20><><><E79A99><EFBFBD><EFBFBD><EFBFBD>?N<><05>_MotorControl__control_cmdr\r^rr`<00>rrs r<00>enablezMotorControl.enable<6C>s,<00><00> <0A><1A><1A>5<EFBFBD>"<22>(<28>(<28>4<EFBFBD>.<2E>1<> <0A>c<EFBFBD>
<EFBFBD> <0C> <09> <09> rc<00><><00>tjgd<01>tj<00>}t|<02>dz
dz|jz}|j ||<03>t d<04>|j<00>y)u
enable motor old firmware 使能电机旧版本固件,这个是为了旧版本电机固件的兼容性
可恶的旧版本固件使能需要加上偏移量
最好在上电后几秒后再使能电机
:param Motor: Motor object 电机对象
)rUrUrUrUrUrUrUr<>r6rRr<>N)r\r]r^<00>intrr_rr`)rr<00> ControlModerj<00> enable_ids r<00>
enable_oldzMotorControl.enable_old<6C>sV<00><00><16>8<EFBFBD>8<EFBFBD>L<>b<EFBFBD>h<EFBFBD>h<EFBFBD>W<><08><19>+<2B>&<26>q<EFBFBD>(<28>Q<EFBFBD>.<2E>%<25>-<2D>-<2D>?<3F> <09> <0C><18><18><19>H<EFBFBD>-<2D> <0A>c<EFBFBD>
<EFBFBD> <0C> <09> <09> rc<00>d<00>|j|tjd<01><00>td<02>y)u\
disable motor 失能电机
:param Motor: Motor object 电机对象
<20><>g{<14>G<EFBFBD>z<EFBFBD>?N)r<>r\r^rr<>s r<00>disablezMotorControl.disable<6C>s#<00><00>
<0A><1A><1A>5<EFBFBD>"<22>(<28>(<28>4<EFBFBD>.<2E>1<> <0A>d<EFBFBD> rc<00><><00>|j|tjd<01><00>td<02>|j <00>y)uu
set the zero position of the motor 设置电机0位
:param Motor: Motor object 电机对象
<20><>r<>Nr<4E>r<>s r<00>set_zero_positionzMotorControl.set_zero_position<6F>s,<00><00>
<0A><1A><1A>5<EFBFBD>"<22>(<28>(<28>4<EFBFBD>.<2E>1<> <0A>c<EFBFBD>
<EFBFBD> <0C> <09> <09> rc<00><00>dj|j|jj<00>g<02>}|j |<01>}|D]?}|dd}|ddz|ddzz|dd zz|d
z}|d }|j |||<06><00>Ay) NrrYrWrX<00>rQrSrVr8r5r6)<06>joinrGrC<00>read_all<6C>_MotorControl__extract_packets<74>_MotorControl__process_packet<65>r<00> data_recv<63>packets<74>packet<65>data<74>CANID<49>CMDs rr`zMotorControl.recv<63>s<><00><00><17>H<EFBFBD>H<EFBFBD>d<EFBFBD>n<EFBFBD>n<EFBFBD>d<EFBFBD>l<EFBFBD>l<EFBFBD>.C<>.C<>.E<>F<>G<> <09><16>(<28>(<28><19>3<><07><1D>F<EFBFBD><19>!<21>B<EFBFBD><<3C>D<EFBFBD><1B>A<EFBFBD>Y<EFBFBD>"<22>_<EFBFBD><16><01><19>b<EFBFBD><1F>9<>V<EFBFBD>A<EFBFBD>Y<EFBFBD>!<21>^<5E>L<>v<EFBFBD>VW<56>y<EFBFBD>X<>E<EFBFBD><18><11>)<29>C<EFBFBD> <10> !<21> !<21>$<24><05>s<EFBFBD> 3<> rc<00><><00>|jj<00>}|j|<01>}|D]?}|dd}|ddz|ddzz|ddzz|d z}|d
}|j|||<06><00>Ay) NrYrWrXr<>rQrSrVr8r5r6)rCr<>r<><00>'_MotorControl__process_set_param_packetr<74>s r<00>recv_set_param_dataz MotorControl.recv_set_param_data<74>s<><00><00><18>L<EFBFBD>L<EFBFBD>)<29>)<29>+<2B> <09><16>(<28>(<28><19>3<><07><1D>F<EFBFBD><19>!<21>B<EFBFBD><<3C>D<EFBFBD><1B>A<EFBFBD>Y<EFBFBD>"<22>_<EFBFBD><16><01><19>b<EFBFBD><1F>9<>V<EFBFBD>A<EFBFBD>Y<EFBFBD>!<21>^<5E>L<>v<EFBFBD>VW<56>y<EFBFBD>X<>E<EFBFBD><18><11>)<29>C<EFBFBD> <10> +<2B> +<2B>D<EFBFBD>%<25><13> =<3D> rc<00><00>|dk(<00>r<>|dk7<00>r<||jv<00>r,tjtj|d<00>dz|dz<00>}tjtj|d<00>dz|ddz z<00>}tj|ddzdz|d z<00>}|j|j}|j|d}|j|d} |j|d}
t || |d
<EFBFBD>} t || | d <0B>} t ||
|
d <0B>} |j|j | | | <0A>yy|ddz}||jv<00>r,tjtj|d<00>dz|dz<00>}tjtj|d<00>dz|ddz z<00>}tj|ddzdz|d z<00>}|j|j}|j|d}|j|d} |j|d}
t || |d
<EFBFBD>} t || | d <0B>} t ||
|
d <0B>} |j|j | | | <0A>yyy) N<>rr6r8rRr5rVrWrQrSrP)rEr\rrr[<00> uint_to_floatr!)rr<>r<>r<>rgrhri<00>MotorType_recvrdrerf<00>recv_q<5F>recv_dq<64>recv_taurs r<00>__process_packetzMotorControl.__process_packets<><00><00> <0E>$<24>;<3B><14><04>}<7D><18>D<EFBFBD>O<EFBFBD>O<EFBFBD>+<2B><1F>Y<EFBFBD>Y<EFBFBD><02> <09> <09>$<24>q<EFBFBD>'<27>(:<3A>a<EFBFBD>(?<3F>4<EFBFBD><01>7<EFBFBD>'J<>K<>F<EFBFBD> <20>i<EFBFBD>i<EFBFBD><12><19><19>4<EFBFBD><01>7<EFBFBD>);<3B>q<EFBFBD>)@<40>T<EFBFBD>!<21>W<EFBFBD>PQ<50>\<5C>(R<>S<>G<EFBFBD>!<21>y<EFBFBD>y<EFBFBD>4<EFBFBD><01>7<EFBFBD>S<EFBFBD>=<3D>Q<EFBFBD>*><3E>$<24>q<EFBFBD>'<27>)I<>J<>H<EFBFBD>%)<29>_<EFBFBD>_<EFBFBD>U<EFBFBD>%;<3B>%E<>%E<>N<EFBFBD> <20>,<2C>,<2C>^<5E><<3C>Q<EFBFBD>?<3F>E<EFBFBD>!<21>-<2D>-<2D>n<EFBFBD>=<3D>a<EFBFBD>@<40>F<EFBFBD>"<22>.<2E>.<2E>~<7E>><3E>q<EFBFBD>A<>G<EFBFBD>*<2A>6<EFBFBD>E<EFBFBD>6<EFBFBD>5<EFBFBD>"<22>E<>F<EFBFBD>+<2B>G<EFBFBD>f<EFBFBD>W<EFBFBD>f<EFBFBD>b<EFBFBD>I<>G<EFBFBD>,<2C>X<EFBFBD><07>x<EFBFBD><17>"<22>M<>H<EFBFBD><18>O<EFBFBD>O<EFBFBD>E<EFBFBD>*<2A>4<>4<>V<EFBFBD>W<EFBFBD>h<EFBFBD>O<>,<2C><1E>a<EFBFBD><17>4<EFBFBD><1E><08><1B>t<EFBFBD><EFBFBD><EFBFBD>.<2E><1F>Y<EFBFBD>Y<EFBFBD><02> <09> <09>$<24>q<EFBFBD>'<27>(:<3A>a<EFBFBD>(?<3F>4<EFBFBD><01>7<EFBFBD>'J<>K<>F<EFBFBD> <20>i<EFBFBD>i<EFBFBD><12><19><19>4<EFBFBD><01>7<EFBFBD>);<3B>q<EFBFBD>)@<40>T<EFBFBD>!<21>W<EFBFBD>PQ<50>\<5C>(R<>S<>G<EFBFBD>!<21>y<EFBFBD>y<EFBFBD>4<EFBFBD><01>7<EFBFBD>S<EFBFBD>=<3D>Q<EFBFBD>*><3E>$<24>q<EFBFBD>'<27>)I<>J<>H<EFBFBD>%)<29>_<EFBFBD>_<EFBFBD>X<EFBFBD>%><3E>%H<>%H<>N<EFBFBD> <20>,<2C>,<2C>^<5E><<3C>Q<EFBFBD>?<3F>E<EFBFBD>!<21>-<2D>-<2D>n<EFBFBD>=<3D>a<EFBFBD>@<40>F<EFBFBD>"<22>.<2E>.<2E>~<7E>><3E>q<EFBFBD>A<>G<EFBFBD>*<2A>6<EFBFBD>E<EFBFBD>6<EFBFBD>5<EFBFBD>"<22>E<>F<EFBFBD>+<2B>G<EFBFBD>f<EFBFBD>W<EFBFBD>f<EFBFBD>b<EFBFBD>I<>G<EFBFBD>,<2C>X<EFBFBD><07>x<EFBFBD><17>"<22>M<>H<EFBFBD><18>O<EFBFBD>O<EFBFBD>H<EFBFBD>-<2D>7<>7<><06><07><18>R<>/<2F>! rc<00><><00>|dk(r<>|ddk(s|ddk(r<>|}|ddz|dz}|dk(r|}||jvr||jvry|}|d}t|<06>r7t|d |d
|d |d <00>}||j|j|<yt |d |d
|d |d <00>}||j|j|<yyy) Nr<4E>rR<00>3r2r6r8rr5rVrQrXrY)rE<00> is_in_ranges<65>uint8s_to_uint32r<00>uint8s_to_float)rr<>r<>r<><00>masterid<69>slaveIdr*<00>nums r<00>__process_set_param_packetz'MotorControl.__process_set_param_packet"s<><00><00> <0E>$<24>;<3B>D<EFBFBD><11>G<EFBFBD>t<EFBFBD>O<EFBFBD>t<EFBFBD>A<EFBFBD>w<EFBFBD>$<24><EFBFBD><1A>H<EFBFBD><1C>Q<EFBFBD><07>1<EFBFBD> <0C><04>Q<EFBFBD><07>/<2F>G<EFBFBD><14>d<EFBFBD>{<7B> <20><08><17>t<EFBFBD><EFBFBD><EFBFBD>.<2E><1A>$<24>/<2F>/<2F>1<><1A>$<24>H<EFBFBD><16>q<EFBFBD>'<27>C<EFBFBD><1B>C<EFBFBD> <20>&<26>t<EFBFBD>A<EFBFBD>w<EFBFBD><04>Q<EFBFBD><07><14>a<EFBFBD><17>$<24>q<EFBFBD>'<27>J<><03>AD<41><04><0F><0F><08>)<29>9<>9<>#<23>><3E>&<26>d<EFBFBD>1<EFBFBD>g<EFBFBD>t<EFBFBD>A<EFBFBD>w<EFBFBD><04>Q<EFBFBD><07><14>a<EFBFBD><17>I<><03>AD<41><04><0F><0F><08>)<29>9<>9<>#<23>><3E>-0?<3F>;rc<00><><00>||j|j<|jdk7r||j|j<y)u<>
add motor to the motor control object 添加电机到电机控制对象
:param Motor: Motor object 电机对象
rT)rErrr<>s r<00>addMotorzMotorControl.addMotor<s7<00><00>
*/<2F><04><0F><0F><05> <0A> <0A>&<26> <10>><3E>><3E>Q<EFBFBD> <1E>.3<EFBFBD>D<EFBFBD>O<EFBFBD>O<EFBFBD>E<EFBFBD>N<EFBFBD>N<EFBFBD> +<2B>r<00>cmdc
<00><><00>tjddddddd|gtj<00>}|j|j|<03>y)NrU)r\r]r^r_r)rrr<>rjs r<00> __control_cmdzMotorControl.__control_cmdFs;<00><00><15>8<EFBFBD>8<EFBFBD>T<EFBFBD>4<EFBFBD><14>t<EFBFBD>T<EFBFBD>4<EFBFBD><14>s<EFBFBD>K<>R<EFBFBD>X<EFBFBD>X<EFBFBD>V<><08> <0C><18><18><15><1D><1D><08>1rc<00><><00>|dz|jd<|dz dz|jd<||jdd|jjt|jj<00><00>y)u}
send data to the motor 发送数据到电机
:param motor_id:
:param data:
:return:
rU<00> r8<00><00><00>N)<05>send_data_framerC<00>writerF<00>T)r<00>motor_idr<64>s r<00> __send_datazMotorControl.__send_dataJsf<00><00>$,<2C>d<EFBFBD>?<3F><04><1C><1C>R<EFBFBD> <20>$,<2C><01>M<EFBFBD>D<EFBFBD>#8<><04><1C><1C>R<EFBFBD> <20>&*<2A><04><1C><1C>R<EFBFBD><02>#<23> <0C> <0C> <0C><1A><1A>5<EFBFBD><14>!5<>!5<>!7<>!7<>8<>9rc
<00>4<00>|jdz}|jdz dz}tjtj|<03>tj|<04>dtj|<02>ddddgtj<00>}|j d|<05>y)NrUr8r<>r<00><>)rr\r]r^r_)rrr*<00>can_id_l<5F>can_id_hrjs r<00>__read_RID_paramzMotorControl.__read_RID_paramVsz<00><00><18>=<3D>=<3D>4<EFBFBD>'<27><08><19>M<EFBFBD>M<EFBFBD>Q<EFBFBD>&<26><14>-<2D><08><15>8<EFBFBD>8<EFBFBD>R<EFBFBD>X<EFBFBD>X<EFBFBD>h<EFBFBD>/<2F><12><18><18>(<28>1C<31>T<EFBFBD>2<EFBFBD>8<EFBFBD>8<EFBFBD>TW<54>=<3D>Z^<5E>`d<>fj<66>lp<6C>q<>su<73>s{<7B>s{<7B>|<7C><08> <0C><18><18><15><08>)rc
<00><><00>|jdz}|jdz dz}tjtj|<04>tj|<05>dtj|<02>ddddgtj<00>}t |<02>st |<03>|ddnt t|<03><00>|dd|jd|<06>y)NrUr8r2rrVr<>) rr\r]r^r<>rt<00>data_to_uint8sr<73>r_)rrr*r<>r<>r<>rjs r<00>__write_motor_paramz MotorControl.__write_motor_param\s<><00><00><18>=<3D>=<3D>4<EFBFBD>'<27><08><19>M<EFBFBD>M<EFBFBD>Q<EFBFBD>&<26><14>-<2D><08><15>8<EFBFBD>8<EFBFBD>R<EFBFBD>X<EFBFBD>X<EFBFBD>h<EFBFBD>/<2F><12><18><18>(<28>1C<31>T<EFBFBD>2<EFBFBD>8<EFBFBD>8<EFBFBD>TW<54>=<3D>Z^<5E>`d<>fj<66>lp<6C>q<>su<73>s{<7B>s{<7B>|<7C><08><1B>C<EFBFBD> <20>+<2B>D<EFBFBD>1<>H<EFBFBD>Q<EFBFBD>q<EFBFBD>M<EFBFBD>+<2B>3<EFBFBD>t<EFBFBD>9<EFBFBD>5<>H<EFBFBD>Q<EFBFBD>q<EFBFBD>M<EFBFBD> <0C><18><18><15><08>)rc<00><><00>d}d}d}|j||tj|<02><00>t|<03>D]<5D>}t |<04>|j <00>|j |jvs<01>7||j|j jvs<01>]|j|j j||k(ryyy)u<>
switch the control mode of the motor 切换电机控制模式
:param Motor: Motor object 电机对象
:param ControlMode: Control_Type 电机控制模式 example:MIT:Control_Type.MIT MIT模式
r7<><E79A99><EFBFBD><EFBFBD><EFBFBD>?TF) <09> _MotorControl__write_motor_paramr\r^<00>rangerr<>rrEr)rrr<><00> max_retries<65>retry_intervalr*<00>_s r<00>switchControlModezMotorControl.switchControlModehs<><00><00> <19> <0B><1D><0E><10><03> <0C> <20> <20><15><03>R<EFBFBD>X<EFBFBD>X<EFBFBD>k<EFBFBD>-B<>C<><16>{<7B>#<23>A<EFBFBD> <11>.<2E> !<21> <10> $<24> $<24> &<26><14>}<7D>}<7D><04><0F><0F>/<2F><16>$<24>/<2F>/<2F>%<25>-<2D>-<2D>8<>H<>H<>H<><1B><EFBFBD><EFBFBD>u<EFBFBD>}<7D>}<7D>5<>E<>E<>c<EFBFBD>J<>k<EFBFBD>Y<>#<23>$<24>$<24>rc
<00>F<00>|jdz}|jdz dz}tjtj|<02>tj|<03>ddddddgtj<00>}|j |<01>|j d|<04>t d<06>y)u<>
save the all parameter to flash 保存所有电机参数
:param Motor: Motor object 电机对象
:return:
rUr8r3rr<>g<><67><EFBFBD><EFBFBD>MbP?N)rr\r]r^r<>r_r<00>rrr<>r<>rjs r<00>save_motor_paramzMotorControl.save_motor_param}s<><00><00> <19>=<3D>=<3D>4<EFBFBD>'<27><08><19>M<EFBFBD>M<EFBFBD>Q<EFBFBD>&<26><14>-<2D><08><15>8<EFBFBD>8<EFBFBD>R<EFBFBD>X<EFBFBD>X<EFBFBD>h<EFBFBD>/<2F><12><18><18>(<28>1C<31>T<EFBFBD>4<EFBFBD>QU<51>W[<5B>]a<>cg<63>h<>jl<6A>jr<6A>jr<6A>s<><08> <0C> <0C> <0C>U<EFBFBD><1B> <0C><18><18><15><08>)<29> <0A>e<EFBFBD> rc<00>p<00>||j|d<||j|d<||j|d<y)u<>
change the PMAX VMAX TMAX of the motor 改变电机的PMAX VMAX TMAX
:param Motor_Type:
:param PMAX: 电机的PMAX
:param VMAX: 电机的VMAX
:param TMAX: 电机的TMAX
:return:
rr6rRN)r[)r<00>
Motor_Type<EFBFBD>PMAX<41>VMAX<41>TMAXs r<00>change_limit_paramzMotorControl.change_limit_param<61>sC<00><00>+/<2F><04><18><18><1A>$<24>Q<EFBFBD>'<27>*.<2E><04><18><18><1A>$<24>Q<EFBFBD>'<27>*.<2E><04><18><18><1A>$<24>Q<EFBFBD>'rc
<00>.<00>|jdz}|jdz dz}tjtj|<02>tj|<03>ddddddgtj<00>}|j d|<04>|j <00>y)u9
get the motor status 获得电机状态
rUr8<00><>rr<>N)rr\r]r^r_r`r<>s r<00>refresh_motor_statusz!MotorControl.refresh_motor_status<75>s|<00><00><19>=<3D>=<3D>4<EFBFBD>'<27><08><19>M<EFBFBD>M<EFBFBD>Q<EFBFBD>&<26>$<24>.<2E><08><15>8<EFBFBD>8<EFBFBD>R<EFBFBD>X<EFBFBD>X<EFBFBD>h<EFBFBD>/<2F><12><18><18>(<28>1C<31>T<EFBFBD>4<EFBFBD>QU<51>W[<5B>]a<>cg<63>h<>jl<6A>jr<6A>jr<6A>s<><08> <0C><18><18><15><08>)<29> <0C> <09> <09> rc<00>t<00>d}d}|j|||<03>t|<04>D]<5D>}|j<00>|j|jvr^||j|jj
vr9t |j|jj
||z
<00>dkryyt|<05><00><>y)u 
change the RID of the motor 改变电机的参数
:param Motor: Motor object 电机对象
:param RID: DM_variable 电机参数
:param data: 电机参数的值
:return: True or False ,True means success, False means fail
r=r<>r<>TF)r<>r<>r<>rrEr<00>absr)rrr*r<>r<>r<>r<>s r<00>change_motor_paramzMotorControl.change_motor_param<61>s<><00><00><19> <0B><1D><0E> <0C> <20> <20><15><03>T<EFBFBD>2<><16>{<7B>#<23>A<EFBFBD> <10> $<24> $<24> &<26><14>}<7D>}<7D><04><0F><0F>/<2F>C<EFBFBD>4<EFBFBD>?<3F>?<3F>5<EFBFBD>=<3D>=<3D>;Y<>;i<>;i<>4i<34><16>t<EFBFBD><EFBFBD><EFBFBD>u<EFBFBD>}<7D>}<7D>5<>E<>E<>c<EFBFBD>J<>T<EFBFBD>Q<>R<>UX<55>X<><1F> <20> <11>.<2E> !<21>$<24>rc<00>T<00>d}d}|j||<02>t|<03>D]<5D>}t|<04>|j<00>|j|j
vs<01>7||j
|jj vr(|j
|jj |cSyy)u<>
read only the RID of the motor 读取电机的内部信息例如 版本号等
:param Motor: Motor object 电机对象
:param RID: DM_variable 电机参数
:return: 电机参数的值
r=r<>N)<07>_MotorControl__read_RID_paramr<6D>rr<>rrEr)rrr*r<>r<>r<>s r<00>read_motor_paramzMotorControl.read_motor_param<61>s<><00><00><19> <0B><1D><0E> <0C><1D><1D>e<EFBFBD>S<EFBFBD>)<29><16>{<7B>#<23>A<EFBFBD> <11>.<2E> !<21> <10> $<24> $<24> &<26><14>}<7D>}<7D><04><0F><0F>/<2F><16>$<24>/<2F>/<2F>%<25>-<2D>-<2D>8<>H<>H<>H<><1F>?<3F>?<3F>5<EFBFBD>=<3D>=<3D>9<>I<>I<>#<23>N<>N<><1F>$<24>rc<00><><00>g}d}d}d}d}d}|t|<01>|z
krN|||k(r/|||zdz
|k(r!||||z}|j|<08>||z }|}n|dz }|t|<01>|z
kr<01>N||d|_|S)Nr3r2rSrr6)<03>len<65>appendrG) rr<><00>frames<65>header<65>tail<69> frame_length<74>i<> remainder_pos<6F>frames r<00>__extract_packetszMotorControl.__extract_packets<74>s<><00><00><13><06><15><06><13><04><19> <0C> <0A><01><19> <0A><0F>3<EFBFBD>t<EFBFBD>9<EFBFBD>|<7C>+<2B>+<2B><13>A<EFBFBD>w<EFBFBD>&<26> <20>T<EFBFBD>!<21>l<EFBFBD>*:<3A>Q<EFBFBD>*><3E>%?<3F>4<EFBFBD>%G<><1C>Q<EFBFBD>q<EFBFBD><<3C>/<2F>0<><05><16> <0A> <0A>e<EFBFBD>$<24><11>\<5C>!<21><01> !<21> <0A><11>Q<EFBFBD><06><01><10>3<EFBFBD>t<EFBFBD>9<EFBFBD>|<7C>+<2B>+<2B><1E>m<EFBFBD>n<EFBFBD>-<2D><04><0E><15> rN)#r,r-r.r\r]r^r<>r[rr
rkrnrxr|r<>r<>r<>r<>r<>r`r<>r<>r<>r<>r<>r_r<>r<>r<>r<>r<>r<>r<>r<>r<>r/rrr1r1Bs;<00><00><1E>b<EFBFBD>h<EFBFBD>h<EFBFBD> -<2D>.0<EFBFBD>h<EFBFBD>h<EFBFBD>8<>O<EFBFBD>"<22>><3E>=<3D>.<2E>!<21>><3E>><3E>?<3F>Tc<54>#<23>$4<>5E<35> G<01>K<EFBFBD> <1C>!<14>u<EFBFBD>!<14>%<25>!<14>E<EFBFBD>!<14>u<EFBFBD>!<14>SX<53>!<14>F <15>%<25> <15>U<EFBFBD> <15>u<EFBFBD> <15>%<25> <15>V[<5B> <15>di<64> <15><14><05><14>%<25><14>*<14> <14><05><14>0<14> <14><14><14>4<>><3E>S<01>>E<01>4<14>2<><02><08><08>2<>
:<3A>*<2A>
*<2A><15>* <15> /<2F><14><15>,<14>,rr1c<00>$<00>||kr|}y||kDr|}yyr r/)<03>x<>min<69>maxs r<00> LIMIT_MIN_MAXr<58><00>s<00><00><08>C<EFBFBD>x<EFBFBD> <0F><01>
<EFBFBD>S<EFBFBD><17> <0F><01>
rr<><00>x_min<69>x_maxc<00>r<00>t|||<02>||z
}||z
|z }tj|d|zdz
z<00>S<00>Nr6)r<>r\r)r<>r<>r<><00>bits<74>span<61> data_norms rrZrZ<00>sA<00><00><11>!<21>U<EFBFBD>E<EFBFBD>"<22> <10>5<EFBFBD>=<3D>D<EFBFBD><12>U<EFBFBD><19>d<EFBFBD>"<22>I<EFBFBD> <0A>9<EFBFBD>9<EFBFBD>Y<EFBFBD>1<EFBFBD><04>9<EFBFBD><01>/<2F>2<> 3<>3rr<>r<>c<00>n<00>||z
}t|<00>d|zdz
z }||z|z}tj|<06>Sr<>)r
r\<00>float32)r<>r<>r<>r<>r<>r<00>temps rr<>r<><00>s?<00><00> <0E><13>9<EFBFBD>D<EFBFBD><15>a<EFBFBD><08>Q<EFBFBD>$<24>Y<EFBFBD>!<21>O<EFBFBD>,<2C>I<EFBFBD> <14>t<EFBFBD> <1B>c<EFBFBD> !<21>D<EFBFBD> <0A>:<3A>:<3A>d<EFBFBD> <1B>rc<00>2<00>td|<00>}td|<01>S)N<>f<>4B<34>rr<00><02>value<75>packeds rrtrt<00>s<00><00> <11>#<23>u<EFBFBD> <1D>F<EFBFBD> <11>$<24><06> <1F>rc<00><><00>t|t<00>r%d|cxkrdkrn td<04><00>td|<00>}n td<04><00>t d|<01>S)Nrl<00><EFBFBD><00>Iz3Value must be an integer within the range of uint32r)<05>
isinstancer<EFBFBD>r<00>
ValueErrorrrs rr<>r<><00>sO<00><00><11>%<25><13><1D>1<EFBFBD><05>#;<3B><1A>#;<3B><19>N<>O<>O<><16>c<EFBFBD>5<EFBFBD>!<21><06><18>N<>O<>O<> <12>$<24><06> <1F>rc<00>V<00>d|cxkrdksnd|cxkrdksnd|cxkrdkryyyy) zW
check if the number is in the range of uint32
:param number:
:return:
rYr7r<>rS<00>#<00>$TFr/)<01>numbers rr<>r<> s=<00><00>
<EFBFBD>V<EFBFBD><19>r<EFBFBD><19>r<EFBFBD>V<EFBFBD>1<>r<EFBFBD>1<>r<EFBFBD>V<EFBFBD>7I<37>r<EFBFBD>7I<37><13>8J<01> <10><14> rc<00>><00>td||||<03>}td|<04>dS)N<><4Bz<Irr<00><05>byte1<65>byte2<65>byte3<65>byte4r
s rr<>r<><00>&<00><00> <11>%<25><15><05>u<EFBFBD>e<EFBFBD> 4<>F<EFBFBD> <11>$<24><06> <1F><01> "<22>"rc<00>><00>td||||<03>}td|<04>dS)Nrz<frrrs rr<>r<>rrc<00>d<00>|D<00>cgc]}|d<01><04><02>}}tdj|<02><00>ycc}w)N<>02X<32> )rIr<>)r<><00>byte<74>
hex_valuess r<00> print_hexr!"s2<00><00>,0<>1<>D<EFBFBD>D<EFBFBD>T<EFBFBD>#<23>J<EFBFBD>-<2D>D<EFBFBD>J<EFBFBD>1<> <09>#<23>(<28>(<28>:<3A>
new file: .vscode/settings.json 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
2025-12-06 22:47:57 +08:00
<1E><1F><>2s<00> -c<00>2<00> ||<00>S#t$rYywxYwr )r)<02>index<65>
enum_classs r<00>get_enum_by_indexr%'s$<00><00><14><19>%<25> <20> <20><> <15><14><13><14>s <00>
<00> <03>c<00><<00>eZdZdZdZdZdZdZdZdZ dZ
d Z d
Z d Z d Zy )<0E> DM_Motor_Typerr6rRr5rVrQrXrYr8<00> r7<00> N)r,r-r.<00>DM4310<31>
DM4310_48V<EFBFBD>DM4340<34>
DM4340_48V<EFBFBD>DM6006<30>DM8006<30>DM8009<30>DM10010L<30>DM10010<31>DMH3510<31>DMH6215<31>DMG6220r/rrr'r'.s><00><00> <0E>F<EFBFBD><12>J<EFBFBD> <0E>F<EFBFBD><12>J<EFBFBD> <0E>F<EFBFBD> <0E>F<EFBFBD> <0E>F<EFBFBD><10>H<EFBFBD><0F>G<EFBFBD><0F>G<EFBFBD><10>G<EFBFBD><10>Grr'c<00><><00>eZdZdZdZdZdZdZdZdZ dZ
d Z d
Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/y.)/<2F> DM_variablerr6rRr5rVrQrXrYr8r(r7r)rPr<>r<>rWrSr<><00><00>r=r<><00><00>r<>r@<00><00>r;r<>r4<00><00> <00>!<00>"rrr:r<><00>4<00>5r?<00>7<00>P<00>QN)0r,r-r.<00>UV_Value<75>KT_Value<75>OT_Value<75>OC_Value<75>ACC<43>DEC<45>MAX_SPD<50>MST_ID<49>ESC_ID<49>TIMEOUT<55> CTRL_MODE<44>Damp<6D>Inertia<69>hw_ver<65>sw_ver<65>SN<53>NPP<50>Rs<52>LS<4C>Flux<75>Grr<72>r<>r<><00>I_BW<42>KP_ASR<53>KI_ASR<53>KP_APR<50>KI_APR<50>OV_Value<75>GREF<45>Deta<74>V_BW<42>IQ_c1<63>VL_c1<63>can_br<62>sub_ver<65>u_off<66>v_off<66>k1<6B>k2<6B>m_off<66>dir<69>p_m<5F>xoutr/rrr7r7=s<><00><00><10>H<EFBFBD><10>H<EFBFBD><10>H<EFBFBD><10>H<EFBFBD>
<0B>C<EFBFBD>
<0B>C<EFBFBD><0F>G<EFBFBD> <0E>F<EFBFBD> <0E>F<EFBFBD><0F>G<EFBFBD><12>I<EFBFBD> <0A>D<EFBFBD><10>G<EFBFBD> <0F>F<EFBFBD> <0F>F<EFBFBD> <0B>B<EFBFBD>
<0C>C<EFBFBD> <0B>B<EFBFBD> <0B>B<EFBFBD> <0A>D<EFBFBD> <0B>B<EFBFBD> <0A>D<EFBFBD> <0A>D<EFBFBD> <0A>D<EFBFBD> <0A>D<EFBFBD> <0F>F<EFBFBD> <0F>F<EFBFBD> <0F>F<EFBFBD> <0F>F<EFBFBD><11>H<EFBFBD> <0A>D<EFBFBD> <0A>D<EFBFBD> <0A>D<EFBFBD> <0E>E<EFBFBD> <0E>E<EFBFBD> <0F>F<EFBFBD><10>G<EFBFBD> <0E>E<EFBFBD> <0E>E<EFBFBD> <0B>B<EFBFBD> <0B>B<EFBFBD> <0E>E<EFBFBD>
<0C>C<EFBFBD>
<0C>C<EFBFBD> <0A>Drr7c<00><00>eZdZdZdZdZdZy)rr6rRr5rVN)r,r-r.r<00>POS_VEL<45>VEL<45>
Torque_Posr/rrrrms<00><00>
<0B>C<EFBFBD><0F>G<EFBFBD>
<0B>C<EFBFBD><12>Jrr)<1A>timer<00>numpyr\<00>enumr<00>structrrrr1r<>r
rZrr<>rtr<>r<>r<>r<>r!r%r'r7rr/rr<00><module>rys<><00><01><16><12><18><19><17>7<18>7<18>t\<16>\<16>~ <10>4<>U<EFBFBD>4<>5<EFBFBD>4<><15>4<><1C>R<EFBFBD>Y<EFBFBD>Y<EFBFBD><1C>U<EFBFBD><1C><15><1C> <20>  <20><11>#<23>#<23> <20>
new file: .vscode/settings.json 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
2025-12-06 22:47:57 +08:00
<14> <11>G<EFBFBD> <11>-<0E>'<27>-<0E>`<13>7<EFBFBD>r