See also custom lights for car: • Custom lights with iom... Do we like long videos? I could have spent another hour trimming it down, but then I got drunk and was having a good time watching L.A. Confidential and couldn't be bothered :)
Very cool concept in general, the iomixer. Been really interested since the start, nice to see a project aimed at being useful and not just showing off, or rushing for production. Good work as usual. I really want one of those cars now too :)
It's amazing how many bugs can be uncovered by testing a wide range of use cases too, better that I find them myself first than letting other people do it! The car is a Wltoys 124016 V2, it seems pretty awesome to me, then again it's my first fast RC car since 1989 so I'm not really in a position of great knowledge.
Год назад
Thank you for this very interesting new episode! I hope some flying thing with milling is on the way! Keep up the good work!
Great updates love what you're doing with this like the gyro on the forward fast steering and the turning you're trying to say is oblique I have it on my telehandler loader
This is very cool. I haven't really been paying attention to your previous videos so I found myself wondering what software you were using. Had to go back and watch your previous video to work out you had programmed it yourself! Awesome work, looks a little like nodered.
Man, I've built an rov, and meanwhile my 5 years of doing so I was watching your videos as well. Your style is sooo good. I love your videos and more importantly what you do! Your iomixers is cool, so I would like to try it put on my rov! Hit me back, please
Here's something that you might like to try... The Hobbywing Fusion motor's have something called "FOC", Field Orientated Control I think it stands for. It's used for crawling and I'll see if I can explain what it does... When you are driving along and you come up to an obstacle you would normally have to apply more throttle because of the extra power needed to get over the obstacle. What the FOC does it detects that increased resistance so applies more power for you. In your case, as you have worked out the maximum speed of the car is 58kph perhaps your program could treat the throttle input as more of a "speed selector". eg you have the throttle trigger at 25% which would be 14.5kph so the program increases the throttle until you detect a speed of 14.5kph? Then if you started going up a hill it would automatically increase throttle to try and keep that speed :)
I'm familiar with FOC after discovering it when playing around with hoverboard motor controllers. A very nice result it gives indeed. Yes I think the GPS could be used to regulate speed, although it would be quite slow to react and settle into the desired result, so probably not useful for a dirt buggy like this with quick speed changes. Could be handy for some kind of long distance vehicle that needs to hold a constant speed for long periods of time though. My e-bike controller has a crude form of the speed holding you're talking about. I don't think it's FOC but when you're riding along on flat and encounter a slope and don't move your throttle position, it will increase the output to (very roughly) maintain the previous speed (within certain limits I think). Feels kinda weird but quite cool.
iomixer seems an appropriate name. Naming things is hard. ;) Really loving your iomixer programming interface and how it simplifies and visually documents the control logic. From this side of the screen, the visuals really help to quickly understand what logic has been implemented. At 22:11 you seem puzzled as to why the gyro stabilization is not working. Think you just need iomixer logic to flip the 'scaling' sign when in reverse. See you disabled for reverse (44:22), but perhaps can't tell if in forward or reverse mode? (sorry, I'm not familiar with RC car controllers) For a crude traction control, you could try limiting throttle output based on gps speed. To understand the significance of speed, you need to consider the relative scale. Scaled to normal vehicle size this would be few hundred km/h and those rocks would be 10's of cm in diameter. Love the ah-ha moments like at 58:53. Nothing helps with learning more so than exploring and experimenting. Nuggets like this is why I find your content fascinating.
It seems like the standard behavior for a car ESC is that when the throttle goes from forward to reverse quickly, it becomes a crude brake, where the motor is inhibited from turning by having all terminals at the same potential so the back EMF of the motor will resist movement - this can be PWM controlled for some level of control over the braking 'force'. To actually drive in reverse you need to let the throttle sit in the mid position for a brief moment, after which moving it to reverse will result in reverse rotation. I made a demo of this kind of logic in the 'custom lights' video a while ago. There is no ESC or motor involved but you can get the idea from the brake/reverse lights and how my throttle finger is moving: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-m2-XxG3wRII.html At least that's how it seems to work with the typical basic 2-channel radio. If you have higher spec requirements and more money I think there are systems available to give better control. One such channel I have become addicted to recently is West Desert Wheeler. I don't know exactly what he's doing with his radio controls, but the results he gets make me doubtful that he's using such a basic setup: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-51zVhWjrWYk.html
@@iforce2d Thanks for the detail explanation and references. I remember your brake-light/reverse-light demo. At time I assumed the behaviour was part of the iomixer logic; had not released it was a behaviour of the RC controller and ESC firmware. In full-scale electric cars it's possible to shift R to D while rolling without coming to a stop. When rolling faster than commanded in either direction the back EMF is rectified and sent back into the battery (called regen). My understanding is there are bypass diodes paired with the MOSFETs. RC ESC's (particularly early versions) may lack such diodes, so firmware probably locking out MOSFETs to prevent unknown back EMF voltages spikes from damaging the MOSFETs. Close-looping motor coils would cause a breaking action, that is stronger with higher speeds.
I've always wanted to see ArduRover (or whatever) do high-speed autonomous missions. The precision necessary to carry out maneuvers in constant proximity to obstacles has always been impressive to me. To accomplish it on the ground with nothing but tires would be extra amazing, like using precise peel outs to draw designs in the gravel, or zipping around in between pylons at speeds only a robot could handle with any repeatability.
When my 1/4 scale truck was a 50cc petrol I used a heli gyro on the steering servo, now its electric, ardupilot does all the gyro stuff, I have the same setup on my brushless 1/10 car as well
Awesome as usual. Yes we like long videos. The longer the better. Save your valuable trimming time for posting another even longer video of dropping $#!t from the twin hopper. 😁
With some tuning, couldn't a Betaflight board also have been used? They have outputs for servos after all, if you remap motor M1...M4 for servos, and PID tune those.
If you mean the type of hardware boards that Betaflight typically runs on, yes. Also arduino, ESP32, teensy, or any number of other microcontrollers could be programmed to do this. If you mean the Betaflight firmware, no I can't see that being very suitable, at least not without some major modifications to handle the logic steps between input and output.
@@iforce2d Thanks for the reply! No, maybe not. My thinking was that BF is very fast, and so are the boards, not to mention inexpensive. I've seen people use them to make gyro stabilized selfie sticks, for example, so with the right tuning they might have worked. That said, I know very little about RC cars in this respect. Also, BF is meant to fly=)
If you kalman filtered to have velocity in x axis you could tell pretty well if the car was going forward or backward. Or better: optical flow sensor but that's more hardware.
You could also try to see if the z axis of these accelerometer gets smaller as you brake, the car lurches forwards and isn't parallel to the ground anymore, but it's a bumpy fella this one, might not work. Also the car has much better turning when under breaking, because of all the weight on the front tyres.
Integrating the accelerometer to infer velocity would be quite unreliable unfortunately. Any bumps on the ground make the z-axis check unreliable too. It might be possible to come up with a decent solution by using the GPS speed and throttle together, and watching for when the speed drops to near zero. The assumption being that whichever throttle direction was used to increase the speed from zero, will be the direction it's moving until next time the speed goes to zero. It would not work in all cases (for example if you were reversing and then somehow flipped around to be moving forward without much loss of speed) but it would cover most normal situations I think. Another way (that doesn't require a GPS) would be to figure out how the ESC decides whether to brake or reverse. I think this is determined by how quickly the throttle moves from a forward position to a reverse position. I used some logic like this in my custom lights test to decide whether to use brake lights or reversing light: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-m2-XxG3wRII.html If you could match the same timing as the ESC uses this would be pretty sweet. If the direction could be determined reliably, then you could reverse the gyro response when moving backward instead of just disabling it :)
Not had a chance to watch the vid yet but I've been looking for a mixer that could handle 4 direct drive motors with no mechanical steering using differential motor control instead. The bigger rc cars are serious money but a lot of the cost is in the complex drivetrain. Think your iomixer could handle that?
Direct drive means each wheel has its own motor with individual control right? You can output up to 4 channels of 'duty cycle' PWM which could be used for throttle, and digital outputs for direction, to control brushed motor drivers. You can see an example of this here, only with two motors: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE--W_9y7XRc_o.html The turning is not smooth, but that's only because those motors were too weak. If the motors use hobby style ESCs with servo style signals, you could just run them the same way I ran the ESC in this video, as a 'servo PWM' output.
With g force by acceleromter one could optimize throthle on acceleration so that no wheels would be doing extra spins with no efficiency for actual acceleration
I hope you replaced the divots on the 'boring, flat car park'. Should I go through and do an universal find/replace with the sbusmixer/iomixer or are you likely to come up with another alias?