IROS 2021
IROS-RSJ Robotic Challenge for Young Students
The Challenge Tutorials Scoreboard

Tutorials

How to run on your machine

It is useful to run on your machine (locally) to develop and improve your program without having to wait for the challenge server to update scores.

Install Webots

🤖 Webots is the open source robot simulator we’ll be using! 🤖

Update July 29th: We confirm we’ll continue using Webots version R2021a

⚠️ Windows: Here is a direct quick link for download: webots-R2021a_setup.exe ⚠️

⚠️ Other platforms: Go to https://cyberbotics.com/#download to download your version. ⚠️

Double-click the downloaded file and follow instructions to install on your computer.

Install Git

💻 We’ll be using Git to download and upload program code! 💻

We’ll be using Git written commands because they are much easier to copy, paste, and modify!! These commands are for you to introduce in a window called Terminal. We’ll highlight the word Terminal upon each appearance so you can click on it, to remember how to reach it.

⚠️ Windows: Here is a direct quick link for download: Git-2.32.0-64-bit.exe ⚠️

⚠️ Ubuntu: In a Terminal, type: sudo apt install git (in this case, download+install is in same step) ⚠️

⚠️ Other platforms: Go to https://git-scm.com/downloads to download your version. ⚠️

Double-click the downloaded file and follow instructions to install on your computer.

Download the Simulated Environments

From a Terminal:

git clone https://github.com/pal-admin/pal-webots-competition-organizer

🔝 This command should be written as a single line within your terminal (it’s a “one-liner”) 🔝

Create Your Robot Controller

It will be convenient to create your Robot Controller from one of the GitHub Templates we have prepared.

⚠️ If you do not have a GitHub account, now is the best time to go to https://github.com and click on the Sign up button at the top! ⚠️

⚠️ Once you have a GitHub account, now is the best time to go to https://github.com and log in via the Sign in button at the top! If not, the next links will lead to a 404 error page. ⚠️

Think about which language of the following 3 options you prefer, and click on it (select only one):

You should see a screen similar to the following (click on the image to zoom), with some slight differences:

  • For C++ you’ll see the -cpp ending (as displayed), for Python the ending will be -py, for MATLAB the ending will be -m.
  • In the Owner field, rather than user-name, you will see your signed in user name.
  • The Repository name field will be empty.

Screenshot: Create C++ robot controller

Please proceed with the following steps:

  1. In the Repository name field, type in participant_controller. You should see the green check to the right appear as in the image.
  2. In the Public/Private selection, the first is typicially selected by default. The paranoid are allowed to select Private, but keep this in mind for later steps of the process.
  3. 🎉 Press the Create repository from template button!! 🎉

Download Your Robot Controller

The command for this is slightly longer than the previous ones. It downloads your robot controller, and is designed to force it into where the robot controller is expected by the simulated enviroment.

From a Terminal (⚠️ in the following command replace user-name your signed in user name from above ⚠️):

git clone https://github.com/user-name/participant_controller pal-webots-competition-organizer/controllers/participant_controller

🔝 This command should be written as a single line within your terminal (it’s a “one-liner”) 🔝

Launch Your Robot Controller

From a Terminal:

webots pal-webots-competition-organizer/worlds/competition1.wbt

🔝 This command should be written as a single line within your terminal (it’s a “one-liner”) 🔝

🔝 Replace the 1 for any value up to 10 to test you robot controller in different worlds! 🔝

⚠️ If you created a C++ robot controller: You must first compile your code. Everything is performed within Webots. From the elements of the left (white background), double-click on DEF PARTICIPANT_ROBOT TiagoBase. Within the newly displayed elements within the same left (white background), click on controller “participant_controller”. Also on the left, you’ll have a new (grey background) zone below, within which you should click on Edit. Your robot controller code will be displayed on the right side (white background). Click on the gear-shaped icon at the top right (grey background), which compiles your code. 🎉 You can now press the Play icon at the top center (grey background)! 🎉 ⚠️

🎉 For Python and MATLAB robot controllers, your robot controller starts automagically! 🎉



Upload Your Modifications and Begin Scoring!

Upload Your Robot Controller Modifications

Run the following commands in order, all from the same Terminal (all “one-liners”):

  1. Go into the folder of your own robot controller:
      cd pal-webots-competition-organizer/controllers/participant_controller
    
  2. Indicate you are happy with the changes on the existing files:
      git add -u
    
  3. Store the changes locally, with a description of the added improvements:
      git commit -m "Any message here, but best if it describes improvements"
    
  4. Upload the changes!
      git push
    

Make it to the scoreboard

⚠️ This step is only required to be performed once per robot controller! ⚠️

This is something the Organizers enable manually, but we require a tiny bit of information from you.

From the Terminal (all “one-liners”):

  1. Go into the folder of your own robot controller:
      cd pal-webots-competition-organizer/controllers/participant_controller
    
  2. Ask for the origin:
      git remote -v
    

You should see a string that is very similar to https://github.com/user-name/participant_controller, where user-name has been replaced with your own signed in name. Copy this string (unmodified, with your own signed in name) and paste it in an email to the organizers at: iros2021challenge@gmail.com

🙂 We understand some of these steps may be tricky! Feel free to contact us to the email stated above for specific enquiries! 🙂

🎉 Voilà! 🎉

PS: The 🏆 Scoreboard 🏆 gets updated every night!!





Additional Documentation