Quad copters are rather the most simplest of all robots for degree of freedoms and mobility they are able to a achieve given a rather simple control equations. Here we have tried to modify a simple mini drone platform crafted for FPV racing, to work with wireless commands sent from a ground station at minimum amount lag.
Our main goal is to be able to control these drones with ROS and be able to use this firmware to control them in formations as these are very capable robots limited by their on board computation and rather not on their actuations and sensings. So we would be having a Development on these quadcopters with ROS cum MavLink to be able to deploy algorithms developed with ROS middleware.
For the current approach we are using F3 Evo for the main flight controller with CleanFlight's latest firmware (v2.5.0 at the time of documentation). We are using Raspberry Pi Pico mainly because of the two physical cores it offers which we have utilized to the fullest by splitting ondemanding tasks on each of them. We have also used a 'ESP-01` for interfacing through LAN on WiFi.
Below are a few snap shots of the drone
Below is a demo of the drone being controlled using a remote teleop from our ground station Drive Link
Below I have explained about the Modifications only
This explains the connections between the FC and the Raspberrypi
and additionally connect GPIO11 of the PICO to UART2 RX of the FC
This has interrupts on the ESP constantly looking for input from the server and also parses them to update the PPM table. this core is also responsible for managing the Credentials of your Drone.
This has its PPM cycles run by which this core is isolated from every other process as delay in any process return causes very noisy values in the output. We have also used this core to run the indicator LED in a sequence predefined to a given code. This is very neccesarry to run in this core as it is a good indicator if the PPM signal is perfectly being generated.
Note: Donot turn on minicom or any such serial monitor as this slows done Cores and depreciating the performance of the PPM generator
-
- Use
FlashWrite.uf2file in thebin/folder and input your Wifi credentials and Server Ip with port number all of them input with a enter or new line folloiwing those. This will write your wifi information, ip address and port number in the memory.This should be done through minicom or any similar serial interface.
- Use
-
- Use
wifi_setup.uf2file in thebin/folder. This would setup the ESP on the given Wifi network with the given credentials. This has to be done only once.
- Use
-
- Use the
PicoESP.uf2file in thebin/folder and connect the pin numberGPIO-11to the UART 2 RX of the F3 flight controller. you may choose to power the pico board using a external regulator or the onboard power distribution. There you go you have everything running.(If you ip address or port number is changed, use theFlashWrite.uf2file again and update the new credentials. No need to usewifi_setup.uf2again unless wifi network is not changed)
- Use the
For running this launch the server.py or the joystick based server, now connect the pico to the drone and this should launch a controller like layout on your terminal now Press 'F' to pay respects and arm the drone. Use the joystick wisely.
|
Somnath Sendhil Kumar |
Arjun Krishna |
Utkrisht Singh |
Varad Vinayak Pandey |
Please feel free to contact us for any quries and requrests. Thank you.





