AlphaBot: Lane tracking with camera: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(17 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 65: Zeile 65:




== Pin Assignment ==
=Pin Assignment=
 
{| class="wikitable" style="width:100%; text-align:left;"
The following pin configuration is used to interface the sensors and control the AlphaBot:
! Component !! Module Pin !! Connected Controller Pin
 
|-
Pixy2 Camera (SPI/UART Interface)
| rowspan="4" | Pixy2 Camera (I2C)
Pixy2 Camera is connected to the controller using I2C:
| SDA || A4
SDA : A4
|-
SCL : A5
| SCL || A5
VCC : 5V
|-
GND : GND
| VCC || 5V
 
|-
GY-85 IMU Sensor (I2C Interface)
| GND || GND
GY-85 IMU Sensor communicates via I2C:
|-
 
| rowspan="4" | GY-85 IMU Sensor (I2C)
SDA : A4 (shared I2C bus)
| SDA || A4 (shared I2C)
SCL : A5 (shared I2C bus)
|-
VCC : 3.3V / 5V
| SCL || A5 (shared I2C)
GND : GND
|-
 
| VCC || 3.3V / 5V
Serial / Bluetooth (Optional)
|-
TX (Bluetooth) : RX (D0)
| GND || GND
RX (Bluetooth) : TX (D1)
|-
VCC : 5V / 3.3V
| rowspan="4" | Bluetooth / Serial
GND : GND
| TX || RX (D0)
 
|-
Both Pixy2 and GY-85 share the same I2C lines.
| RX || TX (D1)
 
|-
 
| VCC || 5V / 3.3V
Motor Driver (on AlphaBot)
|-
The motors are controlled via PWM pins from the controller:
| GND || GND
Left Motor
|-
PWMA : D6 (PWM)
| rowspan="3" | Left Motor
AIN1 : A1
| PWMA || D6 (PWM)
AIN2 : A0
|-
Right Motor
| AIN1 || A1
PWMB : D5 (PWM)
|-
BIN1 : A2
| AIN2 || A0
BIN2 : A3
|-
 
| rowspan="3" | Right Motor
Power Supply
| PWMB || D5 (PWM)
Battery : AlphaBot power input and sensors powered via onboard voltage regulator.
|-
| BIN1 || A2
|-
| BIN2 || A3
|-
| Power Supply || Battery / VCC || AlphaBot power input; sensors powered via onboard voltage regulator
|}


= Measurement method =
= Measurement method =
Zeile 123: Zeile 129:


= Measuring Circuit=
= Measuring Circuit=
The measuring circuit consists of the AlphaBot and the GY-85 IMU Sensor for recording yaw rate and yaw angle.
= Software =
= Software =
PixyMonV2 is used to teach Pixy2 camera to specifiy lane tracking and enhance its vision settings using color-based filtering.
AlphaBot is coded in Ardunio C/C++.
== Arduino IDE ==
== Arduino IDE ==
== Simulink ==  
 
The AlphaBot's software is created with the Arduino IDE, which offers a unified environment for writing, compiling, and uploading code to the microcontroller.
 
The program utilizes Arduino C/C++ and incorporates standard libraries like Wire.h for I2C communication and Pixy2I2C.h for the Pixy2 camera.
The loop function operates continuously to read the sensors, compute the yaw rate and yaw angle, and manage the motors.
 
The Serial Monitor allows for the viewing o data in real-time (line error, yaw rate, heading, motor speeds).
This data can also be monitored via Bluetooth for wirelessly.
 
== Simulink ==
The AlphaBot’s behavior can be modeled, simulated, and analyzed using Simulink, a visual programming environment based on MATLAB.
 
= Measurement =
= Measurement =
The measurement system records the robot’s navigation performance using onboard sensor.
The Pixy2 Camera for lane detection measurement.
The GY-85 IMU Sensor for measuring yaw rate and yaw angle.
= Video =
= Video =
= Datasheets=
= Datasheet =
{| class="wikitable" style="width:100%; text-align:left;"
! Component !! Model / Type !! Key Specifications !! Function in Project
|-
| [[AlphaBot]] || Waveshare AlphaBot || 2 DC motors, motor driver, chassis, 6–12V power input || Mobile platform for autonomous navigation
|-
| [[Pixy2 Camera]] || Pixy2 CMUcam5 || 60 fps
I2C/SPI/UART interface
Line-tracking mode
|| Lane detection and position measurement
|-
| [[GY-85 IMU]] || GY-85 (HMC5883L + MPU6050) || 3-axis gyroscope, accelerometer, magnetometer
I2C interface
|| Measures yaw rate, heading, and motion data
|-
| [[Bluetooth Module]] || [[HC-05 / HC-06]] || UART interface, 3.3–5V operation, 10 m range
|| Wireless telemetry of sensor and motor data
 
|}


= Related Links =
= Related Links =

Aktuelle Version vom 25. März 2026, 12:00 Uhr

Abb. 1: AlphaBot: Lane tracking with camera
Autor: Syed Muhammad Abis Rizvi
Art: Praxissemester
Studiengang: ELE
Starttermin: 02.03.2026
Abgabetermin: 21.06.2026
Betreuer: Prof. Dr.-Ing. Schneider
Sprache: DE EN

Introduction

This is an Alphabot by waveshare which supports advanced navigation and sensing features. In this project our task is to drive the Alpha bot with in the right lane along the course by using a pixy2 camera and modify its speed limit. We also added a GY-85 gyroscope IMU sensor to record the Yaw rate so that we can later calculate the yaw angle from the yaw rate data, later we plan to add a Bluetooth module to get the data wirelessly.These components works together so that Alpha bot can drive independently in real time.

Requirements

Table 1: Requirements for the Unit
Req. Description Priority
1 An AMR must drive autonomously in the right-hand lane. 1
2 The Topcon Robotic Total Station is used as the reference measurement system. 1
3 The AMR must evaluate the road data via camera (Pixy 2.1) to follow the lane. 2
4 The reference values ​​must be recorded with MATLAB (x, y, ΨT). 1
5 Measurement errors must be appropriately filtered. 1
6 The two-dimensional digital map showing the robot's pose during movement must be provided as a MATLAB® file (.mat). 1
7 The solution path and solution must be documented in this wiki article. 1
8 An AlphaBot must be used as the AMR. 1
9 MATLAB®/Simulink must be used as the control software. 1
10 From the measured yaw rate Ψ˙G the yaw angle ΨG must be determined and compared to the reference ΨT from Req. 4. 1
11 The AlphaBot's speed must be optimized to it's maximum. 1

Working principle

The AlphaBot uses the Pixy" camera to detect the lane which helps Alphabot to poistion itself on the track and based on this infromation the motor runs and the Alphabot runs independently on the track and stop immediately when it does not detect any line.

GY-85 IMU sensor measures the yaw rate, which is used to detemine the AlphaBot's (yaw angle) according to its movements.

All componennts work together in real time to make sure the AlphaBot runs independently in real time.

Technical Overview

The system is built on the waveshare AphaBot which is integrated with motors. A pixy2 camera is used for keeping the AlphaBot on track.

Gy-85 IMU used to record yaw rate and yaw angle.

Bluetooth module is used for collecting the output wirelessly in real time.


Pin Assignment

Component Module Pin Connected Controller Pin
Pixy2 Camera (I2C) SDA A4
SCL A5
VCC 5V
GND GND
GY-85 IMU Sensor (I2C) SDA A4 (shared I2C)
SCL A5 (shared I2C)
VCC 3.3V / 5V
GND GND
Bluetooth / Serial TX RX (D0)
RX TX (D1)
VCC 5V / 3.3V
GND GND
Left Motor PWMA D6 (PWM)
AIN1 A1
AIN2 A0
Right Motor PWMB D5 (PWM)
BIN1 A2
BIN2 A3
Power Supply Battery / VCC AlphaBot power input; sensors powered via onboard voltage regulator

Measurement method

Measurement is done by using onboard sensors on AlphaBot. Pixy2 camera detects the lane position from which lateral error is calculated. The GY-85 IMU sensor measures the yaw rate which helps determine the yaw angle.

Formula for yaw angle.

\[ \theta(t) = \theta_0 + \int_{0}^{t} \omega(t)\, dt \]

\[ \theta_k = \theta_{k-1} + \omega_k \cdot \Delta t \]

Measuring Circuit

The measuring circuit consists of the AlphaBot and the GY-85 IMU Sensor for recording yaw rate and yaw angle.

Software

PixyMonV2 is used to teach Pixy2 camera to specifiy lane tracking and enhance its vision settings using color-based filtering.

AlphaBot is coded in Ardunio C/C++.

Arduino IDE

The AlphaBot's software is created with the Arduino IDE, which offers a unified environment for writing, compiling, and uploading code to the microcontroller.

The program utilizes Arduino C/C++ and incorporates standard libraries like Wire.h for I2C communication and Pixy2I2C.h for the Pixy2 camera. The loop function operates continuously to read the sensors, compute the yaw rate and yaw angle, and manage the motors.

The Serial Monitor allows for the viewing o data in real-time (line error, yaw rate, heading, motor speeds). This data can also be monitored via Bluetooth for wirelessly.

Simulink

The AlphaBot’s behavior can be modeled, simulated, and analyzed using Simulink, a visual programming environment based on MATLAB.

Measurement

The measurement system records the robot’s navigation performance using onboard sensor.

The Pixy2 Camera for lane detection measurement.

The GY-85 IMU Sensor for measuring yaw rate and yaw angle.

Video

Datasheet

Component Model / Type Key Specifications Function in Project
AlphaBot Waveshare AlphaBot 2 DC motors, motor driver, chassis, 6–12V power input Mobile platform for autonomous navigation
Pixy2 Camera Pixy2 CMUcam5 60 fps

I2C/SPI/UART interface Line-tracking mode

Lane detection and position measurement
GY-85 IMU GY-85 (HMC5883L + MPU6050) 3-axis gyroscope, accelerometer, magnetometer

I2C interface

Measures yaw rate, heading, and motion data
Bluetooth Module HC-05 / HC-06 UART interface, 3.3–5V operation, 10 m range Wireless telemetry of sensor and motor data

Related Links

SVN-Repository

https://svn.hshl.de/svn/HSHL_Projekte/trunk/AlphaBot

→ zurück zum Hauptartikel: Aufbau und Test eines Autonomen Fahrzeugs