UGV Beast PI ROS2

From Waveshare Wiki
Jump to: navigation, search
UGV Beast PI ROS2
RaspRover

I2C, UART
TTL Serial Bus Servo Control Interface
{{{name2}}}

{{{name3}}}

{{{name4}}}

{{{name5}}}

{{{name6}}}

Introduction

UGV Beast is an off-road tracked open-source AI robot, features a dual-controller structure. ESP32 slave device 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 device supports Raspberry Pi 4B/5, offering high computational power and advanced features such as specified strategies.

The robot body structure adopts an all-aluminum alloy shell with a thickness of 2mm, which has high structural strength and good durability. It utilizes multiple independent suspension systems, greatly reducing the impact of complex terrain. Equipped with 2 gear 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. The built-in 3S lithium battery UPS power supply module provides strong and long-lasting power, supporting continuous use while charging, meeting the needs of long-term development and use.

The Raspberry Pi 4B/5 is equipped with a USB camera, which allows users to enjoy a smooth visual experience through the live camera with high frame rate and low latency, and can capture different wonderful moments through functions such as taking photos and videos. In addition, various information feedback from the robot, including battery voltage, CPU usage, etc., are displayed in real time through the WEB application, allowing users to monitor the status of the robot in real time.

The robot's vision system is equipped with a 2DOF(degrees of freedom) high-torque flexible pan-tilt and a 160° ultra-wide-angle 5-million-pixel camera, providing users with a wide viewing angle, flexible observation angles, and a variety of AI machine vision functions. The high-brightness LED spotlight next to the pan-tilt ensures clear use even in low-light environments. In addition, through the design of the Picatinny rails, users can easily expand more tactical accessories, further enhancing the functionality of the robot.

To enable users to fully leverage the potential of this robot, we provide online documentation and tutorials, including a JupyterLab web application. Whether you are a beginner or experienced developer in robotics, these resources can help you learn, understand, and create in depth, step by step.


Features

  • High-performance Dual Controller: The main control of the slave device is ESP32, which is responsible for precise motor PID control and multiple sensor readings. The host device Raspberry Pi 4B or 5 provides high-end computing power. The two-layer architecture makes the robot run more efficiently.
  • Open-source Code: The host device 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: Provides a wealth of JupyterLab interactive tutorials, graphic tutorials and video tutorials, from introductory functions to advanced functions, users can learn how to control the robot while watching the tutorials, reducing the learning curve for beginners in robot technology.
  • Wide Viewing Angle: Equipped with a 2-degree-of-freedom high-torque flexible pan-tilt, providing a wide 360° viewing angle horizontally; equipped with a 160° ultra-wide-angle 5-million-pixel camera to capture a wider range of images.
  • Robot Vision: Integrate robot vision functions such as color, object, gesture recognition, face, and motion detection, and can be expanded to more applications.
  • Abundant Interaction: Real-time video streaming, digital zoom, photography, video recording and other functions, and WEB application real-time video function and robot information displayed on the screen to improve user interaction experience.
  • Cross-platform Support: Support cross-platform remote control without installing APP. You can follow tutorials to implement remote control beyond the local network using solutions such as Pgyer, Cpolar, LocalTunnel, and others.
  • Expandability: The structure is equipped with an expansion plate and Picatinny rails to facilitate the expansion of other tactical accessories; in terms of hardware, there are spare LED light interfaces that can be used to expand other peripherals such as water guns. The product can also be expanded with 4G and 5G modules to facilitate users to realize more possibilities.
  • Durable Structure: 2mm thick all-aluminum alloy shell provides excellent structural strength and durability.
  • High-Performance Drive Motors: Equipped with 2 geared motors with encoder to achieve closed-loop speed control, the maximum speed can reach 0.35m/s, providing strong power.
  • Multiple Independent Suspending Systems: There are four independent suspensions on each side, when carrying heavy loads while climbing, the suspension contracts, and the rear wheels provide additional support, resulting in excellent climbing ability.
  • Long Battery Life: Using 3S lithium battery UPS power supply system, it supports continuous use while charging, ensuring long-lasting endurance.


Product Assembly

This assembly tutorial mainly covers two aspects: first, the installation of the ACCE version product, including tutorials for the Raspberry Pi 4B/5, OAK camera, and LiDAR; second, the tutorial for installing the lithium battery.


Product Basic Usage

Precautions

Please be sure to understand the following before use:

  1. This product does not have lithium batteries installed at the factory. Customers need to install three 18650 lithium batteries before they can be used normally. Customers who purchase the ACCE model need to bring their own Raspberry Pi motherboards, and the Raspberry Pi must be installed before normal use. Customers outside China need to purchase three 18650 lithium batteries by themselves, 18650 lithium batteries with a capacity of 2200mA or above and a discharge rate of 4C are recommended. Please refer to Product Assembly for these two installation tutorials.
  2. When connecting the battery for the first time, check if the LED on the battery module lights up. If it lights, the battery polarity is reversed; if not reversed, the LED will not light. Check and ensure the battery is not reversed. Charging is forbidden if the battery is reversed, as it may cause an explosion.
  3. This product is not resistant to strong impacts and is not waterproof.


First Time Use

The TF card shipped with the product is an image with already configured software and ROS2 functions. Just insert the TF card into the Raspberry Pi and use it.

For first time use, you need to use the configured 12V 5A power cable to connect to the power interface of the product. After turning on the power switch, the product will initialize, and the OLED screen will display a series of initialization information. The Raspberry Pi will automatically create a hotspot, and the IP address will be displayed on the OLED screen after the main program of the project runs automatically. After the startup is completed, the OLED screen displays the following meanings:

UGV OLEDdisplay.png

  • The first line E: The IP address of the network port, which can be used to remotely connect to the Raspberry Pi; No Ethernet indicates that the Raspberry Pi is connected without a network cable at this time.
  • The second line W: After establishing a hotspot in AP mode, the default IP will be displayed as 192.168.50.5; in STA mode, connect to the IP address assigned by a known WIFI; the displayed IP address can be used to connect to the Raspberry Pi wirelessly.
  • The third line F/J: Network port number. When the Raspberry Pi main program is running, 5000 is used to access the product main program control page, and 8888 is used to access the JupyterLab page.
  • The fourth line AP indicates that the WIFI is in AP mode at this time, and the time indicates the usage time of the device; the value in dBm indicates the signal strength RSSI of the WIFI in STA mode.

After the Raspberry Pi boots up,

  • If the product is not connected to a known WIFI, it will automatically establish a hotspot, use your mobile phone/computer to connect to the hotspot. The name of the hotspot is AccessPopup and the password is 1234567890.Open the browser after connecting , enter the default IP address of the device in AP mode (the address will be displayed on the W line on the OLED screen), that is, enter 192.168.50.5:5000 in the URL bar to access the WEB control interface of the product's main program.
  • If the product is connected to a known WIFI, you can access the WEB control interface of the product's main program by accessing the Raspberry Pi's IP address: 5000. For example: 192.168.10.156:5000.

Note: The accessed device must be in the same LAN as the Raspberry Pi device to access successfully.

Joystick Usage

  • This controller requires the use of a PC browser together with the Raspberry Pi server. Please follow the steps below:
  • In the PC browser, access the Raspberry Pi IP address:5000, and ensure that the page remains active at all times (do not close, refresh, or allow the browser tab to go to sleep).
  • The wireless receiver of the controller must be connected to the USB port of the PC, not the Raspberry Pi.

Network Configuration

If you want to connect to your own WIFI network, this section explains how to configure the network. Network configuration needs to be completed by entering the JupyterLab page. There are two ways to open the JupyterLab page:

  1. You can click the Jupyterlabbutton.png button in the control interface of the main program to enter the JupyterLab page;
  2. You can enter the JupyterLab page by accessing the robot IP address:8888. The factory default is still AP mode, so enter 192.168.50.5:8888 in the URL bar to open the JupyterLab page.


First time to connect a known WIFI

Generally, the default WIFI mode of the configured image of the product is AP mode. To switch to STA mode and connect to a known WIFI for the first time, follow the below steps:

1. After entering the JupyterLab page, click Terminal at the bottom of the page, enter the following command and press Enter to enter the project folder.

bash

Jupyterlab-1.png


2. You can see that the current location is ~/ugv_rpi, then enter the folder of the WIFI configuration tool, enter the following command and press Enter.

cd AccessPopup/


3. Enter the following command to grant executable permission to the WiFi configuration script in the AccessPopup folder:

sudo chmod +x installconfig.sh


4. Run the WIFI configuration script by entering the following command and press Enter.

sudo ./installconfig.sh


5. After running the script, the following interface is displayed. Here, you need to set up a connection to a known WIFI, so enter 5 and press Enter to set up a new WIFI connection.

Jupyterlab-2.png


6. Then it will jump to the add or edit WIFI network interface. After a while, this page will output the WIFI names near the current device, as shown below. There is a serial number in front of each WIFI. Enter the serial number of the WIFI to connect to and press Enter.

Jupyterlab-3.png


7. Then enter the password for the WiFi you want to connect to, and after pressing Enter, the product will connect to the set WIFI hotspot. After the connection is successful, 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.

Jupyterlab-4.png


9. 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.


Switch WIFI mode

  • Switch STA mode to AP mode

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

sudo accesspopup -a
  • Switch back from AP mode to STA mode

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

sudo accesspopup

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


Delete a known WIFI

  1. Open the Terminal of the JupyterLab page and enter bash to enter the project folder.
  2. Enter the following command to view information about all network connections.
    nmcli connection show
  3. Enter the following command to delete a known WIFI. You need to replace <connection_name> in the following command with the name of the WIFI that needs to be deleted.
    sudo nmcli connection delete <connection_name>

Note: If you delete a known WIFI that the current device is connected to, the product will automatically create a hotspot after deletion. The hotspot will still be AccessPopup by default. The IP address that accesses the JupyterLab page must be refreshed before it can be used again.


Enable SSH service

If you are flashing an image from method 1, you can enable the SSH service according to this part. The SSH service can still be enabled by entering the JupyterLab page. There are two ways to open the JupyterLab page:

  1. You can click the Jupyterlabbutton.png button in the control interface of the main program to enter the JupyterLab page;
  2. You can enter the JupyterLab page by accessing the robot IP address:8888. If you are flashing the image of method 1, the product defaults to AP mode, so enter 192.168.50.5:8888 in the URL bar to open the JupyterLab page.

1. After entering the JupyterLab page, click Terminal at the bottom of the page, enter the following command and press Enter to enter the project folder.

bash

Jupyterlab-1.png

2. Enter the following command in the terminal and use the raspi-config official configuration tool to enable the SSH service.

sudo raspi-config

Sshserveropen-1.png

3. Enter the raspi-config tool, use the keyboard arrow keys to select Interface Options up and down, and press Enter.

Sshserveropen-2.png

4. Select SSH and press Enter.

Sshserveropen-3.png

5. Select Yes to enable the SSH service.

Sshserveropen-4.png

6. When the SSH service id enabled, use the left and right arrow keys to select Finish and then exit. Enter sudo reboot to restart the system.


Product Tutorial Catalog

How to Use Host Device

How to Use Product ROS2

Product Initialization

Product Firmware Update

We provide an ESP32 download tool for the UGV Beast. With this tool, users can quickly update the firmware or restore the factory program.

1. First, connect the robot to your computer using a USB cable. (This step requires opening the robot to access the USB interface in the middle of the driver board).

2. Download the ESP32 download tool for UGV Beast: UGV Beast ESP32 download tool. Unzip it and double-click to run "flash_download_tool_3.9.5.exe". After opening, two windows will pop up, we need to operate the UI interface of the download tool, and the other window will act as a terminal to show the working status of the download tool.

3. In the "DOWNLOAD TOOL MODE" interface, select ChipType as ESP32 and WorkMode as Factory. When using Factory, the binary file will be called using a relative path, so the user does not need to manually input the binary file path. After selecting, click OK.

WAVEROVER下载工具.png

4. In this software interface, keep the "LockSettings" checkbox selected, with the right side indicating that programs can be uploaded to 8 UGV02 units simultaneously. Click "COM", and select the new COM (the new COM here is COM3); BAUD is used to set the download speed, the higher the value, the faster the speed, and it can be up to 921600 for ESP32.

UGV02Factory.png

5. After selection, click "START" to start uploading the program. Once the upload is complete, "IDLE WAIT" will change to "FINISH COMPLETE". After completion, you can disconnect the USB connection between the driver board and the computer, turn on the switch of the robot product, and control the robot after powering on.

UGV02Factory1.png

Flashing the Image

Note: This section is not required for normal operation. It is only needed when updating the system image or restoring the upper computer to the factory system image.

The Raspberry Pi Foundation has developed a graphical TF card writing tool called Raspberry Pi Imager, available for Windows, Mac OS, and Ubuntu.

It automatically downloads and writes images to the TF card. You can also use it to write other system images to the TF card. Click the Raspberry Pi Imager official link to download the latest version and install it.

Required Components

The product accessory kit contains the following two items:

  1. TF card reader
  2. At least 8GB TF card

Image Preparation

Download the image to be flashed. Download link: UGV Beast Image.

Procedure

1. Use the TF card reader to connect the TF card to your computer. Open Raspberry Pi Imager and click "CHOOSE DEVICE" to select the Raspberry Pi device.

RpRrWI-1.png


2. Select the Raspberry Pi model based on your product. If unsure, you can skip selection. In this case, we are using a Raspberry Pi 4B, so we select "Raspberry Pi 4".

RpRrWI-2.png


3. Next, click "Choose OS" to select the operating system image to flash.

RpRrWI-3.png


4. Scroll to the bottom of the OS selection screen and click "Use custom" to select the pre‑configured image you downloaded earlier.

RpRrWI-4.png


5. Then click "Choose Storage" to select the TF card onto which the system will be flashed.

RpRrWI-3.png


6. After all selections are made, click "NEXT". A customisation dialog will appear. Select "Edit Settings" to configure the username and Wi‑Fi.

RpRrWI-6.png


7. In the "GENERAL" tab, set the username and Wi‑Fi as shown below. Both the username and password must be set to `ws`. If changed, the project program may not run correctly after the Raspberry Pi boots.

Ugv.png

8. In the "SERVICES" tab, enable SSH so that you can remotely control your Raspberry Pi via SSH. After completing the settings, click Save. A warning will appear that all data on the TF card will be erased; click "Yes".

RpRrWI-8.png


9. Flashing begins. After completion, Raspberry Pi Imager will automatically eject the TF card. Remove the TF card and insert it into the product's Raspberry Pi. Turn on the main power switch; the Raspberry Pi may restart several times while loading the image. Wait two to three minutes for normal boot.

Resources

3D Diagram

STEP Model

ROS2 Open Source Project

Product Open Source Program


Support



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)