Coder Social home page Coder Social logo

sdp-2016-team-f's Introduction

SDP-2016-Team-F

Awesome Logo

Configuring the SRF stick and the RF chip

Guard character are likely to be # or ~.

Simplest way is to use the graphical XCM (XRF Config Manager). This can be found in the tools directory. Sadly this only works on Windows. This tool can be used both for the stick and arduino RF chip.

The configuration is somewhat persistent. Once the equipment is configured there is no need to use any code to reconfigure most of it. It might be good (or necessary) to do some configuring nonetheless, namely, channel (ATCN):

Note that the frequency settings do not appear to be persistent (i.e. you’ll need to set them every time you power up).

ATCN (Channel nubmer)

Group 11 0x60

Group 12 0x67

Arduino Libraries

To use the arduino code you need to have the libraries used correctly linked. Library files can be found in the repo. If linking is broken check your IDE settings to make sure it can find the libs.

Workflow

Please use the GitHub wiki a lot. If you find something out or tricky and get a solution chances are that others will have hit the same problem. Please amend or add to the wiki as you see fit.

Issues and tasks will be managed through the GitHub issue tracker.

Git

There are 3 main branches on git:

  • master - used for admin and stuff generic to both teams
  • group11 - group 11 development
  • group12 - group 12 development

These should always be kept in a working state.

How-To

  • always keep main branches in a working state, do not commit any broken code to them!
  • master branch is for administrative issues and developments common for both groups (do not break the other group's code! be careful!!!)
  • small commits can go directly on the group branches if you are 100% that they're OK (do relevant testing, make sure it's working with everything else)
  • larger pieces of work should be done on a branch with a descriptive name
  • git checkout -b <branch> is used to create a new one locally, and git push -u origin <branch> to push it the first time.
  • before merging a branch back in, make sure that your code will work with the code currently on master:
    • try rebasing your branch off of the current master:
      • git checkout <my-amazing-branch>
      • git rebase master
    • if this gives you get a merge conflict, abort the rebase:
      • git rebase --abort
    • and just do a regular merge of master into your branch:
      • git merge master
    • if you still get a merge conflict, suck it up and fix it (using a graphical merge tool is strongly encouraged)
    • now you should be at a state where you can test your code with the latest master (having someone else review the code at this stage might catch some errors as well)
    • if everything is alright merge the code into master by doing:
      • git checkout master
      • git merge <my-amazing-branch> --no-ff
    • the --no-ff makes git not fast-forward master even if it can which is useful in case all the changes on a branch need to be reverted at once
    • delete the old branch:
      • git push origin :<my-amazing-branch>

Random pointers for git:

  • when pulling after local commit have been made use git pull --rebase which will rebase your local commits on top of the master on origin (makes the tree look less of a mess)
  • use branch names that describe what you are doing; using tokens might be useful if there are a lot of branches: vision/tweaking-calibrations
  • run git remote prune origin to stop tracking branches that are no longer on origin

sdp-2016-team-f's People

Contributors

modulo- avatar hughmcgrade avatar marekstrong avatar siivanov avatar joelhutton avatar chriswilson1994 avatar

Stargazers

 avatar  avatar

Watchers

Euan Hunter avatar  avatar  avatar  avatar Francisco Vargas avatar Thomas Kerber avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sdp-2016-team-f's Issues

Planning: Defending your goal

The judges place a kicking machine ('house' robot) near the halfway line, facing towards your goal, with a top plate that belongs to an opposing team.

You place your robot in area A adjacent to the defense area of your goal. Its initial orientation is up to you.

5 seconds after the 'start' signal, the housebot/kicker will kick a ball towards the goal, giving your robot time to move before the kick.

Your robot must block the kick, from within the defense area. It does not have to acquire the ball.

If the ball goes into the goal at any time, the trial is over.

Planning: Receiving a pass

The judges place a kicking machine ('house' robot) in one goal, with a top plate that belongs to your team.

The judges place your robot in area A facing towards the other goal (see arrow above).

5 seconds after the 'start' signal, the housebot/kicker will kick a ball towards your robot, giving your robot time to turn before the kick.

Once the ball is kicked:

  • Your robot must acquire the ball, within 30 seconds from when the housebot kicks the ball
  • If the ball bounces off your robot you can move towards it and grab it (respecting the time limits)

Automated testing in simulator

We should be able to run simulator tests either separately (./simulator -t 4) or all together (./simulator -t).

If run together, it should run all tests one buy one and print summary to console about the result - passed and failed tests. The assertions about tests may either be only about a final position of each model, or they may contain a list of positions each model has to go through.

Cocos2d vision feed

The planner should no longer use sequences for vision. Its models should be updated from Cocos2d.

Planning: Receiving, turning and passing

The judges place a kicking machine ('house' robot) in one half, facing its goal, with a top plate that belongs to an opposing team.

The judges place your robot in that goal (A). Its initial orientation is up to you.

The judges place the other robot from your team in the other half (B).

5 seconds after the 'start' signal, the housebot/kicker will kick a ball towards your robot:

  • Your robot must acquire the ball
  • Your robot must then pass the ball to your teammate

Your teammate's robot will not be powered—you have 30 seconds from the start to get the ball to touch your teammate's robot.

If the ball goes into the goal at any time, the trial is over.

Simulator actions and features

we need more actions in simulator:

  • kick the ball
  • rotate while holding the ball
  • open/close grabbers - grab the ball

Also, we want the scene to look more like the actual pitch. So we want:

  • goals
  • white lines
  • walls
  • fix scaling

Planning: Intercepting a pass

The judges place a kicking machine ('house' robot) in one goal, with a top plate that belongs to an opposing team. The judges also place a robot from that team in the other half.

The judges place your robot in area A facing towards the housebot/kicker goal (see yellow arrow above).

5 seconds after the 'start' signal, the housebot/kicker will kick a ball towards its 'teammate', giving your robot time to turn and move before the kick.

Your robot must block the kick, without entering the defense area. It does not have to acquire the ball.

Request deletion of unmerged branches

Branches dev-hunter, group12-roundrobin1 and addsensor contain stale, unmerged changes. I suggest deleting them, however this may result in evidence of work being permanently lost.

Request freeing /arduino/test for unit tests.

I'd like to write some tests for the comms code I'm working on, /arduino/test seems ideal for this, however it is used for some of group 12's arduino code.

I suggest:

  • Moving this group-specific code to the group branch
  • Renaming it to something which makes more sense.

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.