CrazySwarm with Loco Positioning Node

All discussions related to the Loco Positioning system
arnaud
Bitcraze
Posts: 1887
Joined: Tue Feb 06, 2007 12:36 pm

Re: CrazySwarm with Loco Positioning Node

Post by arnaud » Wed Apr 04, 2018 10:21 am

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.

john_drone
Beginner
Posts: 3
Joined: Tue May 15, 2018 7:40 am

Re: CrazySwarm with Loco Positioning Node

Post by john_drone » Thu Nov 22, 2018 6:00 am

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?

arnaud
Bitcraze
Posts: 1887
Joined: Tue Feb 06, 2007 12:36 pm

Re: CrazySwarm with Loco Positioning Node

Post by arnaud » 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.

jarlobelledo
Beginner
Posts: 2
Joined: Thu Nov 22, 2018 5:32 am

Re: CrazySwarm with Loco Positioning Node

Post by jarlobelledo » Sun Nov 25, 2018 5:34 am

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?

arnaud
Bitcraze
Posts: 1887
Joined: Tue Feb 06, 2007 12:36 pm

Re: CrazySwarm with Loco Positioning Node

Post by arnaud » 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).

jarlobelledo
Beginner
Posts: 2
Joined: Thu Nov 22, 2018 5:32 am

Re: CrazySwarm with Loco Positioning Node

Post by jarlobelledo » Tue Nov 27, 2018 6:38 am

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?

arnaud
Bitcraze
Posts: 1887
Joined: Tue Feb 06, 2007 12:36 pm

Re: CrazySwarm with Loco Positioning Node

Post by arnaud » Tue Nov 27, 2018 6:50 am

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.

Post Reply