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 includes two parts. The first is a tutorial on installing Raspberry Pi 4B/5 for ACCE model products, and the second is a tutorial for installing lithium batteries.
[Assembly tutorial for ugv rover & ugv beast]

Product Basic Usage

Precautions

Please read 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, pay attention to whether the LED light is on on the battery module. If the LED light is on, it means that the positive and negative electrodes of the battery are connected inversely. If the battery is not connected inversely, the LED light will not be on. Do not charge the battery when it is reversed, otherwise it may cause an explosion.
  3. This product can not suffer severe impact 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 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.

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 be connected and press Enter.

Jupyterlab-3.png


7. Then enter the WIFI password to be connected, 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 burning 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 burning 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.


How to Use Product ROS2

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)