Skip to content

A telepresence system for controlling robots remotely.

Notifications You must be signed in to change notification settings

mattanimation/Telepresent

Repository files navigation

Telepresent

present WebRTC based video and controls for robots or whatever

This is more or less an experiment to see if I can create a more simple path to allow people to control their own robots over a secure and p2p connection (webrtc). It leverages the audio, video and data channels, and allows for abstraction of the controls by sending a common gamepad state to then be interpreted however to the client.

Note: Despite webrtc being a thing for a while now there are still some inconsistencies in the implementations that are out there. Chrome and Firefox have different encoders that are compatible, and the backend or other peers need to have matching encoding for both audio and video

Also, not all encodings are the same. If you have 2 peers that have VP8 and VP9, there are slight variations that make them unable to talk

the two major tools used for the non-broweser implementations that are in this project are:

  • AIORTC (python)
  • PION (golang)

TelepresentInterface

Tested Operating Systems

  • Linux (All parts :) )
  • OSX (Frontend :| )
  • Windows ( >:( stop it )

Setup

  • Spin up a Digital Ocean Droplet with the COTURN docker instance running.
  • Spin up a Digital Ocean Droplet and run the docker-compose.yaml file on there.
  • Run one of the clients on a machine that has a webcam. (make sure and update the config.json file to include the coturn as ICE server and signal server URI)
  • Connect to the frontend (wherever it is hosted)
  • enter a name and click Join

Troubleshooting

if can't connect with websockets that aren't ssl, then open firefox about:config and change websockets to allowInsecureFromHTTPS

video issues:

  • sudo usermod -a -G video {username}
  • ls -l /dev/video*
  • cat /sys/class/video4linux/video6/name
  • v4l2-ctrl --list-devices

audio issues;

  • sudo usermod -a -G video {username}
  • sudo fuser -v /dev/snd*
  • sudo modprobe snd-hda-intel
  • sudo modprobe snd_usb_audio
  • arecord -l
  • pacmd list-sources

about:webrtc in firefox to see details


RESOURCES

Custom but opensource

public stun servers:

source

Mods

try and use with Quic!

Handy References

troubleshooting

About

A telepresence system for controlling robots remotely.

Resources

Stars

Watchers

Forks

Packages

No packages published