{"id":19414216,"url":"https://github.com/ludovatech/build-robocup-junior-open-soccer-field-tutorial","last_synced_at":"2026-01-28T16:34:19.260Z","repository":{"id":248353516,"uuid":"828327327","full_name":"LudovaTech/build-robocup-junior-open-soccer-field-tutorial","owner":"LudovaTech","description":"Build your own transportable robocup junior open soccer field!","archived":false,"fork":false,"pushed_at":"2025-01-16T01:17:50.000Z","size":9060,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-05T05:14:53.600Z","etag":null,"topics":["do-it-yourself","field","robocup","robocup-junior","robocup-junior-open","tutorial"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LudovaTech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-13T19:45:33.000Z","updated_at":"2025-01-16T01:17:52.000Z","dependencies_parsed_at":"2025-01-07T16:11:16.854Z","dependency_job_id":"fc482808-a3b6-4287-908b-dcb3b94f2fa1","html_url":"https://github.com/LudovaTech/build-robocup-junior-open-soccer-field-tutorial","commit_stats":null,"previous_names":["ludovatech/build-robocup-junior-open-soccer-field-tutorial"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LudovaTech/build-robocup-junior-open-soccer-field-tutorial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LudovaTech%2Fbuild-robocup-junior-open-soccer-field-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LudovaTech%2Fbuild-robocup-junior-open-soccer-field-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LudovaTech%2Fbuild-robocup-junior-open-soccer-field-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LudovaTech%2Fbuild-robocup-junior-open-soccer-field-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LudovaTech","download_url":"https://codeload.github.com/LudovaTech/build-robocup-junior-open-soccer-field-tutorial/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LudovaTech%2Fbuild-robocup-junior-open-soccer-field-tutorial/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28847017,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T15:15:36.453Z","status":"ssl_error","status_checked_at":"2026-01-28T15:15:13.020Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["do-it-yourself","field","robocup","robocup-junior","robocup-junior-open","tutorial"],"created_at":"2024-11-10T12:36:54.986Z","updated_at":"2026-01-28T16:34:19.245Z","avatar_url":"https://github.com/LudovaTech.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Field Construction\n\n![field](./img/terrain_face.jpg)\n\n### Summary\n- [Intro](#intro)\n- [Materials](#materials)\n- [Dimensions](#dimensions)\n- [Fasteners](#fasteners)\n- [Paint and logos](#paint-and-logos)\n- [Assembly and transport](#assembly-and-transport)\n- [License](#license)\n\n## Intro\nTo conduct our tests under the **best conditions**, we decided to create our own soccer field. The goal is to precisely adhere to the dimensions of conventional RoboCup Junior fields and to be easily **transportable**. We will now outline our entire construction process so that you can reproduce it **yourself**.\n\n## Materials\nFor the construction of the walls and goals, we decided to use **pine/fir** wood. This type of wood is strong enough for our purposes and is very easy to transport due to its low weight. \\\n\u003cimg src=\"./img/bois.jpg\" alt=\"drawing\" height=\"170\"/\u003e\n\nThe field surface itself is simply a piece of **carpet** that we cut and stitched according to the conventional competition dimensions. We chose it for its green color and durability. However, it is quite heavy, so it is advisable to find a thinner carpet. \\\n\u003cimg src=\"./img/tapis.jpg\" alt=\"drawing\" height=\"170\"/\u003e\n\nFinally, the hinges are made out of **metal** for added strength. \\\n\u003cimg src=\"./img/charniere.jpg\" alt=\"drawing\" height=\"170\"/\u003e\n\n## Dimensions\nDuring the design of our field, we decided to create walls that could fold, unfold, and interlock easily. Therefore, we chose to cut the longer walls into three parts of the same dimensions: **81 x 15 x 1,8 cm**.\n![lenght](./img/longueur.png)\n\nThe width is composed of two boards with the following dimensions: **93 x 15 x 1,8 cm**.\n![width](./img/largeur.png)\n\nThe goals adhere to more precise dimensions. A goal is composed of:\n- Two boards for the sides of the goals with the following dimensions: **7,4 x 10 x 1,8 cm**\n- One board for the back of the goals with the following dimensions: **64 x 10 x 1,8 cm**\n- One board for the top of the goals with the following dimensions: **64 x 4 x 1,8 cm**\n\n![goal](./img/goal.png)\n\u003e [!TIP]\n\u003e To make your life easier, you can ask a hardware store to do the cutting for you.\n\nThe carpet respects the dimensions of the conventional field but has margins of 3 cm on each side. So, here are its dimensions: **188 x 249 cm**.\n\nThe hinges used to attach the boards together have a height of **less than 15 cm**.\n\n## Fasteners\nTo secure the boards next to each other, we used **metal hinges** capable of unfolding to 180°. These hinges are attached to the boards with **screws** of length **less than 1.8 cm**. \\\nFor the width, a single hinge is used to attach the two boards each 93 cm long. \\\nFor the length, two hinges are used. Attach the first two boards, each 81 cm long, with one hinge, then attach the second board to a third board with a hinge placed on the **opposite side** to the wall of the first hinge.\n\u003e [!WARNING]\n\u003e Make sure to position the hinges between the boards accurately and orient them precisely in the width direction. \\\n\u003e When you fold the lengthwise boards, they should form a 'Z' shape.\n![z](./img/z.jpg)\n\nNow that the walls are created, they need to be assembled together. We used a different type of hinge for this: **butt hinges**. These hinges must be fixed in all four interior corners of the field. For the widths, install the butt hinges on the same side as the other hinges. The choice of side for the lengths does not matter.\n\u003e [!WARNING]\n\u003e The widths of the field must frame the lengths. This means the ends of the lengths must touch the inside edges of the widths. \\\n\u003e Ensure you consider the size of your butt hinges and position them correctly so they can interlock smoothly without any issues. \\\n\u003e Position the butt hinges at the same height so that any width can be fixed to any length.\n\n![assemblage](./img/assemblage.png)\n![corner](./img/coin.jpg)\n\nFor creating the goals, we used **wood glue** and **nails**. Apply glue along the thickness of the two smaller side boards, then attach them to the back board of the goals. Next, glue the last prepared board onto the tops of the goals. After the glue has dried, reinforce the goals by driving nails perpendicularly through the glued surfaces.\n![goal](./img/goal2.png)\n![nail](./img/clou.jpg)\n\n## Paint and logos\nWe painted the walls and goals using **spray cans** of color. **Matte** black was used for the walls and the backs of the goals to minimize reflections as much as possible. For the goals, bright yellow and light blue were applied. Finally, after the paint on the walls dried, we drew our logos using a white marker and stencils.\n![logo1](./img/logo1.jpg)\n![logo2](./img/logo2.jpg)\n\n\u003e [!TIP]\n\u003e For painting the goals, you can cover the already painted surfaces with masking tape to prevent accidental staining or repainting. \\\n\u003e Consider applying multiple layers for a better result. \\\n\u003e You can create your own stencils by cutting out a sheet with your logo printed on it.\n\n\nSince our robot doesn't use lines on the field for navigation, we didn't need to recreate them. However, if you need them, you can neatly trace the edges of the lines with a pen and then paint them with a brush or paint roller using white paint.\n\u003e [!TIP]\n\u003e You can still use masking tape to enhance the final result.\n\n## Assembly and transport\nNow that the walls, goals, and floor are done, you can transport and assemble your field anywhere! 🥳 Simply unroll your green carpet, unfold the walls, assemble them, and place the goals! All the equipment for the field can easily fit into one or two large bags!\n![field2](./img/vuedessus.jpg)\n![tidy](./img/range.jpg)\n\n## License\n\u003cp xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dct=\"http://purl.org/dc/terms/\"\u003e\u003ca property=\"dct:title\" rel=\"cc:attributionURL\" href=\"https://github.com/LudovaTech/build-robocup-junior-open-soccer-field-tutorial\"\u003ebuild-robocup-junior-open-soccer-field-tutorial\u003c/a\u003e by \u003ca rel=\"cc:attributionURL dct:creator\" property=\"cc:attributionName\" href=\"https://github.com/LudovaTech\"\u003eLudovaTech (Gandalfph)\u003c/a\u003e is licensed under \u003ca href=\"https://creativecommons.org/licenses/by-nc-sa/4.0/?ref=chooser-v1\" target=\"_blank\" rel=\"license noopener noreferrer\" style=\"display:inline-block;\"\u003eCC BY-NC-SA 4.0\u003cimg style=\"height:22px!important;margin-left:3px;vertical-align:text-bottom;\" src=\"https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1\" alt=\"\"\u003e\u003cimg style=\"height:22px!important;margin-left:3px;vertical-align:text-bottom;\" src=\"https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1\" alt=\"\"\u003e\u003cimg style=\"height:22px!important;margin-left:3px;vertical-align:text-bottom;\" src=\"https://mirrors.creativecommons.org/presskit/icons/nc.svg?ref=chooser-v1\" alt=\"\"\u003e\u003cimg style=\"height:22px!important;margin-left:3px;vertical-align:text-bottom;\" src=\"https://mirrors.creativecommons.org/presskit/icons/sa.svg?ref=chooser-v1\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fludovatech%2Fbuild-robocup-junior-open-soccer-field-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fludovatech%2Fbuild-robocup-junior-open-soccer-field-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fludovatech%2Fbuild-robocup-junior-open-soccer-field-tutorial/lists"}