Giter Site home page Giter Site logo

robocup-ss13's Introduction

robocup-ss13

Building the most awesome robot-soccer-team in existence.

robocup-ss13's People

Contributors

artifactz avatar cyborgx7 avatar gnufs avatar helme avatar jackmcrider avatar muxamilian avatar newusername avatar sonnenblume avatar teambo avatar themogli avatar tn1ck avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

robocup-ss13's Issues

Parser floating point fix

While working with the monitor protocol I recognized that our parser splits floating point numbers. If a number like (1.37654e-005) occurs it will give me a list of two elements: [1.37654 , "e-005"] instead of a list containing the float (like [1.37654e-005] or at least ["1.37654e-005"]).
I'll write a quick fix for my scene graph class, so it's not really urgent, but I'd really appreciate if someone who knows how the parser works could fix this issue.

Kick (movement)

movements for some kicks, perhaps there would be a kick for short and long distances

Running is seriously flawed

When I want the Nao to run with the run() function, it indeterministically is beamed to various locations on the field.
But it doesn't move to the location provided.

SOLUTION: Weird agent behavior

When your agents show weird behavior or suddenly start to fly you can enable synchronous mode of simspark

I added the (syn) command is added to every packet in the socket.

To configure the server to run in agent sync mode, set agentSyncMode in the file ~/.simspark/spark.rb to true.
$agentSyncMode = true

Now the server waits until every agent has finished his duty.

Falling-Problem with beaming

Right now we can't fall while moving because a beam command adjustes the torso.

This is unfair, someone solve this somehow!

Create a 'See' list over n cycles

If the Nao only see one static entity he can't locate his position.
Solve this problem.
My idea:
In this case run_tactics() returns:
(('run',False), ('stand_up',False), ('kick',false), ('say',False), ('head',True))
to take a look around.
If tactics returns this, stop the head movement after each key frame until the server sends a see message. If tactics still returns the upper tuple save all static entities from the see message, put them to the next incoming see list and proceed the next key frame.
Give this 'bigger' see list to self.perception.process_vision().

Strange "bug"? with perception or drawing.

Every Nao we tried was only connected to the Goal and left corner (when looking straight into enemies' half). The other corner is not connected (Side of Team Right. The Corner on the right of the goal).
Is it a perception bug or is the line just not drawn?

Connection to server indeterministically breaks

If I run agent.py it runs through a few iterations but then crashes after a few seconds because the server just stops transmitting data in the middle:

For examle it sends the following data and then just stops in the middle:

(time (now 2289.95))(GS (t 0.00) (pm BeforeKickOff))(GYR (n torso) (rt 0.00 -0.00 0.00))(ACC (n torso) (a -0.00 0.00 0.00))(HJ (n hj1) (ax 0.00))(HJ (n hj2) (ax -0.00))(See (G2R (pol 26.04 1.26 0.61)) (G1R (pol 26.13 5.85 0.35)) (F1R (pol 28.48 23.93 -1.02)) (F2R (pol 27.39 -17.77 -0.98)) (B (pol 11.14 8.28 -2.59)) (P (team DAI-Labor) (id 1) (rlowerarm (pol 0.19 -34.21 -21.48)) (llowerarm (pol 0.19 35.37 -21.29))) (L (pol 13.84 -37.23 -2.26) (pol 16.00 46.65 -1.79)) (L (pol 27.37 -17.82 -1.10) (pol 28.43 24.01 -0.93)) (L (pol 28.49 24.07 -1.06) (pol 13.43 60.24 -2.19)) (L (pol 27.34 -17.89 -1.19) (pol 9.71 -59.63 -3.26)) (L (pol 24.65 10.77 -1.42) (pol 24.23 -3.44 -1.32)) (L (pol 24.65 10.70 -1.21) (pol 26.43 10.10 -1.02)) (L (pol 24.21 -3.70 -1.31) (pol 26.05 -2.89 -1.08)) (L (pol 13.11 7.35 -2.51) (pol 12.94 12.54 -2.41)) (L (pol 12.92 12.43 -2.53) (pol 12.16 16.73 -2.44)) (L (pol 12.16 16.76 -2.57) (pol 10.94 18.85 -3.05)) (L (pol 10.96 18.59 -2.75) (pol 9.80 16.39 -3.26)) (L (pol 9.79 16.24 -3.33) (pol 9.17 10.16 -3.40)) (L (pol 9.16 10.09 -3.48) (pol 9.41 2.68 -3.30)) (L (pol 9.42 2.44 -3.41) (pol 10.39 -1.76 -3.06)) (L (pol 10.41 -1.57 -2.95) (pol 11.65 -1.46 -2.68)) (L (pol 11.64 -1.22 -2.56) (pol 12.65 1.96 -2.38)) (L (pol 12.64 1.77 -2.43) (pol 13.10 7.15 -2.35)))(HJ (n raj1) (ax 0.00))(HJ (n raj2) (ax -0.00))(HJ (n raj3) (ax 0.00))(HJ (n raj4) (ax 0.00))(HJ (n laj1) (ax 0.00))(HJ (n laj2) (ax 0.00))(HJ (n laj3) (ax 0.00))(

Mit diesem Fehler:

Traceback (most recent call last):
  File "./agent.py", line 30, in <module>
    Agent()
  File "./agent.py", line 12, in __init__
    self.start()
  File "./agent.py", line 22, in start
    parsed = parser.parse_sexp(msg)
  File "/Users/max/Documents/Studium/robocup-ss13.git/src/parser.py", line 63, in parse_sexp
    assert not stack, "Trouble with nesting of brackets"
AssertionError: Trouble with nesting of brackets

I tried to fix this for quite a long time but no success :/

Perception Bug

Sometimes some of the naos disappear suddenly. I think here is the reason:
perceptionbug

overload handling

We get new informations from the server every 20 ms. So we have 20 ms to process erverything.
If we constantly fail to do our stuff in time we will inevitable work with outdated information and send the server commands for game situations long gone.
No need to tell but that wouldn't look good ^^

Communication bug

After some seconds in a 1-vs-1 match against a UTA agent:

Traceback (most recent call last):
  File "./agent.py", line 253, in <module>
    a.start()
  File "./agent.py", line 111, in start
    self.hearObj = self.communication.hear(current_preceptor)
  File "/home/jan/Dropbox/Uni/2013 SoSe/MPGI 3 Pr/robocup-ss13/src/communication.py", line 22, in hear
    return t.translate(h[3])
  File "/home/jan/Dropbox/Uni/2013 SoSe/MPGI 3 Pr/robocup-ss13/src/translator.py", line 20, in translate
    if len(msg) < 3:
TypeError: object of type 'int' has no len()

Distance calculation only works for player with ID = 1

When the player has an ID other than 1 distance calculation doesn't work.

This is connected to the error that at the beginning there are 6 players in world.players but these magically vanish during each turn from the list. In the end of the cycle there are typically only 1 or 2 left in the array.

Agent registration

Somehow our agent does not register itself properly anymore since lots of commits. I was not able to find the commit in question.
Strange things are:

  • it seems to happen nondeterministicly (sometimes it works, most of the time not)
  • if the agent is killed, the registration seems complete ("DAI-Labor" shows up in the corner)

Magma Offenburg mention a strange Simspark bug in their code comments, which causes problems when packets are sent too frequently to the server.
I built a workaround for this, but still the registration fails.

So this still needs to get fixed.

Milestone (II) Presentation

As an exercise for the final presentation near the end of the semester:

Prepare a presentation (read as: one coherent, single set of slides) that describes the current state and the applied methods, if relevant.
This should include a general overview of your architecture, a 'feature list' of the implemented components, and maybe interdependencies.

What has been finished, and how well does it work?
On a side-note: What has been developed and is not being used?
What were the difficulties faced in the process?

Also think of a means of showing (in a structured way) this state in a live-demonstration and/or in recorded form.

Agent performance

cProfile is a standard performance analyzer/profiler for python.
http://www.vrplumber.com/programming/runsnakerun/ is a GUI that displays cProfile's results as pretty as this:
perf
Since our agent's performance is quite poor, we should take look at this.
It's really easy. You just need to:

sudo pip install SquareMap RunSnakeRun

and then you can:

python -m cProfile -o <outputfilename> agent.py 1
python runsnake.py <inputfilename>

Refine self localization

Current self-localiziation only uses the goals & flags, but if the nao does not see any, he does not know where he is.
Processing the lines on the field should solve this problem.

Player ID

I'd like to know the range of player IDs as received in a vision perceptor block:
(P (team ) (id ) +( (pol )))
And we need to know the own player ID, so the agent can access itself in the world's player list.
So when someone knows... share your wisdom.

Analyze enemy teams

Someone shall start some matches with UT Austin Villa and count their goals against a dead team / without another team, so we can measure our agent's quality.

Simspark broken after update on Ubuntu?

It's rather a private issue but I think I am not the only one:

I have the problem that Simspark is broken after an update.
Concretely the binary rcsoccersim3d is not included in the new packet after the update and I wasn't able to install the old package manually.

Has anyone the same problem?

Stand up

When a bot try to kick the ball and fall down and stand up again, but fall down immediately again.
It is not really clear to me whether it's because of to soon kick try or a general stand up bug.
He always fall on back when I tried.

Create Buffer for the last n worlds

Create a buffer which saves the last n (maybe 10) world objects and add it to agent.py.
Give it to the constructor of tactics_main and put all calculated distance lists/dicts in it (in run_tactics()).
Maybe it would be good to create a new data structur for this buffer so that we don't have to respect a special order (like f. e. in a list) and can call the data we need by name and index.

Tactics Masterplan

Please organize subtasks so we can distribute this big job to people without a task and speed up the process of 'building the most awesome robot-soccer-team in existence'.

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.