[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4789: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3916)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4791: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3916)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4792: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3916)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4793: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3916)
AutoQuad Forum • View topic - ESC32 goes robotics

ESC32 goes robotics

Info and Discussion about the ESC32 hardware and software

ESC32 goes robotics

Postby yang » Fri Jul 11, 2014 9:41 pm

yang
 
Posts: 5
Joined: Fri Jul 11, 2014 8:27 pm

Re: ESC32 goes robotics

Postby kinderkram » Fri Jul 11, 2014 11:58 pm

Ah, the cable cam man! :D

Welcome to the AQ forums, Werner.
Looks like you got the hardware and gimbal part covered well. I thought the UltraESC in combination with a NanoWii and special MultiWii fw could do the trick. But dunno if they´re sufficient for bigger motors to carry some payload.
You know I´m not the expert around - but the upcoming ESC32v3 might be a candidate for your needs. ;)

Norbert
kinderkram
 
Posts: 2911
Joined: Fri Jun 22, 2012 7:47 am

Re: ESC32 goes robotics

Postby yang » Sat Jul 12, 2014 7:32 am

Maybe I should explain what the current issue is for you to decide if this is something new or covered by the ESC32v3 - whatever that is.

I wrote a PID controller for absolute positioning. Input is the RC signal, output a PWM signal for the ESC. The PID controller knowes the current position, the target position, calculates the error, transposes that into a PWM signal and the ESC will drive to the target position. Everything fine.
For a PID controller to work flawlessy, the ESC would need to have a steady output curve. But it does not. At acceleration and holding the speed everything is fine. The more PWM signal the more energy, the faster it drives. But how do you brake with an ESC? By putting the stick in neutral or reverse even. This way you adjust the brake power. So the PID controller would not need to change the PWM signal to 50% throttle, it would need to go to neutral, wait until it decelerated enough and then go to 50% throttle again.
Another example, the car goes down a steep hill. So for 10% forward speed the ESC needs to brake with 30% force instead of having the throttle at 10% forward.

The ESC32's governor mode would be perfect for that, because now I can specify the rpm and the ESC does whatever it takes to achieve that speed. Apply more power, brake. But that would need to work not only from 300rmps to 30'000rpms but from 0 to 30000.
yang
 
Posts: 5
Joined: Fri Jul 11, 2014 8:27 pm

Re: ESC32 goes robotics

Postby bn999 » Sat Jul 12, 2014 2:18 pm

If you need to actively brake to maintain requested RPM, then ESC32v3 would be the way to go as it uses active freewheeling. A reduction in output duty cycle automatically provides a large degree of braking due to the regenerative effect with using a battery as a power source. Your project sounds interesting - perhaps there is someone here that has the time to work on it with you.
bn999
 
Posts: 1559
Joined: Thu Jun 21, 2012 11:40 pm

Re: ESC32 goes robotics

Postby yang » Sun Jul 13, 2014 9:08 am

Thanks Bill, can you elaborate on that a bit?
My current understanding is that todays hardware revision and firmware code supports regenerative braking already (experimental). Now you are saying I need the new hardware. And for active freewheeling, isn't that just the combination the half bridges are turned on/off, assuming that practically all MosFets can deal with reverse power flows?
As it seems I lack some knowledge here....

Thanks in advance

btw, I cannot motivate you to help somehow, can I? The forward/reverse should be a piece of cake for you, low rpm would be the most difficult one I assume.
yang
 
Posts: 5
Joined: Fri Jul 11, 2014 8:27 pm

Re: ESC32 goes robotics

Postby bn999 » Mon Jul 14, 2014 3:12 am

The braking feature of ESC32v2 is not well tested and some people have reported problems with it. I would not count on it working for you.

Yes, the active phase's low side FET is turned on when the high side is turned off instead of just letting the phase float. This gives a low resistance pass for the freewheeling current back to the battery instead of having to go through the body diode.

I have too many projects going to take on a new one at this time.
bn999
 
Posts: 1559
Joined: Thu Jun 21, 2012 11:40 pm

Re: ESC32 goes robotics

Postby LPR » Mon Jul 14, 2014 2:02 pm

yang

Have you looked at this type of ESCs.

http://www.mtroniks.net/details1.asp/Pr ... oRockC.htm

Larry
LPR
 
Posts: 1323
Joined: Tue Jun 26, 2012 1:29 pm
Location: MN, USA

Re: ESC32 goes robotics

Postby yang » Mon Jul 14, 2014 2:22 pm

Yes, this goes into the proper direction but first it is for brushed motors - their brushless line does not seem to have such as well - and it lacks the absolute positioning I added as extended goal. Thanks for the tip, though!
Don't get me wrong, my Hobbywing brushless ESC is quite good as it supports rock crawlers as well. It is just not the last step towards perfect and I cannot extend its firmware with absolute positioning, need to do that externally. Nothing wrong with that but both together caused me to ask and investigate.

btw, there are products available to buy, they are not optimized for RC equipment, large and expensive.
http://www.roboteq.com/index.php
yang
 
Posts: 5
Joined: Fri Jul 11, 2014 8:27 pm

Re: ESC32 goes robotics

Postby yang » Mon Jul 21, 2014 9:00 pm

I have started to make my first changes in the code. Basically it is a mixture of the servo mode and the startup sequence with START_STEPS_NUM.

In RPM mode the startup sequence does the align but stops here. ESC state remains in ESC_STATE_NOCOMM. When I now enter the command rpm 1, the runRpm() method starts rotating the field using the servo logic. Once it reaches 100rpm, I would start with the commutation and bring the state in ESC_STATE_STARTING and therefor RUNNING. And if the rpms are set below 100, I am back in the NOCOMM logic.
That's the idea, it is not working yet. Some sideeffect I haven't found yet. From my point of view I am still in the NOCOMM state and hence the behavior should be the same as what the servo mode does. Align the motor and then increase the degrees. Need to find out why it is not. At the moment imemdiately after the ALIGN the motor starts making high frequency noises, the rpm in the status screen is 25'000 and although the fetServoAngle is increasing slowly, the motor does not turn. As said, from my point of view I am doing the same thing as the servo mode does. Obviously there is something overriding my fet settings which doesn't when mode=ESC_SERVO_MODE. Will find out.

Other issues I have with my CooCox development environment
* in one out of 10 compilations the serial port does not work. Not even the first serialPrint() does something. ESC Led is toggling, so systick works and the initial fetbeep is produced as well. No idea.
* Had major issues with the gnu compiler around stdio and floats. At the moment I am using the full C library and everything works here except the sscanf(). for example I can successfully execute the command set FF1TERM 1 or FF1TERM 2.0 but a FF1TERM 1.1 does cause the ESC to freeze, a value of 2.4e-8 of course as well. I have no idea. As setting the FF1TERMs manually is time consuming anyway, I had modified the defaults instead for now.

Next step, once above works, would be to check if the transition from NOCOMM to fetStartCommutation() works smoothly. But should as it is in the regular startup sequence as well. But the way back to NOCOMM will be harder, I need to find out the starting angle.
The SERVO_DUTY config value concerns me a bit. If it is too high it will overheat the FETs and the motor, I assume. If it is too low it will not create enough momentum to start the motor. Keep in mind, my use case is not a propeller but a car like application. Much more resistance or even a full blocking motor in worst case.

The space vector and sinusoidal field implementation might be worth implementing for regular commutational movement as well. But then the RUN_FREQ needs to be increased, 2kHz is not enough steps at high rpms. I am not sure I am brave enough to do that myself. But frankly, this is actually all I am trying to implement. A rotating space vector aligning to the BackEMF communtation commands and if the BackEMF is too low, keep rotating the field at the targetRpm value.
yang
 
Posts: 5
Joined: Fri Jul 11, 2014 8:27 pm

Re: ESC32 goes robotics

Postby volatile666 » Sun Mar 08, 2015 1:43 am

I dont want to hijack this thread but my use case seems to be the same so Ill post here:
Id like to use brushless motors in a robotic enviroment too. For that I need powerful yet reasonably priced hardware thats able to do FOC and read encoders, resolvers or something similar. I couldnt find information or plans about that in ESC32 except in this thread...
Is there anything I missed?
Should I buy an ESC32v2 for development or wait for ESC32v3?
yang, could you tell me about your progress on this topic?
Thank you everybody!
volatile666
 
Posts: 2
Joined: Sun Mar 08, 2015 1:23 am


Return to ESC32

Who is online

Users browsing this forum: No registered users and 3 guests

cron