Coder Social home page Coder Social logo

hu-ict-lab / robotwars Goto Github PK

View Code? Open in Web Editor NEW
12.0 0.0 1.0 33.81 MB

Robomaster S1 autonomous lasergaming for HU

Python 68.11% Jupyter Notebook 16.76% HTML 0.51% CSS 0.12% JavaScript 4.24% PowerShell 2.31% Shell 7.83% Dockerfile 0.13%
robomaster s1 reinforcement-learning react robots ai artificial-intelligence artificial-intelligence-algorithms hu hogeschool-utrecht

robotwars's People

Contributors

alex-jongman avatar lucas-vdr-horst avatar matthiesbrouwer avatar max2411 avatar richarddev01 avatar rubenvdbrink avatar swaglag avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

richarddev01

robotwars's Issues

Create db for data

Description

This story is about setting up a general database for storing data collected from the robotmaster. Data can be amount fired, times hit and other potential information that can be gather from the robotmaster.

Why do we need to do this?

This story is needed for creating a foundation to store data for other potentional data required userstories

Tasks for this user story

  • Creating a requirement list for a server
  • Creating a flexible infrastructure for collecting data from a robotmaster
  • Make the database accessible to the rest of the project group for data analysation

Acceptance criteria

This user story is done when the tasks above is completed and everything is documented on the wiki

Learn how to connect multiple RoboMasters to a single network.

Description

We need to be able to create a single point for controlling the robomasters.

Why do we need to do this?

This story is need for understanding how we can connect multiple robots to 1 network. We can use that for communication between the robots because that is need to play against each other or work with each other. Later on the project we can use it for agent based programming or data collection.

Tasks for this user story

  • Find a way to connect to multiple wifi devices at the same time.
  • Find a way to connect to the robomasters.
  • Research how much bandwith is used

Acceptance criteria

When all of the robomasters are connected to a single point like a server and this is documented in the github wiki, then this learning story can be seen as done.

Camera Tracking Using OpenCV

Description

This story is about tracking and detecting objects with opencv and activating some functionality of
the robomaster in the process.

Why do we need to do this?

This story is needed understand how we can do basic image reading and responding to a image.

Tasks for this user story

  • Obtain visual feed from RoboMaster S1
  • Link visual feed to OpenCV
  • Use feedback from OpenCV to control RoboMaster S1

Acceptance criteria

This user story is done when the RoboMaster S1 can perform actions based
on camera feedback. The code used will be documented on the wiki

Learn how the RoboMasters can communicate with eachother.

Description

When we are going to introduce teamplay the robots need to communicate with eachother to use strategies.

Why do we need to do this?

This story is needed for understanding if there is a possibility of communication between the robots. We could use that information to creating events that require comunication between the robots.

Tasks for this user story

  • Research if the robomasters can communicate locally with eachother.
  • Research if multiple robomasters can communicatie with eachother via the server.

Acceptance criteria

This story is done when the research topic above has been done and documented on the wiki

Learn robomaster movements

Description

Was dubbel

Tasks for this user story

  • Task 1:
  • Task 2
  • Task 3

Definition of done

There is a short summary about the movements of the robomaster

Learn which technologies can be used for the application.

Description

We want to start games via an app. Before we can create the app we need to know with what frameworks or technologies we can create the app.

Why do we need to do this?

This story is needed for interfacing with the robots when we use our own code. During the introduction day, there would be need of a custom application.

Tasks for this user story

  • Ask contractor for their opinion (application or webapp)
  • Research which programming language is going to be used.
  • Research how the app can be connected to the server.

Acceptance criteria

This story is done when the research topic above has been done and documented on the wiki

Learn how to setup a reinforcement learning workflow

Description

This story is about doing research on reinforcement learning and what is mostly used in a reinforcement learning workflow

Why do we need to do this?

This story is needed to understand how reinforcement learning is used in practice and how we can use it in our project

Tasks for this user story

  • Do research on what bigger companies use for RL workflows
  • Design a workflow for rl that fits our project

Acceptance criteria

This user story is done when multiple rl sources are researched and the differences documented on the wiki. With this documentation, it should be possible to design a basic rl workflow on paper(digital is also fine)

Anti Cheat (Shelved)

Description

This story is about implementing an anti-cheat to prevent outsider influence from affecting the robot's scoring mechanism

Tasks for this user story

  • Task 1
  • Task 2
  • Task 3

Definition of done

As product owner I want the robots to be unaffected by harmful outsider influence which could be detrimental to hosting (automated) competition

Learn how to control the RoboMaster via the app.

Description

Check how to connect to the RoboMaster with a phone/laptop for the introduction day and learning which movements the RoboMaster is capable of performing.

Why do we need to do this?

This story is needed for knowing how the robot works out of the box and what the base features are. We can use it as inspiration for the bigger picture which is the introduction day

Tasks for this user story

  • Learn how to connect the RoboMaster with a phone.
  • Learn how to connect the RoboMaster with a laptop.
  • Learn the movements a user is capable of performing with the robomaster.

Acceptance criteria

There is a short summary about connect with the RoboMaster for manuel controll and a short summary which describes the movements the RoboMaster is capable of performing. This will be documented on the wiki

Get in contact with people that can help organise the introduction.

Description

For this project it is needed to get in contect with the organisation that rules the introduction day

Why do we need to do this?

This story is needed for further planning and userstory creation. After we do this, we will have a beter goal-based scrumming time.

Tasks for this user story

  • Get in contact with the organisator and plan further

Acceptance criteria

This story is done when there has been contact established with the organisation for the introduction day

Create simple webapp

Description

To make the api useable we need to make a simple frontend. Firstly we just want some buttons for all the different api calls. In a later issue we can make the webapp more visually attractive.

Why do we need to do this?

To make the api user friendly and have a base application where we can expand on.

Tasks for this user story

  • setup webapp
  • Return an page with elements
  • Return buttons in the webpage for all the api calls

Acceptance criteria

This user story is done when the api can send back an webpage with buttons for api calls.

How to control the RoboMaster using an external microcontroller.

Description

This learning story is about how the robot can be controlled using a microcontroller after communication has been established. According to the RoboMaster S1 Developer Guide it should be possible to communicate with the robot using an external microcontroller.

Why do we need to do this?

This story is needed for understanding how to controll the robomaster using an external microcontroller. With this, we should be able to control the built-in modules, extended modules and obtain video/audio streams.

Tasks for this user story

  • Reseach what information can be obtained using the established communication
  • Research how control commands can be send
  • Research how a typical communication loop handles commands and information receiving

Acceptance criteria

This story is done when the research topic above has been done and documented on the wiki. Foto/video from hardware is required

Control multiple robotmasters at the same time using 1 script

Description

This story is about controlling multiple robotmasters with 1 script using own code

Why do we need to do this?

This story is needed make multi agent programming possible. We can use code from this story to create nice to have visuals for the introduction day.

Tasks for this user story

  • Let 2 robotmasters move in sync in multiple directions
  • Let 2 robotmasters aim in the same direction in sync
  • Combine the above 2 function
  • Let 2 robotmasters do separate function at the asme time

Acceptance criteria

This user story is down when all the function above have been programmed and documented on the wiki

Use reinforcement learning to make the robot learn how to shoot other robots

Description

This story is about using RL to make a S1 shoot other robots

Why do we need to do this?

This story is needed for making the S1 make decisions on it's own while learning on how it can shoot around in the real world. This would be a showcase for introduction day on what AI can do in the real world

Tasks for this user story

  • Design a train plan for the robot
  • Make a work flow for RL for this subject
  • Try the code a make a report of it

Acceptance criteria

This user story is done when there is a design plan for using reinforcement learning for this subject. And there is working workflow to train the robot with manual documented on the wiki

Learn how to use Flask

Description

To setup a server in python we need to use flask.

Why do we need to do this?

This story is needed for setting up the server.

Tasks for this user story

  • Watch flask tutorial (youtube.com/watch?v=Z1RJmh_OqeA)
  • Read flask documentation
  • Make a simple working flask application

Acceptance criteria

This user story is done when we have a working flask request and the user story is documented.

Connect a Arduino to the RobotMaster

Description

This story is about connecting a Arduino as proof of concept to connect external hardware to the robotmaster.

Why do we need to do this?

This story is needed for creating a foundation to control the robots using external hardware.

Tasks for this user story

  • Connect via hardware connection a Arduino to the robot using the correct connection
  • Get and sent data via the Arduino to the robotmaster
  • Basic control the robotmaster via a Arduino

Acceptance criteria

This user story is done when the tasks above is completed and documented on the wiki

Stakeholder analysation

Description

This story is about making a analysis about the stakeholder of the project.

Why do we need to do this?

This story is needed for making further userstories after the ground work is done. If we know what the stakeholder wants, we can create better goal driven sprints and deliver something that is needed.

Tasks for this user story

  • Map all the stakeholders
  • Put each stakeholder in a category for a more organised view.
  • Zooming in on our target audience
  • Conclusion about the goals per stakeholder

Acceptance criteria

This user story is done when the tasks above are completed and the analysis is summarised on the wiki.

Make own version of line following program

Description

This story is about following a line on the ground using the robot camera vision and movement.

Why do we need to do this?

This story is needed for the introduction day to show of the capabilities of the robot during the introduction day

Tasks for this user story

  • Let the robot recognize the Line
  • Let the robot adjust it's postion arcoring to the line
  • Let the robot track a whole circuit and move over it

Acceptance criteria

This user story is dowe when the tasks above is completed and the code created is documented on the wiki

RoboMaster Hit Detection (Shelved)

Description

This story is about enabling robots to detect when they have hit another robot.

Tasks for this user story

  • Task 1
  • Task 2
  • Task 3

Definition of done

As product owner I want that the robots are capable of registering when they are hit and when they are hitting a robot to benefit the reinforcement learning process

Try to get other studies involved for making this project more multi disciplinary

Description

This story is about trying to get other studies involved for making this project more multi disciplinary.

Why do we need to do this?

We want to this to make our project stand out more and to make something more professional with experts in the media region.

Tasks for this user story

  • Get in contact with the media department of school

Acceptance criteria

This user story is done when we have established contact with the media department of school and we can plan out further plans for recording a video.

Create a UML diagram describing the general structure of a robot module

Description

In order to create a design for the communication structure between the server and the robot modules, first, a general structure for the robots internal functionalities has to be created. In a later issue, this will be used for the design of the server and robot communication.

Why do we need to do this?

To create a basis for the internal structure of the robot modules.

Tasks for this user story

  • Create a block diagram of the robot module
  • Create a state diagram describing the flow of the software in broad chunks
  • Combine the block and state diagram into a class diagram from which the required communication structures can be references.

Acceptance criteria

This user story is done when the communication structure can be easily referenced from the created diagrams to be used for the creation of efficient server to robot communication

Research server requirements.

Description

If we want to set up a server to be able to control the RoboMasters we first need to know how good of a server we need and what technologies can be used.

Why do we need to do this?

We need this story so we know how to build the server and what kind of material we need for the server.

Tasks for this user story

  • Research how much processing power the server needs.
  • Research which technologies can be used for the server

Acceptance criteria

This story is done when the research topic has been researched and documented on the wiki

Design a method for powering a micro-controller positioned on a S1

Description

This story is about creating a module/method to power a micro controller positioned on a S1. This can only be done when the arcording learning story is finished

Why do we need to do this?

This story is needed for making a micro controller operational stand alone with it's own power source

Tasks for this user story

  • Design (preferred in 3D) a method on how to power a micro controller positioned on a S1
  • Make that design reality
  • Document the process on the wiki

Acceptance criteria

This user story is done when there is a external micro controller present on the S1 and powered stand alone. This progress should also be documented

Research for a method for powering a micro-controller positioned on an S1

Description

This story is about finding a theoretical solution to power an extra micro controller positioned on a S1

Why do we need to do this?

This story is needed for further use of a micro controller on a S1 when it is driving around. A micro controller needs powers to operate

Tasks for this user story

  • Research existing power lines on the S1
  • Check if we can modify potential power lines on the S1 and what the risk are
  • Research the space required for a micro controller and where it can fit on a S1

Acceptance criteria

This user story is done when we have a wiki page about the power lines on the S1 and what where we can mount a external micro controller on a S1

Let the Robot drive via IDE controls

Description

This story is about controlling the robot via the ide. We want to controll the robot with simple scripts.

Why do we need to do this?

This story is needed to beter understand the IDE used for programming this robot for further milestones.

Tasks for this user story

  • Let the robot drive different direction with the IDE code
  • Let the robot aim at diffrent angles with the IDE code
  • Combine driving and aiming into 1 code function/script

Acceptance criteria

This user story is down when all task above is completed and the code used is documented on the wiki

Design a script used for the introduction day trailer

Description

This story is about designing a script for the video that will be used during the introduction day online. On google drive is already a template file available*

Why do we need to do this?

We need to do this so we can make a recording plan and check with our contractors if the content that we will be filmping, is correct.

Tasks for this user story

  • Discus with every specialty of the project team, what would represent them the most in a trailer
  • Write out a recording plan with subjects to film for the video
  • Discus with various stake holders if we do the right thing to record

Acceptance criteria

This user story is done when we have a script on what we want to record and the stake holders approve of it

Learn how to control the RoboMaster via the API.

Description

This story is about connecting to the RoboMaster via the API and controlling it through this API.

Why do we need to do this?

This story is needed for understanding the API and it capabilties in basic form. Later on in the project, we would use this API to implement our own code which is being used on the introduction day.

Tasks for this user story

  • Learn how to connect to the RoboMaster via the API
  • Learn about how the RoboMaster can be controlled via the API
  • Perform a test using a script using the API

Acceptance criteria

This story is done when a programmer can controll the robotmaster via an API and has documented it in the wiki.

Recognize Vision Markers on the robotmaster

Description

This story is about recognizing vision markers from cards that came with the robots.

Why do we need to do this?

This story is needed for further interaction with the robot and it's envirement. This is cool for the introduction day to show it capabilities

Tasks for this user story

  • Read image from camera
  • Detect vision marker on an image
  • Read data from vision marker

Acceptance criteria

This user story is down when the tasks above are done and the code used is documented on the wiki

Collect all camera feeds and display them on an observer monitor.

Description

We want an overview of all of the robomasters' camera's on a monitor.

Why do we need to do this?

This story is needed for when the introduction day is happening, spectators can see all the camera feeds at the samen time

Tasks for this user story

  • Research how to collect the data/output of the camera.
  • Research how to show all of the camera feeds on a single monitor.

Acceptance criteria

This story is done when there is a option to collect the camera output from multiple robots and displayed in a external application.

Setup workflow Github

Description

This story is about creating a programming workflow on github with protect branches and code control.

Why do we need to do this?

This story is need for structuring the github branches and a reviewing stage in the progress for pull requests. This way we would have a good quality controll and a always working state of the robot in github.

Tasks for this user story

  • Setting up a code control in github (Flake8)
  • Setting up protected branches
  • Setting up a envirement for coding with requirements

Acceptance criteria

This user story is done when the tasks above are completed and there is a short summary on github about how the workflow works

Make a comparison summary between different SDK's for deciding what we are going to use

Description

This story is about making a comparison between the different SDK's that are available for the S1

Why do we need to do this?

We need to do this so we can make a final conclusion on what we are gona use for this project.

Tasks for this user story

  • Make a comparison with pro's and con's for each available SDK
  • Communicate with the other programmers about the discovery of the SDK's

Acceptance criteria

This user story is done when there is a final decision made about the SDK's and it is documented on the wiki

Learn how to read data from the RoboMaster.

Description

If we want to keep track of things like hitpoints from a robomaster we need to know how to retrieve that data from the robomaster.

Why do we need to do this?

This story is needed for understand how you can collect data and what the data contains from the robotmaster. This data can be used for statistics which is nice to show in presetation and for machine learning later on.

Tasks for this user story

  • Learn how to read data from the robomaster.
  • Learn what kind of data is collected.

Acceptance criteria

This story is done when data from the robot is collected and documented how on the wiki

Use reinforcement learning to make the robot learn how to move around in the real life world

Description

This story is about using RL to make a S1 move around in the real world

Why do we need to do this?

This story is needed for making the S1 make decisions on it's own while learning on how it can move around in the real world. This would be a showcase for introduction day on what AI can do in the real world

Tasks for this user story

  • Design a train plan for the robot
  • Make a work flow for RL for this subject
  • Try the code a make a report of it

Acceptance criteria

This user story is done when there is a design plan for using reinforcement learning for this subject. And there is working workflow to train the robot with manual documented on the wiki

Read book about business skills for data science

Description

There is a book recommended by the product owner what he would like that we read to better understand how you should work with data in a business

Why do we need to do this?

This story is needed for better understanding how we could work with data in a project which might be presented in this project

Tasks for this user story

  • Read the book

Definition of done

There is a short summery about the important topic in the book placed on the wiki

Learn what hardware interfaces exist and how to use them.

Description

According to the RoboMaster S1 Developer Guide it should be possible to communicate with the robot using an external microcontroller through Wi-Fi, USB, or UART interfaces.

Why do we need to do this?

This story is needed for understanding how we can communicatie with external proccesors to the robotmaster. With this, we should be able to control the built-in modules, extended modules and obtain video/audio streams. This learning story is about what hardware interfaces allow for this connection.

Tasks for this user story

  • Reseach the capabilities of Wi-Fi communication between the microcontroller and the robot
  • Reseach the capabilities of USB communication between the microcontroller and the robot
  • Reseach the capabilities of UART communication between the microcontroller and the robot

Acceptance criteria

There has been the necessary research done on the tasks above and documented on the wiki

Learning how to use Git-hub

Description

This story is about learning how to use git-hub. This is needed to learn the basics about how to use github as scrum environment .

Why do we need to do this?

This story is needed for starting of the project with eneugh knowledge of git to get the scrum workflow going

Tasks for this user story

  • How to use markdown (.md)?
  • How to use the scrum method on GitHub?
  • How to create and use a wiki on Github?

Acceptance criteria

This story is done when the research topic above has been done and documented on the wiki

Test #1

Test

Test #1

Taken

  • [ ]
  • Testing issue

Get access to recording hardware for making a short trailer

Description

This story is about getting access to recording hardware for making a short trailer for the online introduction day

Why do we need to do this?

We need to do this so we can use good equipment to record our project en display it in a professional way

Tasks for this user story

  • Get in contact with some who can provide recording hardware
  • Make a time scheme on when we can use that hardware(if we can)

Acceptance criteria

This user story is done when we have contact info about some who can provide us with recording hardware. And after that, we have a time scheme on when we can record something

Setup a server/api

Description

To be able to talk to the robomasters' api we need a server. The server will be the control point.

Why do we need to do this?

This story is needed for setting up a server were we can write data to and get data from or communicatie to other robotmaster. In a later moment of this project we use this for teamplay or advanced userstories that require a server.

Tasks for this user story

  • Setup the server
  • #137
  • Use the server to control a robomaster (get ros server to work)

Acceptance criteria

This user story is done when we can control a robomaster via the server. Server used and additional sources will be documented on the wiki

Connect Raspberry pi to the robot master

Description

This story is about connecting a Raspberry pi as proof of concept to connect external hardware to the robotmaster

Why do we need to do this?

This story is needed for creating a foundation to control the robots using external hardware.

Tasks for this user story

  • Connect via hardware connection a raspberry pi to the robot using the correct connection
  • Get and sent data via the raspberry pi to the robotmaster
  • Basic control the robotmaster via a raspberry pi

Acceptance criteria

This user story is done when the tasks above is completed and documented on the wiki

Learn about OpenAI gym and how to use it

Description

This story is about learning how to use OpenAI gym. During a search for relevant projects related to machine learning with RoboMasters, we found a github repository which can simulate an environment for RoboMasters to learn in and to perform reinforcement learning for these robots. Unfortunately this simulation uses a model of RoboMasters which we currently do not have, and as such we will have to make our own simulation and reinforcement learning combination if we intend to follow the same method. A key component to this could be OpenAI gym, which was also used in the aforementioned project.

Why do we need to do this?

This story is needed as part of finding possible methods of facilitating reinforcement learning without having the robomasters physically compete and learn, potentially saving time and resources.

Tasks for this user story

  • Do research on OpenAI gym
  • (Optional) Get a prototype/tutorial on OpenAI gym working

Acceptance criteria

This user story is done when we have ascertained what OpenAI gym exactly does and whether it is applicable for our project or not

Research which upgrades can be done to the RoboMaster

Description

This story is about which additional upgrades can be added to the Robomaster S1 using the existing hardware interfaces

Why do we need to do this?

This story is need for beter understand what is posible with the robomaster without adding a external microcontroller. This is usefull for knowing what kind of modulles can be added on later on the robot wich in turn is needed for planning out future userstories.

Tasks for this user story

  • Reseach wether it's possible to add hardware modules to the robot without using an external microcontroller
  • Research wether the UART interface is capable of communicating with external hardware modules
  • Research the capabilities of the onboard Sensor Adapter and which/how many hardware modules can be added with it.

Acceptance criteria

The user story is done when all the research topics has been addressed and documented on the wiki

As product owner I want to know which upgrades I can add to the robot and how to add them

Connect the Robotmasters to the schoollab network

Description

This story is about connecting the robomasters to the schoollab network.

Why do we need to do this?

This story is needed for connecting multiple robomaster to the same network. We need this for data gathering from the robots and for later on multi agent programming

Tasks for this user story

  • Register the robots to the network
  • Check connection to the network

Acceptance criteria

This user story is done when the tasks above are completed and documented on the wiki

Use reinforcement learning to make the robot learn how to move and shoot other robots

Description

This story is about using RL to make a S1 shoot other robots and move arround, This can only be done when US#42 and US#43 are done.

Why do we need to do this?

This story is needed for making the S1 make decisions on it's own while learning on how it can shoot and move around in the real world. This would be a showcase for introduction day on what AI can do in the real world

Tasks for this user story

  • Design a train plan for the robot
  • Make a work flow for RL for this subject
  • Try the code a make a report of it

Acceptance criteria

This user story is done when there is a design plan for using reinforcement learning for this subject. And there is working workflow to train the robot with manual documented on the wiki

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.