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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file linesim-0.1.2.tar.gz.

File metadata

  • Download URL: linesim-0.1.2.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for linesim-0.1.2.tar.gz
Algorithm Hash digest
SHA256 3e7c036b59b3c8ec19cac21c427bd322be57c380a65687cbefb7b44223cb6543
MD5 5dd2247547b66287546ae89f21d7b03e
BLAKE2b-256 9f38de67c1766a3be04c12f91eca3a490b37736c5278ccc0f4487c11b8bf6235

See more details on using hashes here.

File details

Details for the file linesim-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: linesim-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 15.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for linesim-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 db31723ce7ec4bb8f1576894d1673597998592ea6530fcdc3fd42f577fc2f23e
MD5 68694e52153e89b9f17c0dbbc7efe955
BLAKE2b-256 e3919966ff753b4e3e3b84bd178b20e8840842a7bd1d11da9cd9cbf4369e639b

See more details on using hashes here.

Supported by

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