{"id":21056615,"url":"https://github.com/waveshareteam/ugv_jetson","last_synced_at":"2025-07-07T06:36:21.191Z","repository":{"id":239004510,"uuid":"798230224","full_name":"waveshareteam/ugv_jetson","owner":"waveshareteam","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-18T07:02:50.000Z","size":28732,"stargazers_count":8,"open_issues_count":3,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-16T13:11:43.346Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/waveshareteam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-09T11:04:36.000Z","updated_at":"2025-06-11T00:05:13.000Z","dependencies_parsed_at":"2024-05-18T07:46:09.159Z","dependency_job_id":null,"html_url":"https://github.com/waveshareteam/ugv_jetson","commit_stats":null,"previous_names":["effectsmachine/ugv_jetson"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/waveshareteam/ugv_jetson","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waveshareteam%2Fugv_jetson","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waveshareteam%2Fugv_jetson/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waveshareteam%2Fugv_jetson/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waveshareteam%2Fugv_jetson/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waveshareteam","download_url":"https://codeload.github.com/waveshareteam/ugv_jetson/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waveshareteam%2Fugv_jetson/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264028760,"owners_count":23546333,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T16:52:15.711Z","updated_at":"2025-07-07T06:36:21.139Z","avatar_url":"https://github.com/waveshareteam.png","language":"Jupyter Notebook","readme":"![GitHub top language](https://img.shields.io/github/languages/top/waveshareteam/ugv_jetson) ![GitHub language count](https://img.shields.io/github/languages/count/waveshareteam/ugv_jetson)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/waveshareteam/ugv_jetson)\n![GitHub repo size](https://img.shields.io/github/repo-size/waveshareteam/ugv_jetson) ![GitHub](https://img.shields.io/github/license/waveshareteam/ugv_jetson) ![GitHub last commit](https://img.shields.io/github/last-commit/waveshareteam/ugv_jetson)\n\n# Waveshare UGV Robots\nThis is a Jetson Orin Nano \u0026 Jetson Orin NX example for the [Waveshare](https://www.waveshare.com/) UGV robots: **WAVE ROVER**, **UGV Rover**, **UGV Beast**, **RaspRover**, **UGV01**, **UGV02**.  \n\n![](./media/UGV-Rover-details-23.jpg)\n\n## Basic Description\nThe Waveshare UGV robots utilize both an upper computer and a lower computer. This repository contains the program running on the upper computer, which is typically a Jetson Orin Nano or a Jetson Orin NX in this setup.  \n\nThe program running on the lower computer is either named [ugv_base_ros](https://github.com/effectsmachine/ugv_base_ros.git) or [ugv_base_general](https://github.com/effectsmachine/ugv_base_general.git) depending on the type of robot driver being used.  \n\nThe upper computer communicates with the lower computer (the robot's driver based on ESP32) by sending JSON commands via GPIO UART. The host controller, which employs a Jetson Orin Nano or a Jetson Orin NX, handles AI vision and strategy planning, while the sub-controller, utilizing an ESP32, manages motion control and sensor data processing. This setup ensures efficient collaboration and enhanced performance.\n\n## Features\n- Real-time video based on WebRTC\n- Interactive tutorial based on JupyterLab\n- Pan-tilt camera control\n- Robotic arm control\n- Cross-platform web application base on Flask\n- Auto targeting (OpenCV)\n- Object Recognition (OpenCV)\n- Gesture Recognition (MediaPipe)\n- Face detection (OpenCV \u0026 MediaPipe)\n- Motion detection (OpenCV)\n- Line tracking base on vision (OpenCV)\n- Color Recognition (OpenCV)\n- Multi-threaded CV processing\n- Audio interactive\n- Shortcut key control\n- Photo taking\n- Video Recording\n\n## Quick Install\nYou need to install [Jetson Orin Nano Developer Kit](https://www.waveshare.com/jetson-orin-nano-dev-kit.htm) on your robot if you are using **WAVE ROVER**, **UGV01** or **UGV02**.  \n\nThis app is already installed in the **UGV Rover Jetson Orin AI Kit**, **UGV Beast Jetson Orin AI Kit** and **RaspRover Jetson Orin AI Kit**.  \n\nYou can use this tutorial to upgrade your robot's upper computer program.  \n\nYou can use this tutorial to install this program on a pure Ubuntu(22.04) on Jetson.  \n\n\n### Download the repo from github\n\nYou can clone this repository from Waveshare's GitHub to your local machine.\n\n    git clone https://github.com/waveshareteam/ugv_jetson.git\n### Grant execution permission to the installation script\n    cd ugv_jetson/\n    sudo chmod +x setup.sh\n    sudo chmod +x autorun.sh\n### Install app (it'll take a while before finish)\n    sudo unminimize\n    sudo ./setup.sh\n### JupyterLab Setup\n    python3 create_jupyter_service.py\n    sudo mv ugv_jupyter.service /etc/systemd/system/ugv_jupyter.service\n    sudo systemctl enable ugv_jupyter\n    sudo systemctl start ugv_jupyter\n### Volume and Pulseaudio for Multi-user Setup\n    pactl set-sink-volume alsa_output.usb-Solid_State_System_Co._Ltd._USB_PnP_Audio_Device_000000000000-00.analog-stereo 100%\n    sudo cp pulseaudio.service /etc/systemd/system/pulseaudio.service\n    sudo systemctl --system enable --now pulseaudio.service\n    sudo systemctl --system status pulseaudio.service\n### Service for Jtop\n    sudo systemctl enable jtop.service\n### Autorun Setup\n    ./autorun.sh\n### AccessPopup Installation\n    cd AccessPopup\n    sudo chmod +x installconfig.sh\n    sudo ./installconfig.sh\n    *Input 1: Install AccessPopup\n    *Press any key to exit\n    *Input 9: Exit installconfig.sh\n### Reboot Device\n    sudo reboot\n\nAfter powering on the robot, Jetson will automatically establish a hotspot, and the OLED screen will display a series of system initialization messages:  \n\n![](./media/RaspRover-LED-screen.png)\n- The first line `E` displays the IP address of the Ethernet port, which allows remote access to the Raspberry Pi. If it shows No Ethernet, it indicates that the Raspberry Pi is not connected to an Ethernet cable.\n- The second line `W` indicates the robot's wireless mode. In Access Point (AP) mode, the robot automatically sets up a hotspot with the default IP address `192.168.50.5`. In Station (STA) mode, the Raspberry Pi connects to a known WiFi network and displays the IP address for remote access.\n- The third line `F/J` specifies the Ethernet port numbers. Port `5000` provides access to the robot control Web UI, while port `8888` grants access to the JupyterLab interface.\n- The fourth line `STA` indicates that the WiFi is in Station (STA) mode. The time value represents the duration of robot usage. The dBm value indicates the signal strength RSSI in STA mode.  \n\n\nYou can access the robot web app using a mobile phone or PC. Simply open your browser and enter `[IP]:5000` (for example, `192.168.10.50:5000`) in the URL bar to control the robot.  \n\nTo access JupyterLab, use `[IP]:8888` (for example, `192.168.10.50:8888`).  \n\nIf the robot is not connected to a known WiFi network, it will automatically set up a hotspot named \"`AccessPopup`\" with the password `1234567890`. You can then use a mobile phone or PC to connect to this hotspot. Once connected, open your browser and enter `192.168.50.5:5000` in the URL bar to control the robot.  \n\nTo ensure compatibility with various types of robots running on Raspberry Pi, we utilize a config.yaml file to specify the particular robot being used. You can configure the robot by entering the following command:\n\n    s 22\n\nIn this command, the s directive denotes a robot-type setting. The first digit, `2`, signifies that the robot is a `UGV Rover`, with `1` representing `RaspRover` and `3` indicating `UGV Beast`. The second digit, also `2`, specifies the module as `Camera PT`, where `0` denotes `Nothing` and `1` signifies `RoArm-M2`.  \n\n# License\nugv_jetson for the Jetson Orin Nano or Jetson Orin NX: an open source robotics platform for the Jetson Developer Kit.\nCopyright (C) 2024 [Waveshare](https://www.waveshare.com/)\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see \u003chttp://www.gnu.org/licenses/gpl-3.0.txt\u003e.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaveshareteam%2Fugv_jetson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaveshareteam%2Fugv_jetson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaveshareteam%2Fugv_jetson/lists"}