Demo

Start the simulator (optional):

git clone https://github.com/spot-control
cd spot-control
make sim
open http://localhost:8080/vnc.html
# use `tmux kill-session` to stop the system

Start the proxy:

git clone https://github.com/vtomnet/mp-proxy
cd mp-proxy
pip install -r requirements.txt
# acquire (free) ngrok domain and auth token from ngrok.com
# add DOMAIN=your-domain.ngrok-free.app and NGROK_AUTHTOKEN=abcxyz to .env
python proxy.py --to-http localhost:8002
From here, you may use the hosted webapp at mp.vtom.net, or you may self-host. To use the hosted version with a simulator or robot, be sure to check "send to device" and copy your ngrok domain into "device host" in the web UI settings. Otherwise, see below for self-hosting:

Run the gpt-mission-planner server:

git clone -b tom/cli https://github.com/ucmercedrobotics/gpt-mission-planner
cd gpt-mission-planner
git submodule update --init --recursive
test -d schemas/schemas && cp schemas/schemas/* schemas/  # temp hack until the submodule gets updated
pip install -r requirements.txt
# add OPENAI_API_KEY to .env
make serve

Run mpui:

git clone -b tom/demo-1105 https://github.com/vtomnet/mpui
cd mpui
npm install
npm run build
npm run server
# open your ngrok domain (something.ngrok-free.app) in mobile or desktop browser
# check "Send to device" in settings if using with spot-control or a real robot
# Google Maps requires VITE_GOOGLE_MAPS_API_KEY. Google Maps is not the default

Notes:

  1. You will need port 8001 for the proxy; if self-hosting, 8002 and 8003 for the frontend and backend; and 8080 and 12346 if using spot-control.
  2. Be careful not to hit ngrok's monthly usage limit. It should be plenty for a few demos. See "Data Transfer Out" at https://dashboard.ngrok.com/usage.
  3. Example input: "drive the robot 2 meters left."