Coder Social home page Coder Social logo

cyberbotics / wrestling Goto Github PK

View Code? Open in Web Editor NEW
48.0 29.0 7.0 7.21 MB

Humanoid robot wrestling competition

Home Page: https://webots.cloud/run?version=R2023a&url=https://github.com/cyberbotics/wrestling/blob/main/worlds/wrestling.wbt&type=competition

License: Apache License 2.0

Dockerfile 2.09% Python 84.77% HTML 9.17% JavaScript 0.81% CSS 3.16%
competition humanoid programming robot

wrestling's People

Stargazers

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

Watchers

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

wrestling's Issues

Failure

There was a problem with your controller program.
Look at the action logs for more details.

name of robots for the finals

@omichel
My code was working when I was the participant, but failing when I was the oppoonent. Investigating this, it turned out that using the ROS 2 webots controller, the topics get namespaced by the robot name (as defined in wrestling.wbt), and I was only listening to ROS 2 topics from the participant.

I can get around this, by remapping both /opponent/... and /participant/... topics onto a topic with the same name, but coulld you please clarify that in the finals, the name of the wrestlers willl only be "opponent" or "participant"?

Failure

There was a problem with your controller program.
Look at the action logs for more details.

Failure

There was a problem with your controller program.
Look at the action logs for more details.

Failure

There was a problem with your controller program.
Look at the action logs for more details.

Competiton next year

Dear authors,

thank you very much about orgianizing this competion!
As a big fan of both mixed martial arts and robotcs and autonomous drving, I can't wait to take part in the next competion.
Will you plan to have a competition next year?

Thank you!
Best regards, Kailin

No access to the utils library in the online test

On the try page of the wrestling competition we can only access the robot controller and not the utils folder nor the motion folder. It would be nice if people could directly use them online to help them making functioning controllers.

We would need to change the dockerCompose field in webots.yml but then this will break the default controller name fetch in competition-record-action so it might take a bit of work. What do you think?

Unexpected KO countdown outside the ring

Hello,

During one of the games earlier today, I noticed a "potential" issue with the knockout countdown algorithm when one of the players fell off the ring.
The game was evaluated during CI run #7245, and the full replay of the game is attached below (the important bit starts from 1:45).

wrestling_potential_issue_with_ko_countdown_algo.mp4

I was confused at first, but I believe the KO countdown for the player outside the ring was not continuously triggered because the position of their head was higher compared to the other player (Z coordinate). This change was introduced via #96 according to the following description in #95.

Improve the KO countdown algorithm: when a robot gets below the height threshold, start the countdown for this robot. However, if the other robot gets below the first one, then stop the countdown for the first robot and start it for the second one, etc.

It is probably too late to discuss/change the knockout counter algorithm for the current edition, but I just wanted to bring it to your attention for future reference. :)

Improvement of the competition for the IROS edition

This issue lists the improvements that we are going to implement before starting a new edition of the wrestling competition.

  • Add team members in the participant.json file, e.g., "team":["John Smith", "Robert Young", "Paul Parker"]
  • Add an optional organization in the participant.jsonfile, e.g., "organization": "The University of Edinburgh"
  • Allow more time at the end of the qualification for the participant to update their controllers.
  • Run the final games as best of 5 games (instead of best of 3).
  • Use a better CPU core partitionning:
    • Webots could be assigned CPU 0 (physical) via docker run --cpuset-cpus=0,4 ...
    • The controller of RED robot could run on CPU 1 (physical) + share CPU 3 (physical) via docker run --cpuset-cpus=1,5,3 ...
    • The controller of BLUE robot could run on CPU 2 (physical) + share CPU 3 (physical) via docker run --cpuset-cpus=2,6,7 ...
  • Limit GPU RAM usage (mentioned in the README.md).
  • Reduce a lot the height of the stage to give a chance to robots who fell off to recover by climbing up one small step (done in #96).
  • Reduce the strength of the motors to be more realistic. After checking, the current value seems to be correctly calibrated.
  • Lower the basic time step to 10 ms (instead of 20) to allow for a 100Hz refresh rate of the sensors, including the IMU.
  • Improve the KO countdown algorithm: when a robot gets below the height threshold, start the countdown for this robot. However, if the other robot gets below the first one, then stop the countdown for the first robot and start it for the second one, etc.
  • Leave a little bit more time to the controller dockers to start-up before the game actually starts.
  • Allow a participant to start a game versus another participant of their choice.
  • Give awards to the second and third place.

Are There Restrictions on Participants Per User/Org?

Hey there, I found this a couple days ago and I think it's an amazing project!

I'm in the middle of bootstrapping what's necessary to create competitors in Rust, and I just pushed a Rust wrestler template.

Before I created the robot for my team, I just wanted to make sure the system wasn't going to have problems with me publishing multiple robots from my GitHub organization ( at least one for the public template, and one private one for my team ). There aren't any rules against having multiple robots are there?

Thanks!

Edit: I'm sorry, I just realized GitHub Discussions were enabled for this repository. This should probably be converted to a discussion.

Failure

There was a problem with your controller program.
Look at the action logs for more details.

Repository's fork cannot be turn private

Hi, I did a fork from the main branch and I were unable to turn the repository private.
I was looking some info and I can duplicate the repository to create a private one from the beginning, but will not appear as a fork of the main repo.
There is any workaround for this to participate?

Exiting with error 1

I am encountering following error:
1m 20s
Run cyberbotics/competition-record-action@v1
Run cp -r /home/olivier/actions-runner/_work/_actions/cyberbotics/competition-record-action/v1/metascript .
GPU detected on runner machine: nvidia-docker version 20.10.21
Cloning participant repository: amirhnourian/WebotsNaoWresteling
Cloning opponent repository: cyberbotics/wrestling-david
Building Webots docker
Building participant docker (Amir Hossein Nourian)
Building opponent docker (David (Python))
Running game in Webots: Amir Hossein Nourian versus David (Python)
Notice: Amir Hossein Nourian lost over David (Python)
participants.json was uploaded.
animation.json was uploaded.
Error: Process completed with exit code 1.

What is the problem? my simulation works well on my machine

Add more Docker information

In the competition template we emphasized the use of a Dockerfile for the eventual dependency needs of the participants. Maybe we could add back this subchapter to the README of the wrestling competition:

Docker

Your controller is evaluated in a Docker container. If your robot controller has dependencies, such as some specific libraries, python modules or a complete ROS framework, be sure to update the controllers/Dockerfile to include all these dependencies. The default Webots Docker container includes the tools needed to run and compile simple C, C++ and Python controllers.

[question] hardware specs limitations?

Hi!
I was reading the document about the competition, and it is unclear about the hardware available to run the codes.
There will be some CPU, RAM, or GPU limitations?

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.