https://github.com/waveshareteam/ugv_base_ros
ESP32 example for the Waveshare UGV robots. Running in the lower computer ROS Driver for Robots.
https://github.com/waveshareteam/ugv_base_ros
Last synced: 11 months ago
JSON representation
ESP32 example for the Waveshare UGV robots. Running in the lower computer ROS Driver for Robots.
- Host: GitHub
- URL: https://github.com/waveshareteam/ugv_base_ros
- Owner: waveshareteam
- License: gpl-3.0
- Created: 2024-03-24T13:18:17.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-20T07:05:17.000Z (over 1 year ago)
- Last Synced: 2025-04-12T18:09:33.157Z (11 months ago)
- Language: C
- Size: 21 MB
- Stars: 19
- Watchers: 3
- Forks: 13
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
 

  
# Waveshare UGV Robots
This is a lower computer example for the [Waveshare](https://www.waveshare.com/) UGV robots with ROS Driver: **UGV Rover**, **UGV Beast**, **RaspRover**, **UGV02**\*.
\*The old version of UGV02 is driven by General Driver.

## Basic Description
The 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 **ROS Driver for Robots**.
The 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.
The 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.
## Features
- Closed-loop Speed Control with PID
- Web App Based on ESP32
- IMU
- OLED Screen
- LED Lights(12V switches) Control
- Control via JSON Commands
- Supports Camera PT
- Supports RoArm-M2
- Control and Communicate via ESP-NOW
## Configure the compilation environment
You 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.
### Install libraries
Copy `SCServo` folder into `C:\Users\[username]\AppData\Local\Arduino15\libraries\`
Install libraries with **`Library Manager`**: ArduinoJson, LittleFS, Adafruit_SSD1306, INA219_WE, ESP32Encoder, PID_v2, SimpleKalmanFilter, Adafruit_ICM20X, Adafruit_ICM20948, Adafruit_Sensor
### Basic Use
You can send JSON command to robot via UART/USB@115200 or Http Request/Web App.
To ensure compatibility with various types of robots. You can configure the robot by entering the following command:
{"T":900,"main":2,"module":2}
In 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`.
# License
ugv_base_ros for the Waveshare UGV Robots: an open source robotics platform for the Robots based on **ROS Driver**.
Copyright (C) 2024 [Waveshare](https://www.waveshare.com/)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .