improving on thrust control? (xbox360 or PS3)

Discussions and questions about the Crazyflie Nano Quadcopter
Post Reply
theseankelly
Expert
Posts: 153
Joined: Mon Dec 28, 2015 3:23 pm
Contact:

improving on thrust control? (xbox360 or PS3)

Post by theseankelly »

Hey All

I'm primarily using an xbox360 controller via the crazyradioPA to fly and the control of thrust leaves much to be desired (as I'm sure is also true with the PS3 controller). The primary issue is that since the joysticks are spring loaded to remain central, I can only use half the range of motion towards thrust, which makes it REALLY touchy and jumpy if you want to enable higher max thrust percentages. Furthermore, you've got to constantly apply pressure to the stick for the duration of the flight, which is uncomfortable.

Contrast this with the controller that came with my rinky dinky RC helicopter -- the thrust stick is not spring loaded at all which makes it reaaaally easy to hover more-or-less in place and fly around.

I'm wondering if there's any trickery anyone's come up with for improving thrust control using a gamepad connected to the python client for flying. Or, any cheap controllers that are compatible -- I've seen reference to a couple $400 RC controllers, and I'm not about to spend that kind of money.

Some thoughts I had but haven't tried:
1) Perhaps I could configure the controller's thrust by holding the stick all the way down before detecting the axis. This way I'd get a full range of motion, but I see that being really weird, especially in needing to remember to hold the stick down before connecting every time.

2) Someone posted not too long ago about a thrust-hold mode where thrust stays constant and is adjusted by moving the stick up and down (releasing the stick keeps thrust constant; does not return it to zero). Sounds a little hard to get used to, but possibly the best case scenario for what I'm looking for.

Thanks!
Sean
http://www.thejumperwire.com
Tips, tutorials, and science about DIY electronics, drones, and embedded software.
chad
Expert
Posts: 555
Joined: Sun Sep 28, 2014 12:54 am
Location: New York, USA
Contact:

Re: improving on thrust control? (xbox360 or PS3)

Post by chad »

If you're technically inclined, you can get a Walkera Devo7e for around $70USD and mod it with an NRF24L01+PA chip then install deviationTX software and use that. Then you have the power and comfort of a "real" flight transmitter without the $400 price tag.

Once I thought I could simply remove the spring in my PS3 controller but it turned out to be a little harder than I imagined so I abandoned the idea.

Eventually I got used to the PS3 controls but admittedly, it is quite touchy.
Crazyflier - my CF journal...
4x Crazyflie Nano (1.0) 10-DOF + NeoPixel Ring mod.
3x Crazyflie 2.0 + Qi Charger and LED Decks.
Raspberry Pi Ground Control.
Mac OS X Dev Environment.
Walkera Devo7e, ESky ET6I, PS3 and iOS Controllers.
theseankelly
Expert
Posts: 153
Joined: Mon Dec 28, 2015 3:23 pm
Contact:

Re: improving on thrust control? (xbox360 or PS3)

Post by theseankelly »

Oh that's not so bad -- I had read the stuff about Walkera but when I looked to buy the controller I only found things for $150 and up. Must have been searching for the wrong thing. At any rate, $70 is still a bit on the high end for me at the moment but I'll keep it in the back of my mind.

The mod page says this hack makes it compatible with many RC helis -- I'm now tempted to go check out the board of my RC's controller to see what module it's using (Haktoys HAK809) because it's a pretty serious controller for a $40 copter. I'm suspicious they just re-used the controller from another manufacturer.

I also had the idea of using the left or right analog triggers for thrust. I imagine it would take some getting used to, but at least its an analog stick which will give me a full range of motion. Did a quick search on the forum and it seems like a reasonably popular controller configuration.

Anyway, thanks for the tips!
http://www.thejumperwire.com
Tips, tutorials, and science about DIY electronics, drones, and embedded software.
theseankelly
Expert
Posts: 153
Joined: Mon Dec 28, 2015 3:23 pm
Contact:

Re: improving on thrust control? (xbox360 or PS3)

Post by theseankelly »

I've continued to search the forums for ideas, and have a pretty good setup now. First, I moved yaw to the left and right triggers. This works pretty great, since I have one less thing to worry about for the stick controlling thrust. I tried thrusting with a trigger, but it seems like the triggers are even a little more sensitive and/or have a smaller range than the joystick.

The real benefit, though, is advanced mode. Lots of things to tune there. For example, tobias' suggestion to bump up the min thrust in advanced mode, which effectively reduces the sensitivity across the range of the thrust stick.
viewtopic.php?f=8&t=850&p=4910&hilit=ad ... 0fa0#p4910

I've also played around with slew rates a bit to help smooth things out.

I'm starting to feel pretty good about the xbox controller, and there's a lot more tuning yet to be tried. I think it'll work out. I'll keep the Devo7e project in the back of my mind though...
http://www.thejumperwire.com
Tips, tutorials, and science about DIY electronics, drones, and embedded software.
theseankelly
Expert
Posts: 153
Joined: Mon Dec 28, 2015 3:23 pm
Contact:

Re: improving on thrust control? (xbox360 or PS3)

Post by theseankelly »

Whelp, I've gone and purchased a Devo7e and NRF24. Thanks for the suggestions, I look forward to using it when it shows up.
http://www.thejumperwire.com
Tips, tutorials, and science about DIY electronics, drones, and embedded software.
chad
Expert
Posts: 555
Joined: Sun Sep 28, 2014 12:54 am
Location: New York, USA
Contact:

Re: improving on thrust control? (xbox360 or PS3)

Post by chad »

theseankelly wrote:Whelp, I've gone and purchased a Devo7e and NRF24. Thanks for the suggestions, I look forward to using it when it shows up.
Tobias forked the deviationTX repo and made changes to support the Crazyflie 2. His thread on that is here. It's also worthwhile to note that you'll need to remove a test for 0 thrust in crazyflie-firmware/modules/src/commander.c or the Crazyflie will bind with the controller successfully but not fly. That bit of advice was in a blog post (that I missed and at first).

Have fun modding!
Crazyflier - my CF journal...
4x Crazyflie Nano (1.0) 10-DOF + NeoPixel Ring mod.
3x Crazyflie 2.0 + Qi Charger and LED Decks.
Raspberry Pi Ground Control.
Mac OS X Dev Environment.
Walkera Devo7e, ESky ET6I, PS3 and iOS Controllers.
theseankelly
Expert
Posts: 153
Joined: Mon Dec 28, 2015 3:23 pm
Contact:

Re: improving on thrust control? (xbox360 or PS3)

Post by theseankelly »

THIS WAS THE BEST DECISION I'VE EVER MADE.
http://www.thejumperwire.com
Tips, tutorials, and science about DIY electronics, drones, and embedded software.
chad
Expert
Posts: 555
Joined: Sun Sep 28, 2014 12:54 am
Location: New York, USA
Contact:

Re: improving on thrust control? (xbox360 or PS3)

Post by chad »

theseankelly wrote:THIS WAS THE BEST DECISION I'VE EVER MADE.
Yeah! Awesome right?

You can do a few other mods on that controller too if you want to control other quads, helis, and planes. You can add an A7105 module (Hubsan), increase the stock transmitter (CYRF6396) range, and add a swivel antenna.

Fun times!! :D
Crazyflier - my CF journal...
4x Crazyflie Nano (1.0) 10-DOF + NeoPixel Ring mod.
3x Crazyflie 2.0 + Qi Charger and LED Decks.
Raspberry Pi Ground Control.
Mac OS X Dev Environment.
Walkera Devo7e, ESky ET6I, PS3 and iOS Controllers.
Post Reply