You are here

Hall sensors + incremental encoder

3 posts / 0 new
Last post
SAK-SIVAL
Offline
Last seen: 10 months 2 weeks ago
Joined: 2020-10-05 18:29
Posts: 1
Hall sensors + incremental encoder

 

I am working on mobile robots and during some phases of operation need high position accuracy in the robot wheels with high torque at low speed, but do not need absolute position.  This is different than robot arms that need an absolute position at startup.

I'd like to use wheels that have an incremental encoder with no index as they are readily available and lower cost.

I believe that by using Hall sensors + incremental encoder with arbitrary zero position, that after initial startup, the operation of the wheels could maintain high precision and high low-speed torque.  It is even OK if they need to periodically reset the encoder position, as all operation in high precision is relative to the current position, not an absolute position.

I believe this functionality does not exist in VESC today as all encoders require ABI.

It seems this would need to use additional inputs that support the Hall inputs simultaneously to AB inputs.  I assume the AB inputs could be mapped to other inputs on the VESC.  

Is there any other barrier to making this work with VESC 4.x or 6.x?  The closest I've seen to this is the MJ-VESC, but even that needs to roll over to ABI.

Link to Maxon article addressing this technique  1.) Sinusoidal commutation based on "Hall sensors + Digital / analog incremental encoder"

https://support.maxongroup.com/hc/en-us/articles/360007984693-EPOS4-Sensors-start-procedure-of-sinusoidal-commutation

-----

I can use inputs SCK_ADC_EXT and MISO_ADC_EXT2 as inputs for the A and B signals as the nunchuck will not be used.

Can the sensor FOC mode work without the reference position at startup?  I suppose the configuration tool sets where the windings are relative to the absolute position, so that would not work.

Can the sensor FOC mode be switched to dynamically after inital operation with a good estimate of where the windings are relative an arbitrary zero position for the AB sensor?  And would it have more torque at low speed while operating in that sensored FOC mode?

Can I simply wrap the sensor position artificially once an arbitrary zero location has been set, bypassing encoder_reset(), since it will never be called.

Related .c files: mcpwm_foc.c,  encoder.c, 

-----

I could even run sensorless with encoder AB as position information.  It does not have to be continuously correct, just enable relative increased accuracy at slow speeds.

I've tried HFI on my motor, and it does not have good inductance rolloff characteristics like your example motors.  I tried on another motor and it worked much better, but not the motors I need to use.

 

Thank you

TheFallen
Offline
Last seen: 11 months 1 day ago
VESC Original
Joined: 2017-09-11 11:46
Posts: 222

You could possibly feed the encoder into a separate microcontroller for the fine control, or into the COMM port and use a custom app to handle that?

 

tonyXHB
Offline
Last seen: 1 year 3 months ago
Joined: 2020-11-12 16:41
Posts: 3

Hi SAK,

Do you solve the problem? I want to use the same project as yours, but I can not find ways to control the motor either.