Coder Social home page Coder Social logo

icedandreas / p5-lego Goto Github PK

View Code? Open in Web Editor NEW

This project forked from j-karls/p5-lego

0.0 1.0 0.0 2.44 MB

Embedded real-time system for a self-driving bus buit with LEGO MINDSTORMS, that uses a nxtCamV4 sensor.

C++ 89.35% C 2.11% Makefile 8.54%

p5-lego's Introduction

Lego Projects

Software for an embedded real-time system for a self-driving bus buit with LEGO MINDSTORMS. The bus uses a nxt ultrasonic sensor and a nxtCamV4 to sense its surroundings and ensure it stays within its road lanes. It uses one motor to drive and another motor to control where it turns, and is implemented on the nxt brick component on the real-time operating system nxtOSEK.

Software

The driving and sensor-near software implements classes for calibrating, using and communicating with the ultrasonic sensor, driving motor, turing motor and the nxtCamV4, as well as algorithms to drive the bus corresponding to the input it receives.

BusRemoteTool

The BusRemoteTool is a piece of software created to remote control the bus from a computer, and shares data with the nxt brick over a USB cable. It was highly useful to debug and troubleshoot the input of the nxt cam sensor and the output of the algorithm that decides which way to drive.

Scheduling

We have implemented the real-time requirement of the proejct by implementing the software running on the nxt brick with a fixed-priority approach, using the Osek Implementation Language (oil). Additionally, the real-time implementation has been simulated to never exceed any scheduling deadline using the modeling (validation and verification) software UPPAAL, meaning that it will always be able to stop in time for any sudden road obstructions (in theory, though this highly depends upon the quality of sensor results).

Compilation: Useful Info

Run make all to compile, make clean to clear the folder. To push it to the NXT, make sure you have the USB cable attached and it is in flash mode (While in main menu, hold down enter and left until it shuts down - proceed to turn on), then run ./appflash.sh. If you want to combine these you can chain them by doing make all && ./appflash.sh.


Created as part of the 5th semester project of Software group 501e17, Comp. Sci, Aalborg University, during spring/summer of 2017.

Group members:

  • Andreas Laugård Hald
  • Jakob Bo Søndergaard Madsen
  • Jonathan Karlsson
  • Kim Larsen
  • Martin Fabrin Karkov

p5-lego's People

Contributors

jakobbsm avatar j-karls avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.