Hello everyone,
I have a VESC 6 MKV that I am trying to use to control a F1Tenth-type Autonomous RC-Car. I have flashed the VESC with the newest (servo_out enabled) Firmware (5.02). The motor and servo of the car are controlled over the VESC ROS driver (https://github.com/f1tenth/f1tenth_system/tree/master/vesc).
My problem is the following:
Adjusting (only) the throttle for the motor works fine. However, when I begin to steer (i.e. the VESC outputs a PWM signal to the servo) the VESC quickly (after 1-3 sec.) crashes. It blinks red and blue (reboots) and once it's rebooted, the steering still works, but the other motor does not move.
When using the default servo speed, that was successfully used with other servos, the ROS package outputs an OUT_OF_SYNC with VESC error and the above behavior occurs. This error has to do with the serial communication packets being not of expected size or content. When I move the steering joystick slower, or when I reduce the max. steering speed parameter in the code, there is no error thrown but the above behavior still occurs.
I have a "SRT CH6012 HV Low Profile" Servo, which is suited for 1:10 scale RC vehicles.
However, when I tried other servos, the above behavior did not occur. So might there be something wrong with the servo? It seems to work fine for a few seconds, so it is plugged in correctly. Shouldn't the VESC be able to handle common RC servos? Or is there something I am missing, like a totally different baud-rate of the servo or something?
Many Thanks in advance,
AutonomousDrifting
After crashing and rebooting, do you have a fault code from the vesc?
I am not sure. How would I know?
The ROS driver sometimes gives this "out-of-sync with vesc" error, only indicating that there is something wrong with the packets.
How do I obtain such a fault code?
EDIT: I have just checked again. The VESC does indeed return the fault code 3. Which seems to be "FAULT_CODE_DRV8302".
So there seems to be a problem with the DRV chip?
I have also noticed, that when I turn down the servo speed even more. The issue happens less and less often, at some point steering is unusably slow, but the error does not occur anymore.
I´m experiencing a similar behavior, do you fixed your problem yet? When I´m steering too fast the VESC crashes and turns off. After reboot it, everything works again. Hopefully you can help.
Sure you have no GND loops in the system and the VESC logic is galvanically isolated towards other devices? also you might drain to much power from the 5V rail.
I am experiencing the same problem with a 1:5 RC with the VESC connected to my computer. Here is my setup:
VESC MK6 running firmware 6.05
Powering the VESC with a 4S LiPO battery
Servo is "S900S 1/5 Scale Digital Metal Gear Servo"
Motor is "Dynamite 1/5th BL Motor 800kV"
I can reproduce the problem within VESC Tool UI. I send a constant RPM command to the motor (2000 RPM in the fault below). Then, I steer the servo from left to right pretty fast and then the motor stops and I have to reboot the VESC to be able to send another velocity commands. Here is the fault generated:
Fault : FAULT_CODE_DRV
Motor : 1
Current : 1.7
Current filtered : 3.3
Voltage : 16.71
Duty : 0.069
RPM : 1979.0
Tacho : 30754
Cycles running : 97741
TIM duty : 386
TIM val samp : 2800
TIM current samp : 2800
TIM top : 5600
Comm step : 0
Temperature : 29.67
DRV8301_FAULTS : No DRV8301 faults
In my ROS node, I tried to limit the servo min/max values as well as reducing the maximum angular speed of the servo as mentioned, but I can still crash the VESC by just alternating left/right fast
Any ideas?
Thanks in advance!