Skip to main content

A package allowing testing of line following code

Project description

Linesim

Line simulation made with pygame for testing a robot's pathfinding abilities.

Intended for testing pathfinding code for Purdue's ENGR 161 Project 3.

Test track

Features

  • Multiple line sensor support
  • Default track with curves, broken lines, and multiple paths.

Installation

Linesim is available on PyPI.

pip install linesim

Note: If you are having difficulty installing pygame 2.1.2 and you are using Python 3.11, first run pip install pygame==2.1.3-dev8 before installing.

Usage

First, import the LineSimulation class.

from linesim import LineSimulation

Initialize the simulation and run sim.add_sensor(offset) for each sensor to initialize, with positive x values as horizontal offset and positive y vales as vertical offset from the center of the robot.

Note: pygame defines the positive y direction as downwards.

sim = LineSimulation()
robot = sim.robot
sensors = [
    sim.add_sensor((20, 10)),
    sim.add_sensor((20, -10)),
    sim.add_sensor((0, 0))
]

Now, create your loop. Use sim.running to check if the simulation is still running, and run sim.update() to update the game after every movement.

while sim.running:
    if sensors[0].read_line():
        robot.rotate(4)  # Turn right
    elif sensors[1].read_line():
        robot.rotate(-4)  # Turn left
    else:
        robot.move(4)  # Go straight

    sim.update()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

linesim-0.1.2.tar.gz (15.9 kB view hashes)

Uploaded Source

Built Distribution

linesim-0.1.2-py3-none-any.whl (15.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page