-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tutorial #2
Comments
I just wrote the beginning of the first draft : https://github.com/dridri/bcflight/wiki/Building |
Amazing work!! Would love to get this drone setup integrated with my planned "Control a Drone Over the Internet" concept for a web application (eventually on cloudchop.net). Are there perhaps any updated tutorials or list of dependencies/requirements for building? Would also be great if there were a couple brief explanations of the overall information flows, for example, I was not sure about how the control signals are sent, guessing the LoRa Radio? Do you think it's possible to receive a buffer of frames on a desktop and forward them to a remote browser, and also receive flight commands from that same browser over a bidirectional socket (e.g. with Tornado) or would the closed-loop latencies be too excrutiating? Was also wondering what drone build you used or would recommend? |
Hello, thanks for your interest in this project ! As you could see on the latest commits, I'm getting my hands on this project after a very long break and now working to make it more reliable. There's indeed a lot of work on documentation needed, this should grow in the next weeks. The current readme is unclear about radio, you can actually use any kind of link you want : it's currently possible to use some FSK/LoRa modules, UDP/IP over regular wifi, and raw wifi using compatible dongles (it sends raw packets without need to associate with ground station). It's also possible to handle other radio communication systems by inheriting the Link class and overloading the few virtual functions it exposes. The video feed can be sent back via legacy analog VTX with ~50ms glass-to-glass latency, but also via raw-wifi / regular-wifi with an extra cost of ~30ms and ~50ms latency respectively. When I started this project I only used the wifi/raw-wifi to send and receive both control signals and video feedback, the code is dusty and needs a massive rewrite but what you are asking for is totally possible with 200~250ms total latency which should be just Ok if you intend to fly it smoothly. My current setup uses the carrier board described in the Hardware section with some 20$ ESCs and motors, a TrampHV VTX directly connected to Raspberry Pi's composite video output and the newest Raspberry Pi Camera Module 3, nothing more. TL;DR : what you are asking for is possible but not in a reliable way for the moment as the code is old and faulty, but I hope to progress quickly during the next weeks |
Thanks so much for the in depth reply, and happy Sunday! no worries at all about the documentation, I can see you've already put in a ton of work, and when a project is still in flux it can just be too time-consuming to constantly update documentation lol Luckily I was able to get the For some reason, the below commands from the files HERE were not able to find that package even though I eventually explicitly added the
so I had to replace with the below to get it working
Dependency installs:
After these installations, your Next Steps: Thanks a bunch, will let you know how it all goes! |
woow that's a nice work, would you mind if I add these steps into my readme/wiki ? That's the kind of thing I made so long ago that I forget which packages need to be installed 😅 About openh264 and mp4v2, I'm thinking about switching to ffmpeg (avformat/avcodec combo), this would reduce these external dependencies. libshine should have been available as an apt repo, but it will be dropped too when switching to ffmpeg. Erf, didn't see that the BMP180/280 were obsolete, I will take a look at which replacement has the longest lifespan. Did order my board on JLCPCB, but close enough. I'll put the BoM somewhere as some parts could be tricky, like the camera connector that is a top-contact one (798-FH12A-22S0.5SH55). The RFM95W uses a totally different communication protocol, and does not have enough bitrate to handle a video live stream. So you probably won't need any but instead use a WiFi USB dongle that supports monitor/promiscuous mode. Since you need the video feedback directly on your PC you won't need the composite output, but for informational purposes it's on pin 111 of the Compute Module 4 and is exposed on the jack plug on other models (image) (and via "TV" test-pad on PiZero, right under HDMI jack). To sum up, this is what's missing to get your project done :
I'll start on the libcamera/v4l2 combo, then manual control from PC, and finally raw-wifi Speaking of OpenHD, if you need a working solution quick you probably have more chances with them aha. |
Yeah for sure! that would be great to see it added to the Readme.md/Wiki, feel free to let me know if I should Pull Request it (then you could edit), whatever's easier Would love to see Thanks for pointing out the RPi camera connector, was actually searching eBay for something for that haha 😅, yes I was actually about to ask about all the essential connectors earlier, I think I may try to prototype a bit with the Regular RPi4B if I need to access more peripherals (USB/etc), luckily I do have one of those laying around the house I'll definitely give the regular TCP/UDP route a try first, and will keep those other adapters in mind for the future. Thanks for all the tips! Would love to start contributing if I can, I do have an xbox controller, and can definitely give that a try! I was also thinking of trying to map some keyboard input to flight control, such as how a helicopter is flown in Call of Duty, but that might be a bad idea for reasons I can't think of (Edit: This could also map the mouse cursor changes onto some combination of Yaw/Pitch with some sort of transformation matrix, but that might be too complex) |
Commit 25299a8 brings back video live stream feature from drone to PC controller app. I'll add a description into the wiki, but in the meantime if you're curious you can take a look at the config.lua file here and there. With 8mbps bitrate there seem to be less than 60ms glass-to-glass latency over ethernet, libcamera+v4l2 is surprisingly good compared to old closed-source drivers and OpenMAX (was 120+ over wifi at only 2mbps) |
Hi and a big hello from france.
Great job you're done.
Have you got a tutorial or a link for schemas and installations please?
Thank you.
The text was updated successfully, but these errors were encountered: