ESP32 based omnidirectional robots w/ camera | makermoekoe

maker.moekoe
2 May 202313:41

TLDRThe video presents the design and construction of an omnidirectional robot equipped with a camera, utilizing omnidirectional wheels that allow movement in any direction without the need to turn. The wheels, available in plastic and rubber with ball bearings, are mounted on a printed circuit board (PCB) with motor drivers, an ESP32-S2 microcontroller, and a 3D antenna for control. The robot also features sensors, battery management, and a USB port for charging and firmware updates. A test simulation in Python illustrates the robot's movement based on wheel velocities. The video details the assembly process, including a self-designed 3D printed camera mount and motor attachments. The robot is controlled via a basic web server that streams the camera feed and allows for adjustments of LED brightness and rotational speed. It also supports remote control through ESPNOW using a Picoclick with an inertial measurement unit. Despite some initial design flaws, the video concludes with an update on the three and four-wheeled robot designs, promising more to come in the next installment.

Takeaways

  • 🛠️ Omnidirectional wheels allow movement in any direction due to their small roller surface contact points.
  • 💰 There are different price points for these wheels, with more expensive ones featuring rubber rollers and ball bearings.
  • 🤖 Omnidirectional robots can drive in any direction without needing to turn, unlike standard robots.
  • 📐 The physics behind omnidirectional movement is simple and can be simulated with a bit of math and programming.
  • 💻 A test simulation in Python was created to visualize how wheel velocities change with robot speed and orientation.
  • 🔩 The robot's base is a printed circuit board designed to hold all electronics, motors, and hardware.
  • 📡 The ESP32-S2 is used for controlling the motor drivers and features a 3D antenna for connectivity.
  • 📦 A camera can be connected to the robot using the same connector as on ESP32Cam boards.
  • 🔍 The software for the robot is basic, offering a web server to stream the camera feed and control the robot's LEDs and speed.
  • 🕹️ A hidden joystick on the web interface allows for manual control of the robot's driving direction and speed.
  • 📶 The video stream's lag is due to an unoptimized WiFi antenna and the ESP32-S2's limited PSRAM.
  • 📡 The robot can be controlled remotely via ESPNOW using a Picoclick equipped with an IMU for movement detection.

Q & A

  • What are omnidirectional wheels and how do they differ from standard wheels?

    -Omnidirectional wheels are designed to move in any direction, unlike standard wheels which primarily move in a single plane. They feature small rollers on their surface contact points, allowing them to roll not only in a forward or backward direction but also sideways.

  • What are the two types of omnidirectional wheels mentioned in the transcript and how do they differ in terms of construction and cost?

    -The two types of omnidirectional wheels are the cheaper plastic ones without ball bearings and the more expensive ones with rubber rollers mounted with ball bearings. The plastic ones are less costly, while the rubber ones with ball bearings are more expensive, with each unit costing around 16 dollars.

  • How do omnidirectional robots differ from standard robots in terms of movement?

    -Omnidirectional robots do not need to turn to move in a different direction like standard robots do. They can move in any direction thanks to the rollers on their wheels, which provide greater flexibility and maneuverability.

  • What is the basis for the simulation created in Python to visualize the movement of an omnidirectional robot?

    -The simulation uses a bit of math and possibly an AI like ChatGPT to demonstrate how the wheel velocities of a three-wheeled omnidirectional robot change according to its speed and orientation.

  • What components are included on the printed circuit board (PCB) for the omnidirectional robot?

    -The PCB includes three motor drivers for controlling the motors' speeds, an ESP32-S2 with a 3D antenna and PWM driver for motor control, sensors and battery management chips, a USB port for charging and MCU flashing, and a connector for a camera.

  • What is the process for ordering the PCB from PCBWay, as mentioned in the transcript?

    -The process involves uploading the board files to PCBWay, which automatically fills in the necessary information. Users can manually set specifications such as board thickness and solder mask color. Stencils can be added during the order process, and PCBWay offers additional services like part printing, milling, and assembly.

  • What mistakes were made during the design of the four-wheeled omnidirectional robot?

    -The mistakes included switching the footprints of the front white LEDs and the camera connector, and using an IO expander chip that could not handle PWM, resulting in the motors only being able to operate at full speed or not at all.

  • How were the issues from the four-wheeled robot design corrected in the three-wheeled robot?

    -The three-wheeled robot corrected the footprints, switched to another PWM driver capable of handling PWM signals, and used a better WiFi antenna.

  • How is the camera mounted on the omnidirectional robot?

    -The camera is mounted using a self-designed 3D printed part and two tiny screws.

  • What is the current state of the software for the omnidirectional robot?

    -The software is in a basic state, with the ESP creating a web server that shows the camera's video stream and provides sliders for adjusting the brightness of the front LEDs and the robot's rotational speed. There is also a hidden joystick for controlling the driving direction and speed.

  • What are the current limitations of the video stream on the robot's web server?

    -The video stream is a bit laggy, mainly due to the WiFi antenna not being impedance matched and the ESP32-S2 having only 2 megabyte of PSRAM, as an external RAM chip was not used.

  • How can the omnidirectional robot be controlled remotely?

    -The robot can be driven via another ESP-based device over ESPNOW using the Picoclick equipped with a six degrees of freedom inertial measurement unit. The robot can be controlled in three different modes, selected with the Picoclick's button and visualized with onboard LEDs.

Outlines

00:00

🤖 Introduction to Omnidirectional Robots

This paragraph introduces omnidirectional wheels, which are capable of moving in any direction due to their small roller surface contact points. It distinguishes between cheaper plastic rollers without ball bearings and more expensive rubber rollers with ball bearings. The paragraph also explains the application of these wheels in omnidirectional robots, which can drive in any direction without the need to turn, unlike standard robots. A simple physics principle underlies their operation, and a Python test simulation is mentioned to visualize wheel velocities in relation to the robot's speed and orientation. The paragraph concludes with the process of turning the simulated robot into a real one, starting with a printed circuit board as its base, equipped with motor drivers, an ESP32-S2 microcontroller, sensors, battery management chips, a USB port, and a camera connector.

06:11

🛠️ Design and Assembly of Omnidirectional Robots

The second paragraph discusses the design flaws encountered in the four-wheeled robot prototype, such as incorrect footprints for LEDs and a camera connector, and the use of an IO expander chip that does not support PWM, leading to limited motor control. These issues were corrected in the three-wheeled robot design, which also included an improved WiFi antenna. The assembly process is described, including the mounting of wheels and the battery, and the use of a 3D printed part for the camera mount. The software for the robot is in its early stages, with a basic web server that streams video from the camera, allows adjustment of LED brightness and robot speed, and features a hidden joystick for directional control. The video stream's lag is attributed to an unoptimized WiFi antenna and limited PSRAM on the ESP32-S2. The robot can also be controlled via ESPNOW using an ESP-based device equipped with a six degrees of freedom IMU. Different control modes are selectable and indicated by onboard LEDs.

13:26

🔧 Upcoming Updates for Omnidirectional Robot Designs

The final paragraph teases that updates have been made to both the three and four-wheeled robot designs, with new PCBs already available. It encourages the audience to stay tuned for the next installment, implying that further details and developments will be shared in subsequent content.

Mindmap

Keywords

Omnidirectional wheels

Omnidirectional wheels are a type of wheel that allows movement in any direction, not just forward and backward. They are constructed with small rollers on the surface contact points, enabling the wheel to roll sideways as well as in the standard direction. In the video, these wheels are used to create robots that can move in any direction without the need to turn, which is a significant advantage over standard robots that are constrained by their directional movement.

Robot simulation

A robot simulation is a virtual model of a robot's operation, used to analyze and predict its behavior in various scenarios. In the script, the creator writes a test simulation in Python to visualize how the wheel velocities of an omnidirectional robot change according to its speed and orientation. This simulation is crucial for understanding the robot's movement and for turning the concept into a real-world application.

Printed Circuit Board (PCB)

A Printed Circuit Board (PCB) is a foundational piece in electronics, providing mechanical support and electrical connections between components. The script describes a PCB as the base for the robot, where all electronics, motors, and hardware are mounted. The design of the PCB is essential for the functionality of the robot, as it houses the motor drivers, ESP32-S2 microcontroller, and other critical components.

ESP32-S2

The ESP32-S2 is a microcontroller unit (MCU) with integrated Wi-Fi and Bluetooth capabilities. In the context of the video, it serves as the brain of the robot, controlling the motor drivers and managing the communication with the camera and other sensors. Its inclusion allows for advanced features such as a web server for video streaming and control via Wi-Fi.

PWM driver

A Pulse Width Modulation (PWM) driver is a device that controls the amount of power delivered to the motors by adjusting the duty cycle of the electrical signal. In the video, the PWM driver is used to control the speed of the motors, allowing for precise movement and direction changes in the omnidirectional robot. The script mentions a mistake in the initial design where an IO expander chip that couldn't handle PWM was used, leading to limited motor control.

3D printed part

A 3D printed part is a physical object created using a 3D printer, which adds material layer by layer to build up the final product. In the script, a 3D printed part is used to mount the camera onto the robot. This showcases the versatility of 3D printing in creating custom components for specific applications, such as robotics.

Webserver

A Webserver is a software application that enables a device to deliver web pages and handle user requests via the internet. In the video, the ESP32-S2 creates a small Webserver for the robot, which displays the camera's video stream and provides controls for the robot's brightness and rotational speed. This feature allows for remote operation and monitoring of the robot.

Joystick

A joystick is a control column that can be moved in different directions to provide input to a system. In the context of the video, a hidden joystick is used on the robot's web interface to control the driving direction and speed of the robot. This provides an intuitive way for users to navigate the robot.

ESPNOW

ESPNOW is a communication protocol developed by Espressif Systems that allows for peer-to-peer communication between devices without the need for a central router. In the video, the robot is capable of being driven via another ESP-based device over ESPNOW, showcasing the protocol's ability to facilitate direct device communication for control purposes.

Picoclick

Picoclick is a compact device that can be used for various applications, including robotics. In the video, the newest Picoclick is equipped with a six degrees of freedom inertial measurement unit (IMU) and is used to control the robot's movement. It allows for different configurations of control, such as driving and rotating or just driving, providing flexibility in how the robot can be operated.

PSRAM

PSRAM, or Pseudo Static Random-Access Memory, is a type of high-speed memory used to enhance the performance of microcontrollers. The script mentions that the ESP32-S2 has only 2 megabyte of PSRAM, which is a limitation because it affects the smoothness of the video stream. An external RAM chip could be used to increase the PSRAM capacity and improve performance.

Highlights

Omnidirectional wheels allow movement in any direction due to their small roller surface contact points.

These wheels can roll sideways as well as in standard direction, unlike normal wheels.

Different types of omnidirectional wheels exist, with variations in material and bearing use.

The cost of these wheels ranges from $16 each for higher quality ones with rubber rollers and ball bearings.

Omnidirectional robots eliminate the need to turn to change direction, unlike standard robots.

The physics behind omnidirectional movement is simple, requiring only basic math and computational assistance.

A test simulation in Python was created to visualize the robot's speed and orientation.

The robot's base is a printed circuit board designed to hold all electronics and hardware.

The ESP32-S2 is equipped with a 3D antenna and a PWM driver for motor control.

Sensors and battery management chips are integrated into the robot's design.

A camera can be connected to the robot using the same connector as ESP32Cam boards.

PCBWay facilitated the quick ordering and manufacturing of the robot's circuit board.

Design mistakes in the four-wheeled robot were corrected in the three-wheeled version.

The three-wheeled robot features corrected footprints, a different PWM driver, and an improved WiFi antenna.

The camera is mounted using a 3D printed part and is connected to the robot's circuit board.

The robot's software includes a basic web server for video streaming and control sliders.

A hidden joystick in the web interface allows for directional control of the robot.

The video stream experiences lag due to antenna impedance and limited PSRAM on the ESP32-S2.

The robot can be driven remotely via ESPNOW using an ESP-based device with an IMU.

Three different control modes are available for the robot, selected via a button on the Picoclick device.

Updated designs for both the three and four-wheeled robots have been completed, with PCBs on the way.