Turtle Control Software
A client-server application based on WebSocket technology to control Turtle Rover remotely
How it works (simplified)
Web Application --WebSockets--> Server --Serial--> Firmware
Requirements
- uv4l to send video stream
- Working UART
How to install
- Download latest package
sudo apt install ./turtlerover-tcs_*_all.deb
How to run
- Open in browser http://10.0.0.1/ (for more detailed network configuration look at Turtle OS repo)
How to setup Development Environment
To replicate our development workflow you will need a Linux-based distro or MacOS
Prerequisites: Install Yarn package manager on Your local machine.
- Connect Raspberry Pi with Your machine
- Create folder e.g.
pi
in home directory - Run
ssh pi@10.0.0.1
to enter TurtleOS shell - Run
sudo chmod 777 /opt/turtlerover/ && sudo rm -R /opt/turtlerover/tcs
to delete productional TCS - On Your local machine type:
sshfs pi@10.0.0.1:/ pi
. This will mount whole TurtleOS filesystem inpi
directory - Run
cd pi/opt/turtlerover
and clone this repo - Now You can open TCS project in Your favorite editor
How to build
- Run
yarn install
- Run
yarn build
to build productional files. There is alsoyarn watch
command, it will watch for any changes in files and rebuild project - Install Python dependencies
sudo pip3 install -r requirements.txt
- Run
utils/make_deb.sh
How streaming works
Streaming is done with UV4L drivers and WebRTC streaming server. UV4L comes preinstalled with TurtleOS.
Stream troubleshooting
There are still some problems with streaming and we are working to fix them. If stream doesn't work on your device, you may try to experiment with /etc/uv4l/uv4l-uvc.conf
, especially with webrtc-enable-hw-codec
option and force_hw_vcodec
in core/stream.js
. If you find any solution to your problem with streaming - please let us know or create a pull request.