Gettting start with Crazyflie,ROS and LPS

Post here to get support
Post Reply
almi
Beginner
Posts: 5
Joined: Mon Nov 11, 2019 4:49 pm

Gettting start with Crazyflie,ROS and LPS

Post by almi »

Hello,

I'm new to bitcraze and crazyflie and have to deal the crazyflie at a project for the university.
At the end the drone should be able to fly to a given position.
For localisation I use the loco positioning system.
First I installed ROS at Ubuntu 16.04 LTS.
Then I cloned the crazyflie_ros package and the lps_ros package in the src folder of my workspace.
I also tried commands like " rosrun crazyflie_tools scan" to check wether the installation was successfully, it was.

My next step is to link the drone and the anchors of the lps in ROS and fly to a given point.
I tried diffrent examples like "dwm_loc_ekf_hover.launch" but nothing happens.

Is there a basic example in the demo files that I can use to start?
Do I need the lps_ros package, because i read that it is not neccessary?

Thanks for help!
arnaud
Bitcraze
Posts: 2538
Joined: Tue Feb 06, 2007 12:36 pm

Re: Gettting start with Crazyflie,ROS and LPS

Post by arnaud »

Hi,
No, the LPS ROS package should not be necessary anymore: it contained code to calculate the Crazyflie position from LPS measurements but this is now done in the Crazyflie itself.

The fist things to do is to setup the LPS system and get it to work using the Crazyflie client following this getting started: https://www.bitcraze.io/getting-started ... ng-system/

Once the system is setup and the Crazyflie can estimate its position, ros_crazyflie example like "position.launch" should work: https://github.com/whoenig/crazyflie_ro ... ion.launch
almi
Beginner
Posts: 5
Joined: Mon Nov 11, 2019 4:49 pm

Re: Gettting start with Crazyflie,ROS and LPS

Post by almi »

Thank you!
After a view crashes it works!

Another question
Which example should i launch when i want to see the drone and the anchors in the ros GUI?
arnaud
Bitcraze
Posts: 2538
Joined: Tue Feb 06, 2007 12:36 pm

Re: Gettting start with Crazyflie,ROS and LPS

Post by arnaud »

The anchor position are available from the Crazyflie using the 'memory subsystem'. Unfortunately, as far as I know, there is no implementation of that in ROS.

The easiest would be to fetch the positions from the system as a yaml file using the Crazyflie client and then to write a ROS node to displays the anchors in RVIZ.

Getting it automatically from the Crazyflie would require quite some modification to the Crazyflie ROS driver. If you feel up to it I can point you to the firmware and python lib implementation for reference.
almi
Beginner
Posts: 5
Joined: Mon Nov 11, 2019 4:49 pm

Re: Gettting start with Crazyflie,ROS and LPS

Post by almi »

Yes, it would be kindly great if you can point to the implementation!
Thank you very much!
arnaud
Bitcraze
Posts: 2538
Joined: Tue Feb 06, 2007 12:36 pm

Re: Gettting start with Crazyflie,ROS and LPS

Post by arnaud »

The python code that decodes the LPS memory is there: https://github.com/bitcraze/crazyflie-l ... em.py#L449. This file is responsible for getting a list of all the memories in the Crazyflie and decoding them with the right decoder.

In the Crazyflie, when reading the LLP memory, this function is called: https://github.com/bitcraze/crazyflie-f ... cf2.c#L452.

Unfortunatly we do not have documented "memory mapping" for the different memories which would make them much easier to handle. On the ROS side, memories are handle to upload trajectories by Crazyswarm so there should already be some code in the Crazyflie CPP lib to access the memory subsystem.
Post Reply