-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improvement of the competition for the IROS edition #95
Comments
i forgot one thing! the imu sucks. 50hz really makes for lousy orientation measurement, it works but its laggy and drifts even with attempting to tune either madgwicks or Mahony filters. the nao robot imu itself is 100hz which is the minimum really for good orientation measurement. i gather webots can run at 100hz but might be too demanding for two async robot controllers in this scenario. Is there a compromise that could somehow be made for the imu measurement, i wish i had a better suggestion than to simply give the controllers the robots "true" chest orientation as a quaternion. if it was real, we would have the higher update rate and have better orientation data. |
The basic time step of the simulation is set to 20 ms which limits the frequency of sensors to 50 Hz indeed. Lowering this value to 10 ms would allow a frequency of 100 Hz, but that would also slow down significantly the simulation speed and I am not sure Webots would be able to keep up real time in these conditions. I will make make some investigation to evaluate if that is doable. Alternatively, we could add a InertialUnit with some noise. However, the inertial unit device provides ground truth information and doesn't drift at all, which is not very realistic. So, I would like to avoid this option as much as possible. |
I conducted some tests on the competition server and it turns out that with a 10 ms time step, Webots cannot run real-time any more, but approximately 0.5x real time in particular when the robots are colliding with each other. A possibility would be to make Webots run 0.5x real-time on the server and document it. The robot controllers can always use the getTime() method to know the current simulation time. That would also leave twice as much real time for the controllers to compute. The drawback of this approach is that games running on the server would last twice as much time, making the waiting queue last longer than before. We now have to consider what is the most important: having a 100Hz IMU (and other sensors) as well as extra controller compute time or having a fast evaluation queue? I would tend to consider the benefits are higher than the drawbacks. What do you think? Also it would be possible to add more self-hosted runner machines to decrease the queue time. But we have to ensure these runners machine have the same hardware (CPU, GPU, RAM, etc.) so that the resulting games are not dependent on the machine on which the run. However, currently we don't have two exact same machines that we can register as self hosted runners. |
If Webots running at 0.5x real time is viable with the only drawback of the evaluation queue being slower, one potential middle ground would be to limit the number of fights during the qualifiers to either a max number of fights (5 for example) or a limited number of time (20-30 minutes) this way the reduced time would only require people to review what happened and resubmit. it would also capture and contain the times when the evaluation queue bricks. I don't see resubmitting as that much of an issue as it requires participant interaction to climb which is a good thing, many times when submitting and having to wait longer than 20-30 to review the work we would zone out. Having to wait for multiple hours completely derailed development. |
Oh! and with the new addition of selective fights, maybe it would be cool to include "number of fights" "Wins" "loss's", would be fun stats us nerds love. Would also help with things like the "side" wins other mentioned, things such as "most fought controller", "most aggressive controller" etc etc. |
Nice idea. We will have to introduce badges for all those achievements. |
I think something is wrong with the improved KO countdown algorithm in terms of its implementation, or may be I have understood the rule wrong? It would be great if you could please clarify the rule a bit more. |
It is difficult to determine if a robot is right above the other. So, the rule is actually simpler than what you imagined, based on the altitude of the head of the robot. It can be summarized as follow: Definitions:
Rules:
|
This issue lists the improvements that we are going to implement before starting a new edition of the wrestling competition.
participant.json
file, e.g.,"team":["John Smith", "Robert Young", "Paul Parker"]
participant.json
file, e.g.,"organization": "The University of Edinburgh"
docker run --cpuset-cpus=0,4 ...
docker run --cpuset-cpus=1,5,3 ...
docker run --cpuset-cpus=2,6,7 ...
Reduce the strength of the motors to be more realistic.After checking, the current value seems to be correctly calibrated.The text was updated successfully, but these errors were encountered: