Giter Club home page Giter Club logo

sdpwinners's Introduction

STABILITY logo Team STABILITY

Repository for team STABILITY (Group 1, 2014) for the System Design Project at the University of Edinburgh.

Running the code

  • On the computer side the strategy, communication and vision system are all started together by 2014SDP1/communication/StartRobot.java. This also starts the corresponding GUIs that make managing things easier

If you want to run the systems separately, then looking at that class will give you a good idea how to do it.

  • On the NXT side all the files are in commNXTHolonomic. There are two separate packages for the defender and attacker robots. They are essentially the same, they just have different speeds for some movements and rotations due to the robots having different weight. The main classes are in NXT.java in both cases.

Thanks

Everybody involved with the organisation of the SDP course, especially Garry Ellard, Paul Ardin and Henry S. Thompson.

Group 1 from 2013 (https://bitbucket.org/sdp_group1/sdp/) for the majority of our vision code and the basic framework for the communication system.

sdpwinners's People

Contributors

andretamm avatar calvintmurray avatar mbleftley avatar kocikocev avatar claudiutarlungianu avatar mkirova avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

sdpwinners's Issues

MAX BOT DISCUSSION!!!

I've created an issue to debate the necessity of Max Bot's rotating kicker, let's get this sorted by Wed 26/03/14

Split pitch processing into four quadrants

Divide processing into four quadrants and only look for a specific robot in each quadrant. Note that finding the ball still needs to use the whole image.

This issue needs to be completed before #12 can be started.

SUPFR - Super Ultra Precise Fast Rotation

What normally happens when we rotate -

  1. send rotate command to robot
  2. robot starts rotating
  3. we see from the vision the robot is about to be at the right position
  4. send pre-emptive stop, knowing it will arrive with a delay
  5. robot gets stop and kind of stops at the right place

The above is okay when we need to get the ball, because a) we have time b) the ball moves around a lot. But when attacking we want speed and precision! Without further ado, let me introduce you to Super Ultra Precise Fast Rotation or SUPFR:

  1. Send rotate command together with how many degrees to rotate
  2. Robot rotates exactly that many degrees, BUT is unresponsive while rotating, stops automagically when done rotating

So plan is to use SUPFR for the attacker when trying to score a goal and the old rotation for everything else.

Robot: Diagonal movement causes robot to restart

The diagonal movement is slightly buggy, here are some symptoms we have been seeing:

  1. While doing diagonal movement the robot beeps (usually two beeps in a row)
  2. Quite often the robot resets itself while doing the diagonal movement, going back to the "waiting for connection..." state. This seemed to be happening more with higher speeds (or when the batteries were more full), don't know if related though.

Bluetooth communication

I am currently working on getting the code from Group 1 2013 communication pack and play around with it to see what it does and how can I make it work for two robots.

Vision: Fix distortion issue on the points!

Lens distortion causes incorrect world state ball and robot positions! Undistort points using the fix distortion method already present. Another approach could be using open/javaCV, which provides distortion fixes on points.

Basic physics engine for tracing the ball, wall kicks etc

Want this to be able to guess where the ball is going and how fast it will get there. So should be able to use velocities and histories from the Vision system's world state to do physics magic and tell us where the robot will go.

This should be useful both for helping us defend goals and for letting us make passes between the defender and attacker. Oh and wallkicks from the attacker to the other team's goal :)

Probably going to be some combination of @mkirova and @andretamm.

Robot: Diagonal movement causes robot to go around in circles

Sometimes the robot started going round in circles around a target point it wanted to reach when doing diagonal movement. I believe this is because we get the same effect as if a satellite was orbiting a planet, we send it commands to go towards the point (gravity pulling towards the planet), but its existing velocity/inertia is perpendicular to that new direction, so it starts going round in a circle.
Here's an illustration : http://upload.wikimedia.org/wikipedia/commons/4/4e/Orbital_motion.gif

Better kicker for the grabbing robot of Bagdat.

I just ran some code on the design Bagdat came up with. It does just fine running around the pitch with the ball but the release kick is not strong enough or very accurate. Grabbing ahold of the ball was also pretty good.

Test

joihsdgohdsgoih

Vision: Split pitch into quadrants

  • Possible use of mean shift algorithm
  • Use threads to search for ball, and one robot plate in each quadrant
  • Update world state for ball position and Yellow/Blue Attacker/Defender Robot

Vision: Green plate detection in side room

Right now we utterly fail detecting the green plate in the bottom bit of the pitch in the second room.

Possible solutions -

  1. Using background subtraction! I think this is a potentially insanely powerful tool that we haven't used yet.
  2. Some kind of clustering algorithm

@CszMurray and @mkirova are in charge of this. This needs to be done and working by Tuesday latest so we can already test on Tuesday afternoon, possibly make some small fixes and then freeze the code on Wednesday.

Vision: Fix bugs from the World State

I have updated the world state, to include an attacker and defender robot for yellow and blue teams. Method name calls need to be changed to allow the main class in the vision package to run.

Robot Design: Stronger kicker for the MaxBot!!!

Enhance the kicker of the MaxBot to score goals using a wall kick strategy.

  1. Ask gary if there is any stronger motors (but not larger) that could be used for this task.
  2. Double the number of gears on the kicker

I have an issue now. :-)

I felt left out by all the emails I have been getting about issues. So I want to make one as well. Lots of Love.

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.