UGV Beast

From Waveshare Wiki
Jump to: navigation, search
UGV Beast
UGV Beast.jpg

TTL Serial Bus Servo Interface





UGV Beast, an off-road tracked open-source AI robot, features a dual-controller structure. The ESP32 slave computer controls the motor PID, IMU sensors, OLED screen, servo, LED ON/OFF, and so on, which greatly reduces the IO resources for the host computer and provides high-performance communication interfaces. Also, the host controller supports Raspberry Pi 4B/5, offering high computational power and advanced features such as specified strategies.
It is high-strength and more durable as the robot's body is made of a 2mm thick aluminum alloy casing. In addition, The robot's body structure adopts a 2mm thick full aluminum alloy shell, providing high structural strength and durability. It utilizes multiple independent suspension systems, greatly reducing the impact of complex terrain. Equipped with 2 motors with encoders, it achieves closed-loop speed control, effectively preventing vibrations, and delivering excellent motion performance, with a maximum speed of up to 0.35m/s. With the built-in 3S lithium battery UPS power module, it offers robust and long-lasting power, supporting continuous use while charging to meet long-term development and usage requirements.
The Raspberry Pi 4B/5 paired with a USB camera provides users with a smooth visual experience through real-time footage with high frame rates and low latency. Users can enjoy capturing different wonderful moments through functions such as taking photos and recording videos. Additionally, various feedback information from the robot, including battery voltage and CPU usage, is displayed in real-time through a web application, allowing users to monitor the robot's status in real-time.
The robot's visual system is equipped with a 2DOF high-torque flexible pan-tilt and a 160° ultra-wide-angle 5-megapixel camera, providing users with a wide field of view, flexible viewing angles, and various AI machine vision functions. The high-brightness LED spotlight next to the pan-tilt ensures clear visibility even in low-light environments. Additionally, the design with Picatinny rails allows users to easily expand more tactical accessories, further enhancing the robot's functionality.
To enable users to fully leverage the potential of this robot, we provide online documentation and tutorials, including a JupyterLab web application. Whether you're a beginner in robotics technology or an experienced developer, you can delve into learning, understanding, and creating step by step through these resources.


  • High-performance Dual Controller: the slave controller is ESP32, controlling motor PID and multiple sensors; the host controller support Raspberry Pi 4B/5, offering high computational power and high performance.
  • Open-source Code: The host computer is based on the latest version of the Raspberry Pi system (Debain Bookworm) development, WEB applications based on Flask, Python language, the software platform is all open source, easy for users to learn and secondary development.
  • Rich Tutorials: Offers rich JupyterLab, graphic and video tutorials covering various functionalities to help users quickly get started and use the robot, thereby accelerating the realization of innovative applications.
  • Wide Viewing Angle: The base, with 360° rotation, combined with flexible joint movements, creates a workspace with a diameter of up to 1 meter, enabling versatile movement in all directions.
  • Robot Vision: Integrated with machine vision functions such as color, object and gesture recognition, face and motion detection, it can be extended for more applications.
  • Abundant Interaction: Real-time video streaming, digital zoom, photo, video and other functions, and WEB application of real-time video functions and robot information displayed on the screen to improve the user interaction experience.
  • Cross-platform Support: Supports cross-platform remote control without the need to install an app. You can follow tutorials to implement remote control beyond the local network using solutions such as Pgyer, Cpolar, LocalTunnel, and others.
  • Expandability: features an expansion plate and Picatinny rails, facilitating the attachment of additional tactical accessories. On the hardware side, there are spare interfaces available for LED lights, which can be used for expanding peripherals such as water guns. Additionally, the product can be expanded with 4G or 5G modules, enabling users to explore more possibilities.
  • Durable Structure: The 2mm thick aluminum alloy case provides outstanding structural strength and durability.
  • High-Performance Drive Motors: Equipped with four motors with encoders, when carrying heavy loads while climbing, the suspension contracts, and the rear wheels provide additional support, resulting in excellent climbing ability.
  • Multiple Independent Suspending Systems: Featuring a four-wheel drive system paired with soft, non-slip rubber tires, ensuring excellent traction and stability on various terrains.
  • Long Battery Life: Utilizing a 3S lithium battery UPS power system, it supports continuous use while charging, ensuring long-lasting endurance.

User Guide


Please read the following content before using:

  1. 3x 18650 lithium batteries are required and need to be purchased separately to ensure normal operation of the 3S UPS module. And a Raspberry Pi is required and needs to be installed independently if you are using Acce version.
  2. The onboard LED warning indicators of the 3S UPS module will light on if the related battery is reversely connected. Do not charge the module when the batteries are reversed, otherwise, it may lead to explosion.
  3. This product can not suffer severe impact and is not waterproof.
  4. Do not manually rotate the wheels. For high-gear reduction motors, manually rotating the wheels may cause damage to the gearbox.

First Time Use

Comes with an SD card with the pre-configured image which you can directly insert into the Raspberry Pi.
After powering on the robot, the Raspberry Pi will automatically create a hotspot, and the LED screen will display a series of system initialization messages, and the ip address will be displayed on the OLED screen after the main program of the project runs automatically, and the meaning of the content displayed on the OLED screen after the power on is completed is as follows:

  • The first line E: the IP address of the Ethernet port for remotely accessing the Raspberry Pi. "No Ethernet" means that the Raspberry Pi has no Ethernet cable connection.
  • The second line W: In AP mode, the robot will automatically establish a hotspot and display the default IP: In STA mode, the Raspberry Pi will connect to a known WiFi network and display the IP address for remote access.
  • The third line F/J: Ethernet port number, "5000" is for accessing the robot control Web UI, and "8888" is for accessing the JupyterLab interface.
  • The fourth line AP: means the WIFI is in AP mode, and the time means the usage period of the robot, the value in dBm represents the signal strength RSSI in STA mode.

You can use a mobile phone or PC to access this hotspot, the name of the hotspot is AccessPopup, and the password of the hotspot is 1234567890. After connecting, open the browser, and enter in the URL bar to access and control the robot.
Note: If the robot doesn't automatically establish a hotspot after powering on, please refer to #Images_Flashing and re-flashing the image.

Network Configuration

The network needs to be configured in the JupyterLab interface, and there are two methods to open JupyterLab interface:

  1. You can click on Rasprover LAB.png on the Web application UI to enter the JupyterLab interface.
  2. You can access the IP address of the robot IP address: 8888 to enter the JupyterLab interface. If the robot is under the AP mode, you need to input "" to enter JupyterLab interface.

First Time to connect a known WiFi

The default WiFi mode of the robot is AP mode, you can refer to the following steps to switch to STA mode and connect to known WiFi:
1. After accessing the JupyterLab interface, click the "Terminal" at the bottom of the page, and enter the following command to enter the project folder.


RaspRover WiFi.png
2. You can see that the current location is ~/ugv_rpi, then go to the WIFI Configuration Tool folder and enter the following command and then enter.

cd AccessPopup/

3. Enter the following command to grant executable permission for the WiFi configuration script:

sudo chmod +x

4. Run the WiFi configuration script by the following command:

sudo ./

5. After running the script, you will see the following interface. Here, you need to enter "5" and press Enter to set up a new WiFi Network connection.
6. Then it will jump to Add or Edit WIFI Network interface, wait for a while, this page will output the WIFI names near the current device, as shown below, there is a serial number before each WIFI, enter the serial number of the WIFI you want to connect and then enter..
UGVRover WiFi3.png
7. Next, enter the WIFI password to be connected and enter, the product will connect to the set WIFI hotspot. After successful connection, you can see the IP address change of the W line on the OLED screen of the product.
8. The JupyterLab page has to be accessed again with the IP address of the W line on the current OLED screen because the IP address has changed. The product is in STA mode after a successful connection and enters the JupyterLab page with the same screen as before, as shown below, press any key to continue.
UGVRover WiFi4.png
9. And then you can press "9" and press Enter to exit the WiFi configuration script.
After connecting to a known WIFI successfully, if the product runs out of the range of the known WIFI when it is powered on thereafter, the product will automatically establish a hotspot, and the hotspot will still be AccessPopup by default.

WIFI Mode Switching

  • Switch STA mode to AP mode:

Switch to AP mode to establish a hotspot when connected to a known WIFI, open Terminal on the JupyterLab page, enter bash to go to the project folder, and then enter the following command to establish a hotspot.

sudo accesspopup -a
  • To switch back from AP mode to STA mode:

To have the device switch from AP mode to STA mode after a known WIFI configuration has been performed, enter the following command to reconnect to a known WIFI.

sudo accesspopup

Note: As long as the WIFI mode is switched, the control interface of the main product program and the IP address of the JupyterLab page have to be refreshed accordingly to be accessible.

Delete Known WIFI

1. Open a "Terminal" on the JupyterLab interface, enter bash to enter the project folder: 2. Then, use the following command to check all network connections:

nmcli connection show

3. Use the following command to delete a known WiFi connection: replace <connection_name> with the name of the WiFi network you want to delete:

sudo nmcli connection delete <connection_name>

Note: If you delete the currently connected WiFi network, the robot will automatically switch to AP mode and create a hotspot. In this case, you can access its hotspot name AccessPopup for control or configuration again.

Product Initialization

Images Flashing

Note: This step is only necessary when there is a new version system image and you want to update to your Pi, or when you need to restore the Raspberry Pi's system image to factory settings.
The official Raspberry Pi Imager tool is required, which is compatible with operating systems such as Windows, Mac OS, and Ubuntu.
Click on the Raspberry Pi Imager official website link to download the latest version of the Raspberry Pi Imager and install it.
Device Preparation

  1. SD card reader
  2. SD card (at least 8GB)

Image Preparation

Operating Steps

  • First, use the SD card reader to connect the SD card to the PC, open Raspberry Pi Imager, click on "CHOOSE DEVICE", and select the Raspberry Pi device.

Pan-Tilt Camera WRITEIMAGE01.png

  • Select the corresponding Raspberry Pi. The device we used here was Raspberry Pi 4B, so we selected Raspberry Pi 4.

Pan-Tilt Camera WRITEIMAGE02.png

  • Then, click "CHOOSE OS" to select the operating system to be burned.

Pan-Tilt Camera WRITEIMAGE03.png

  • At the system selection interface, scroll to the bottom and click on "Use custom" to select the pre-configured image you downloaded earlier.

RadpRover WRITEIMAGE04.png

  • Then, click on "CHOOSE STORAGE" to select the SD card to be burned.

Pan-Tilt Camera WRITEIMAGE05.png

  • Once all the above options are selected, click "NEXT". A custom settings dialog box will pop up, select "EDIT SETTINGS" to configure the username and WiFi settings.

Pan-Tilt Camera WRITEIMAGE07.png

  • Set the username and WiFi in the "GENERAL" section as shown in the picture below. Both the username and password need to be set as "ws". Otherwise, it will cause the project program of the robot to not run properly after the Raspberry Pi boots up. The WiFi configuration needs to be changed to your own hotspot name and hotspot password, and the WiFi country selection should be based on your own country.

Rasp Pan-Tilt Camera 08.png

  • Next, enable SSH service in "SERVICES", then you can use SSH connection to control your Raspberry Pi system remotely. After setting up, click save, it will pop up that the data on the SD card will be deleted, select "Yes".

Pan-Tilt Camera WRITEIMAGE09.png
Pan-Tilt Camera WRITEIMAGE010.png
Start to burn the image, and wait for a while to finish burning, the Raspberry Pi Imager will automatically pop up the SD card, remove the SD card, and insert it into the Raspberry Pi. Turn on the main power switch and power on the Raspberry Pi. The Raspberry Pi will reboot a few times to load the image from the SD card, wait two to three minutes and it will boot up normally.


3D Drawing

STEP Model




Technical Support

If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)