TN1ck / robocup-ss13

Building the most awesome robot-soccer-team in existence.
2 stars 0 forks source link

Stand up #42

Open ghost opened 11 years ago

ghost commented 11 years ago

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.

ghost commented 11 years ago

Just tested, works on my PC without problems if I start a single agent. If I start more that one at a time the behavior is completly wrong, the do not seem to stop the keyframe at the end. Edit: The first agent to connect manages to stand up correctly, the other ones not. Edit2: Most of the time the first to connect stands up correctly(falls down 1 in 10 or so, that should come frome the keyframe). The others fall most of the time down after standing up or dont even run the keyframe correct, but sometimes one of these other 5 manages to stand correctly. I have no idea at the moment what the cause of this is.

ghost commented 11 years ago

I think the problem is the gyro state calc. In one test run they started the keyframe although they were standing.

artifactz commented 11 years ago

do not use the gyro state unless you reset its value after standing up. it's full of simspark rounding error. for torso orientation purposes use the accelerometer. there even should be functions like lying_on_front() etc. in the nao class.

ghost commented 11 years ago

I do call the function lying_on_front/back() to check this.

ghost commented 11 years ago

Just tried it again and with sync mode on. A single agent manages the standup without problems, I run that 15 times in a row. But 6 agents never manage to standup. That has nothing to do with the perception, I used the fall_on_back and than let them stand up. I have no idea why the Keyframe Engine should work different with more agents connected, could there be a problem in the connection? I also tested to start 6 agents manually after each other, they do not all try to stand up together (because I am not fast enough with 6 consoles^^) but they all manage the standup, mabye there is a problem in start_agents that does not differentiate the agents correcly

artifactz commented 11 years ago

how do they manage to stand up synchronously when launched with start_agents.sh while there's a

sleep 2s

in line 8?

ghost commented 11 years ago

that was just badly descripted, they start the fall down after being placed, so its just in parts being simultane, but not synchronously. And I now got them manually with 6 consoles fast enough after each other so that its roughly the same as starting with the script, and they all manage the standup even if other are working at the same time. So mabye the script does not connect them correct?