Hi, I am developing an in wheel motor and active suspension system. Please see these animation on you tube.
My knowledge of BLDC motors, Odrive, Python is 100% “armchair”. I am hoping that the Odrive community could get involved in building a controller for this project.
The system uses three axially aligned outrunner BLDC motors to drive and position a wheel rim eccentric to the motor axis. The design intends to solve unsprung mass problems that come with hub motors and it also shares the use of the motors for driving the wheel and driving the active suspension to make a compact lightweight system. I have worked out the math and geometry for calculating the angular position of each motor to control the angular position of the wheel rim and the x and y position of the wheel rim axis.
At this stage I want to build a proof of concept prototype of a wheel module on a rig so that wheel is rotating and positioning without touching any road surface. this is so I can control the rpm of the wheel rim and the x and y position with 3 axis joystick. (active suspension sensors and algorithms can be implemented later)
I think that the simplest way to control this is to use an off axis absolute encoder on each motor so that there relative angular positions can be fed to Python in addition to Odrive. The input commands from the joystick can also be fed into Python to produce three individual channels with “cyclic” velocity instructions for the Odrive controller.
I have created the files for 3d printing the components excepting i have to settle on a motor so that i can detail in the mounting points in the parts.
This is the hardware that i am thinking of starting with
2x Odrive V3.6
3x electric bicycle hub motors from Golden motor Model: HBS36R
3x MPS MA702 or MA732 in the Off axis configuration
3x OD140mm ID120mm 10mm H diametrically polarised neodymium ring magnets for the MPS encoders (or a collection of magnets to form a ring.)