Skip to content

AMearns/Robot-simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robot Simulator - A lightweight, browser based robotics simulator

Robot Simulator is a minimal browser based robotics simulator built with Python and PyScript. It is designed for providing a lightweight, easy to use robotics simulator for experimenting with robotics concepts or for beginners learning without having to deal with the complexities of ROS, Linux, dependencies, environments and all the other issues which make working with other robotics simulators challenging and slow.


Contents


Key Features

  • Runs entirely in browser: Powered by PyScript, no need for any installations or setup.
  • Simple simulation environment: Includes a 2D renderer, ....
  • Existing programs:
    • Automated Snake-like game - Demonstrates movement basics and control loop.
    • A* Maze Solver – Randomly generates a maze and uses A* to find a path to follow to the exit.
    • Markov Localisation - Still in progress.

Project Goals

Expand the simulator to be a tool for beginners in robotics by:

  • Integrating IDE inside the browser for writing and executing programs side by side.
  • Adding log outputs and allowing for step through debugging.
  • Adding visualisations to enhance understanding of how common robotics algorithms work.

Improve the simulator for easy and fast exploration of robotics concepts and prototyping of algorithms/systems such as:

  • Localisation
  • Mapping and SLAM
  • Sensor and noise models
  • Multi-robot systems
  • Autonomous planning/decision making

Project Structure

├── index.html - HTML for the browser page
├── main.py - Entry point
├── models
│   ├── gamestate.py - Keeps track of all the objects and entities in the simulator.
│   ├── Object.py - Parent class for all objects.
│   ├── turtle.py - The turtle(robot) and it's functions.
│   └── Wall.py
├── programs
│   ├── AStarNavigation.py - Generates a random maze then navigates through to the exit.
│   ├── program.py - Abstract class for all programs to implement.
│   └── snake.py - Food randomly spawns and the robot moves to "eat" it.
├── pyscript.toml - Config file for pyscript.
├── README.md
├── rendering
│   └── renderer.py - 2D renderer.
├── turtlesim.py - Main controller for the simulator.
└── utils
├── geometry.py - Common geometry methods: coordinate translations, euclidean distance, collision detection.
└── input.py - Input handler for all input (keyboard and browser inputs).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors