Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/berlingoqc/quintal
https://github.com/berlingoqc/quintal
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/berlingoqc/quintal
- Owner: berlingoqc
- Created: 2023-07-29T03:46:59.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-08-20T02:47:45.000Z (over 1 year ago)
- Last Synced: 2023-08-20T03:28:10.555Z (over 1 year ago)
- Language: TypeScript
- Size: 387 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Q U I N T A L
Yet another application to turn RC Vehicule into internet control , semi-autonomus and sensor filled.
## First Project : Wifi Control RC Car with little latency as possible
* Using a streaming service for now , ustreamer seem to be a good option [ustreamer](https://github.com/pikvm/ustreamer)
* Control the arduino using firmata [FirmataC](https://github.com/grandsmarquis/FirmataC/tree/master)
* websocket to control [websocketpp](https://github.com/zaphoyd/websocketpp) with boost asio
* c++ 20 or c++ 17### First iteration , small python script, ustreamer and vanilla HTML
Finally i wanted the remote control application to work as fast as possible. I deciced to pause my
c++ compilation effort and to write a small python script.Receive gamepad or keyboard input from the browser and control the rover using firmata.
Receive the webcam stream via ustreamer and a html video element.Pretty easy and the result was good ! Here is an exemple of me driving it 500 km. (Via parsec on my brother computer)
### Second iteration , writting my own firmata library with asio serial port
Well it's still to be finish but the hard part for some reason was to understand asio and to make the serial port
reading work with the arduino.Parsing the message was not to hard from the continue byte flow.
Now just need to finish the implementation of all command read and write. I only implemented 2.
After i also need to think about my abstraction with gpio from the pi to utilize them all together blindly.
### Third iteration , integrating with WebRTC , Gstreamer and OpenCV
It took me some time and a lot of help from ChatGPT but I manage to accomplish my goal.
* Reading the webcam
* Intercept raw frame with OpenCV (try to detect faces for a start)
* Stream in h264 with udpsinkAfter I manage to link the part with WebRTC
* Take the udpsink output and send it as a media channel in a WebRTC connection with the client app
* Using the data channel to send data both waysNow that all of this is working in seperate exemple it's time to put all of this together with boost::asio
in my main application. And to integrate with a signaling server.```
cmake .. -DCMAKE_TOOLCHAIN_FILE=/opt/vcpkg/scripts/buildsystems/vcpkg.cmake./docker/crossbuild.sh ./docker/bundle.sh && ./docker/update_prerelease.sh
```