{"id":21056596,"url":"https://github.com/waveshareteam/ugv_base_general","last_synced_at":"2025-05-15T23:33:22.315Z","repository":{"id":229458380,"uuid":"776780000","full_name":"waveshareteam/ugv_base_general","owner":"waveshareteam","description":"ESP32 example for the Waveshare UGV robots, runing on the lower computer General Driver for Robots.","archived":false,"fork":false,"pushed_at":"2024-07-19T03:30:39.000Z","size":7229,"stargazers_count":3,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-07-19T11:50:59.565Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-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-03-24T13:25:05.000Z","updated_at":"2024-07-19T03:30:42.000Z","dependencies_parsed_at":"2024-05-31T13:36:22.036Z","dependency_job_id":"5cfe8959-554e-451f-b911-4668dd6bd0a0","html_url":"https://github.com/waveshareteam/ugv_base_general","commit_stats":null,"previous_names":["effectsmachine/ugv_base_general"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waveshareteam%2Fugv_base_general","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waveshareteam%2Fugv_base_general/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waveshareteam%2Fugv_base_general/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waveshareteam%2Fugv_base_general/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waveshareteam","download_url":"https://codeload.github.com/waveshareteam/ugv_base_general/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225391820,"owners_count":17467268,"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:13.386Z","updated_at":"2024-11-19T16:52:14.217Z","avatar_url":"https://github.com/waveshareteam.png","language":"C","readme":"![GitHub top language](https://img.shields.io/github/languages/top/effectsmachine/ugv_base_general) ![GitHub language count](https://img.shields.io/github/languages/count/effectsmachine/ugv_base_general)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/effectsmachine/ugv_base_general)\n![GitHub repo size](https://img.shields.io/github/repo-size/effectsmachine/ugv_base_general) ![GitHub](https://img.shields.io/github/license/effectsmachine/ugv_base_general) ![GitHub last commit](https://img.shields.io/github/last-commit/effectsmachine/ugv_base_general)\n\n# Waveshare UGV Robots\nThis is a lower computer example for the [Waveshare](https://www.waveshare.com/) UGV robots with General Driver: **WAVR ROVER**, **UGV01**, **UGV02**\\*.\n\n\\*The old version of UGV02 is driven by General Driver.\n\n![](./README_footage/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 lower computer, which is typically a ESP32 on **General Driver for Robots**.  \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](https://github.com/waveshareteam/ugv_jetson) or a [Raspberry Pi](https://github.com/waveshareteam/ugv_rpi) based on the type of upper computer being used, 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- Closed-loop Speed Control with PID\n- Web App Based on ESP32\n- IMU\n- OLED Screen\n- LED Lights(12V switches) Control\n- Control via JSON Commands\n- Supports Camera PT\n- Supports RoArm-M2\n- Control and Communicate via ESP-NOW\n\n## Configure the compilation environment\nYou need to install **[Arduino IDE](https://www.arduino.cc/en/software)** and **[ESP32 Board](https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/)** first.\n\n### Install libraries\nCopy `SCServo` folder into `C:\\Users\\[username]\\AppData\\Local\\Arduino15\\libraries\\`\n\nInstall libraries with **`Library Manager`**: ArduinoJson, LittleFS, Adafruit_SSD1306, INA219_WE, ESP32Encoder, PID_v2, SimpleKalmanFilter, Adafruit_ICM20X, Adafruit_ICM20948, Adafruit_Sensor\n\n### Basic Use\nYou can send JSON command to robot via UART/USB@115200 or Http Request/Web App.\n\nTo ensure compatibility with various types of robots. You can configure the robot by entering the following command:\n\n    {\"T\":900,\"main\":2,\"module\":2}\n\nIn this command, the s directive denotes a robot-type setting. The first digit, `2`, signifies that the main type of robot is a `UGV Rover`, with `1` representing `RaspRover` and `3` indicating `UGV Beast`. The second digit, `2`, specifies the module as `Camera PT`, where `0` denotes `Nothing` and `1` signifies `RoArm-M2`.\n\n# License\nugv_base_general for the Waveshare UGV Robots: an open source robotics platform for the Robots based on **General Driver**.\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_base_general","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaveshareteam%2Fugv_base_general","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaveshareteam%2Fugv_base_general/lists"}