One motor slowing down (stopping)
One motor slowing down (stopping)
Hi,
I'm working on a heavy (80kg) robot. It has 4 wheels (differential drive), each one with its one motor and encoder.
I'm using 2 roboclaws 2x60A to control them (one for the front wheels, one for the rear wheels).
I'm commanding the roboclaws from a Jetson Xavier AGX developper kit (embedded computer running linux, similar to a Raspberry Pi but far more powerfull). I'm using the python API to communicate with the roboclaws from within a ROS node.
The problem I have, is that sometimes, one wheel, always the right rear one, seems to "block" (more precisely, it turns very slowly (I think driven only by the movement of the robot) while the other ones still turn at normal speed).
My first idea was some error in my code, but I always send exactly the same commands at the 2 roboclaws, so it seems very unlikely that this is the problem.
Do you have any idea were the issue might come from? Or what tests I can do to gather useful data to find the solution?
Thanks a lot in advance
Felix
PS : please find attached the code of my roboclaw ROS node.
I'm working on a heavy (80kg) robot. It has 4 wheels (differential drive), each one with its one motor and encoder.
I'm using 2 roboclaws 2x60A to control them (one for the front wheels, one for the rear wheels).
I'm commanding the roboclaws from a Jetson Xavier AGX developper kit (embedded computer running linux, similar to a Raspberry Pi but far more powerfull). I'm using the python API to communicate with the roboclaws from within a ROS node.
The problem I have, is that sometimes, one wheel, always the right rear one, seems to "block" (more precisely, it turns very slowly (I think driven only by the movement of the robot) while the other ones still turn at normal speed).
My first idea was some error in my code, but I always send exactly the same commands at the 2 roboclaws, so it seems very unlikely that this is the problem.
Do you have any idea were the issue might come from? Or what tests I can do to gather useful data to find the solution?
Thanks a lot in advance
Felix
PS : please find attached the code of my roboclaw ROS node.
- Basicmicro Support
- Posts: 1594
- Joined: Thu Feb 26, 2015 9:45 pm
Re: One motor slowing down (stopping)
The symptom is what I would expect if there is a false over current. This is usually caused by too low a current blanking window. The default of 5.4% is too low for larger motors. Open General Settings and adjust the value to between 8 an 10%. Remember to Write Settings using the device menu, and then retest. Once you have a good enough value you will no longer have the problem with that wheel.
The M2 channel is more susceptible to motor noise because it's current reading is taken second during each PWM pulse so it will always be closer to the falling edge, which is actually noisier than the rising edge of the PWM.
The M2 channel is more susceptible to motor noise because it's current reading is taken second during each PWM pulse so it will always be closer to the falling edge, which is actually noisier than the rising edge of the PWM.
Re: One motor slowing down (stopping)
Hi,
thanks a lot.
I Just changed it to 15%, I will try it in the field on Monday morning.
I keep you updated.
Best regards
Felix
thanks a lot.
I Just changed it to 15%, I will try it in the field on Monday morning.
I keep you updated.
Best regards
Felix
Re: One motor slowing down (stopping)
Hi,
I haven't had time to do a long test, but during the short test I did everything seemed to be OK.
Thanks a lot.
Best regards
Felix
I haven't had time to do a long test, but during the short test I did everything seemed to be OK.
Thanks a lot.
Best regards
Felix
Re: One motor slowing down (stopping)
Is there a way to read more about the current blanking windows? I had the same problem with my motors, and changing from 5.4 to 10% fixed the problem. However, I would like to better understand this functionality.
- Basicmicro Support
- Posts: 1594
- Joined: Thu Feb 26, 2015 9:45 pm
Re: One motor slowing down (stopping)
Current blanking window sets the lowest duty percentage current readings will be used. As the duty goes down the PWM width goes down. Depending on the motors the rising and falling edge of each PWM will have noise. We take our readings between these edges but as the duty goes down they get closer to the point we take the readings. This makes low duty current readings invalid. Since the amount of noise is dependant on the motors used the window is adjustable.