Page 2 of 2

Re: CrazySwarm with Loco Positioning Node

Posted: Wed Apr 04, 2018 10:21 am
by arnaud
One assumption is that the poor Z behavior mainly comes from the accelerometer Z axis, in this video we speread the gravity on the accelerometer X and Y axis. Though the absolute Z might still be wrong and a Crazyflie with recent firmware well balanced propeller will have a pretty decent Z control behavior even in static flight.

@percy.jaiswal for your other questions we are now getting pretty far from this thread subject. Those are good questions, if you create a new thread with them I will answer there.

Re: CrazySwarm with Loco Positioning Node

Posted: Thu Nov 22, 2018 6:00 am
by john_drone
Hi aesreal,

I'm currently implementing TDOA3 with crazyswarm and the drones are acting exactly as you described in this thread.

Were you successful in sending velocity and acceleration setpoints in addition to your position setpoints?

If you did, could you share how you achieved this?

Re: CrazySwarm with Loco Positioning Node

Posted: Thu Nov 22, 2018 9:25 am
by arnaud
We used a non-linear controller made by Mike Hamer that has unfortunately never been merged into the master branch, I link to the controller in one of my previous post. We now have a nice architecture to support multiple controller in the Crazyflie so if anyone is interested in porting Mike's controller to the current Master branch I will very gladly merge the pull request :-).

If you are using Crazyswarm you can try the Melinger controller, it has been merged in Master and is usable with LPS. Though, in its current state the Melinger controller is very tightly tuned and tend to 'flip' at the first outlier, this is not ideal for LPS. Mike's controller was much more forgiving in that regard. To send velocity/acceleration setpoint you can use the high-level commander that is implemented in Crazyswarm: if you send goto commands or trajectories the high level commander generates all levels of setpoints for the controller to follow.

Re: CrazySwarm with Loco Positioning Node

Posted: Sun Nov 25, 2018 5:34 am
by jarlobelledo
arnaud wrote: Thu Nov 22, 2018 9:25 am We used a non-linear controller made by Mike Hamer that has unfortunately never been merged into the master branch, I link to the controller in one of my previous post. We now have a nice architecture to support multiple controller in the Crazyflie so if anyone is interested in porting Mike's controller to the current Master branch I will very gladly merge the pull request :-).

If you are using Crazyswarm you can try the Melinger controller, it has been merged in Master and is usable with LPS. Though, in its current state the Melinger controller is very tightly tuned and tend to 'flip' at the first outlier, this is not ideal for LPS. Mike's controller was much more forgiving in that regard. To send velocity/acceleration setpoint you can use the high-level commander that is implemented in Crazyswarm: if you send goto commands or trajectories the high level commander generates all levels of setpoints for the controller to follow.
where can i download the link for Melinger controller?

Re: CrazySwarm with Loco Positioning Node

Posted: Mon Nov 26, 2018 1:07 pm
by arnaud
It is part of the current master firmware (https://github.com/bitcraze/crazyflie-f ... ellinger.c) and can be activated by setting the parameter "stabilizer.controller" to 2 (https://github.com/bitcraze/crazyflie-f ... ller.c#L23).

Re: CrazySwarm with Loco Positioning Node

Posted: Tue Nov 27, 2018 6:38 am
by jarlobelledo
arnaud wrote: Mon Nov 26, 2018 1:07 pm It is part of the current master firmware (https://github.com/bitcraze/crazyflie-f ... ellinger.c) and can be activated by setting the parameter "stabilizer.controller" to 2 (https://github.com/bitcraze/crazyflie-f ... ller.c#L23).
Hi,
How can i change the parameter "stabilizer.controller" to 2? can i use the Pc client parameter?

Re: CrazySwarm with Loco Positioning Node

Posted: Tue Nov 27, 2018 6:50 am
by arnaud
Yes you can change parameters in the client using the parameter tab and with your scripts, either pure python or using ROS.

If you want to experiment with the Mellinger controller you most likely want to make your own scripts and to use the high-level-commander since this is the easiest (and currently the only AFAIK) way to feed the Mellinger controller with proper setpoints. For example, the motionCommander example is using the high-level commander internally and can be a good place to start.