Open
Description
This is not a completely accurate concept, but seeks to outline a more clear step-by-step basis on which to determine a line from an image, calculate a turn angle, and render a processed image showing the line geometry from the image.
from pitop import AlexRobot
from pitop.processing.algorithms.line_detect import (
get_line,
get_control_angle,
vector_to_image,
)
from signal import pause
robot = AlexRobot()
def drive_based_on_frame(frame):
line_vector = get_line(frame)
angle = get_control_angle(line_vector)
print(f"Target angle: {angle:.2f} deg ", end="\r")
robot.target_lock_drive_angle(angle)
robot_view = vector_to_image(line_vector)
robot.oled.display_image(robot_view)
# On each camera frame, detect a line
robot.camera.on_frame = drive_based_on_frame
pause()