Blog FOSS by Lê Trung Nghĩa

https://letrungnghia.mangvn.org

Người máy Ellie sẵn sàng để cạnh tranh

Ellie the robot is ready to compete

Lauren Egts (originally published March 14)

Lauren Egts (Lần đầu được xuất bản vào tháng 3/2014)

Theo: https://opensource.com/education/14/3/fighting-unicorns-robotics-team

Xem thêm: http://vnfoss.blogspot.com/search/label/Open-Hardware


Gặp Ellie, người máy 6 tuần tuổi nặng 100 lbs, có thể liệng bóng với đường kính bằng 2 foot đi xa 10 feet vào không trung! Ellie thậm chí có đôi mắt: một chiếc webcam nằm phía trước khung của nó, sử dụng mã được viết bằng Python chạy trên Raspberry Pi để xử lý các hình ảnh. Mã chính của Ellie được viết bằng Java và cho phép các bánh xe của nó chạy đa hướng, móng vuốt của nó nắm bắt được các quả bóng thể thao, và thanh đẩy của nó liệng đượ các quả bóng vào không trung. Chỉ trong ít tuần Ellie sẽ cạnh tranh cùng với hơn 50 người máy khác trong cuộc thi đầu tiên của nó.

Ellie từng được đội của chúng tôi xây dựng, đội The Fighting Unicorns, một đội của trường trung học phổ thông gồm toàn con gái, nằm ở Shaker Heights, bang Ohio. Đội của chúng tôi đã và đang cạnh tranh trong các cuộc thi người máy kể từ khi nó được khởi xướng vào năm 2008; đặc biệt là cuộc thi người máy vì sự Truyền cảm hứng và Thừa nhận Khoa học và Công nghệ – FIRST (For Inspiration and Recognition of Science and Technology), một cuộc thi thường niên cho học sinh các trường trung học phổ thông mà ở đó họ được yêu cầu thiết kế và xây dựng người máy trong 6 tuần để hướng tới thách thức khác mỗi năm.

Ellie đã ra đời từ khái niệm…

(Photo by Emma Picht)

… người máy được hoàn thành trong 6 tuần!

(Photo by Jordan Harris Purpura)

Qua cuộc thi, FIRST khuyến khích các học sinh và những người hướng dẫn cùng chơi với khẩu hiệu chính của họ: Coopetition. Đây là sự kết hợp của các từ cộng tác và cạnh tranh, và nó truyền tải tới môi trường đầy khích lệ và có tính cộng đồng mạnh của FIRST cũng như các giá trị cốt lõi của phương thức nguồn mở. Trong khi chương trình đó là sự cạnh tranh, thì nó xoay quanh ý tưởng rằng tất cả các đội cộng tác với nhau. Các đội làm việc cùng nhau và giúp đỡ lẫn nhau để chia sẻ các ý tưởng từ mùa chuẩn bị, cho tới mùa xây dựng, cho tới cuộc thi, tất cả với tinh thần chuyên nghiệp tử tế - và tình yêu đối với người máy!

Ở mức lập trình, khía cạnh nguồn mở của FIRST là khổng lồ. Các lập trình viên giúp đỡ lẫn nhau bắt lỗi và mở nguồn mã của họ trên GitHub. Các thành viên chuyên về cơ khí và điện tử của các đội chia sẻ các thiết kế CAD và các chiến lược trên Chief Delphi, diễn đàn trên trực tuyến cho FIRST.

Các lập trình viên của FIRST tụ tập trong các diễn đàn nhỏ của Chief Delphi với các câu hỏi về mã của riêng họ, các câu trả lời hữu ích gồm mã ví dụ, và sự nhiệt tình khổng lồ về mã và cuộc thi. Cùng với mã ví dụ và các câu chuyện vui lập trình, các lập trình viên FIRST đưa ra các bản vá lỗi và tài liệu cho thư viện mã thường có nhiều lỗi và được viết thành tài liệu rải rác đâu đó của FIRST, thư viện có tên là thư viện WPI Robotics (WPILibJ). Những giải thích sâu và các bản sửa lỗi đó giúp các đội cựu binh sửa các vấn đề tồn tại đã lâu và giúp các đội cốt lõi sử dụng thư viện WPILibJ lần đầu.

Đội trưởng lập trình cho The Fighting Unicorns, Lauren Dierker, gần đây đã gặp lập trình viên gạo cội trên Chief Delphi. Bạn đó đã có khả năng sử dụng Chief Delphi để giải thích Java cho lập trình viên mới đó, cộng với cấu trúc lập trình dựa vào lệnh, và chỉ cho anh ta cách viết mã cho các trình kiểm tra và các núm của động cơ. Kinh nghiệm này là rất không bình thường về cả khía cạnh lập trình tạo người máy và trong cộng đồng FIRST như một tổng thể.

Khi mùa đó kết thúc, hầu hết từng đội đều dăng mã của họ trên trực tuyến để cho phép các đội khác truy cập. Nhiều đội FRC, bao gồm cả đội của chúng tôi, sử dụng các website kiểm soát phiên bản, như GitHub, để chia sẻ mã của họ với các đồng đội trong các đội của họ trong FRC và để đặt mã của họ trong quá trình mùa xây dựng. Các site kiểm soát phiên bản như GitHub cho phép chúng tôi truy xuất các phiên bản mã trước đó trong trường hợp có lỗi lập trình, trong trường hợp chúng tôi muốn sử dụng mã cũ chúng tôi đã từng xóa, hoặc để đưa ra mã cơ sở cho ý tưởng mới. Với kiểm soát phiên bản chúng tôi có thể có các nhánh mã khác nhau, cho phép các lập trình viên của chúng tôi làm việc trên mã như nhau cùng lúc, đưa ra cho đội của chúng tôi sự độc lập, năng suất và thành công nhiều hơn. Liên quan tới việc chạy mã từ nhiều nhánh ở cuối mùa, chúng tôi có thể dễ dàng trộn tất cả các tệp vào một nhánh chủ duy nhất. Với các tài nguyên như GitHub, và sự trợ giúp được các đội khác đưa ra, không đội nào là không có khả năng hiểu quy trình lập trình hoặc không có khả năng kết thúc đúng mã vào cuối mùa xây dựng cả.

Đội của chúng tôi đã sử dụng các tài nguyên đó nhiều lần, gồm cả năm nay khi đội của chúng tôi đã quyết định chuyển cách thức chúng tôi thiết lập và xử lý mã của chúng tôi. Thay vì sử dụng FIRST được máy quay IP AXIS cung cấp để chụp lại các hình ảnh và sử dụng cRIO của chúng tôi cho việc xử lý hình ảnh, chúng tôi đã quyết định chụp các hình ảnh cho chúng tôi từ Java, ngôn ngữ lập trình thông thường của chúng tôi, cho tới khía cạnh kết nối mạng của Python. Tài liệu và khuyến cáo được các đội khác của FIRST cung cấp từng là công cụ trong thành công của chúng tôi.

Đứng ở Trung tâm Wolstein ở Cleveland Ohio, chờ cuộc thi người máy bắt đầu là rất kích thích: chúng tôi biết rằng mỗi đội người máy đều rất muốn chiến thắng cũng như đội của chúng tôi, và rằng mỗi người đã phải làm việc trong thời gian dài và cật lực trong 6 tuần để cố gắng xây dựng, kết nối, và lập trình với khả năng tốt nhất của họ. Để xem cuộc thi của chúng tôi và theo dõi sự tiến bộ của chúng tôi, hãy đi tới trang của đội Fighting Unicorns.

(Với tinh thần chuyên nghiệp tử tế, chúng tôi muốn cảm hơn các nhà tài trợ của chúng tôi: Red Hat, HB Parents and Grandparents, NASA, Balance Product Development, UH Ahuja Medical Center, the Egts Family, the Keyerleber Family, Gearing Solutions, HBPA và FirstFuelCells.com. Lauren Dierker là đồng tác giả của bài viết này. Julia Javorsky cũng đã đóng góp cho nó).

Meet Ellie, a six week old robot weighing 100 lbs who can launch a two foot diameter exercise ball over 10 feet in the air! Ellie even has eyes: a webcam fitted to the front of her chassis that uses code written in Python running on a Raspberry Pi to process images. Ellie’s main code is written in Java and allows her mecanum wheels to drive, her claw to catch exercise balls, and her kicker to launch balls into the air. In just a few weeks Ellie will be competing along with more than 50 other robots in her first competition.

Ellie was built by our team, The Fighting Unicorns, an all-girls high school team located in Shaker Heights, Ohio. Our team has been competing in the robotics competitions since our founding in 2008; specifically the FIRST (For Inspiration and Recognition of Science and Technology) Robotics Competition, an annual competition for high school students in which they are tasked to design and build a robot in six weeks geared towards a new challenge each year.

Ellie went from concept...

...to finished robot in 6 weeks!

Throughout competition, FIRST encourages students and mentors to play by their main motto: Coopertition. It's a combination of the words cooperation and competition, and it conveys the strong community and encouraging environment of FIRST as well as the core values of the open source way. While the program is a competition, it hinges upon the idea that all teams collaborate. Teams work together and help each other to share ideas from pre-season, to build-season, to the competition, all in a spirit of gracious professionalism—and a love for robots!

At a programming level, the open source aspect of FIRST is huge. Programmers help each other debug and open source their code on GitHub. Mechanical and electrical members of teams share CAD designs and strategies on Chief Delphi, the online forums for FIRST.

The programmers of FIRST swarm the sub-forums of Chief Delphi with questions about their own code, helpful answers including example code, and sheer enthusiasm for the code and competition. Along with example code and programming jokes, FIRST programmers provide fixes and documentation to the often-buggy and sparsely-documented FIRST provided library of code, the WPI Robotics library (WPILibJ). These in-depth explanations and fixes help veteran teams fix long-lasting problems and help rookie teams using the WPILibJ library for the first time.

The programming captain for The Fighting Unicorns, Lauren Dierker, recently encountered a rookie programmer on Chief Delphi. She was able to use Chief Delphi to explain Java to the new programmer, plus the structure of command-based programming, and show him how to write code for motor controllers and buttons. This experience is far from unusual in both the programming aspect of creating the robot and in the FIRST community as a whole.

When the season ends, almost every team posts their code online to allow other teams access. Many FRC teams, including our team, use version control websites, such as GitHub, to share their code with their teammates in FRC and to host their code during build season. Version control sites like GitHub allow us to retrieve previous versions of code in case of coding errors, in the event that we want to use old code we deleted, or to provide base code for a new idea. With version control we can have different branches of code, allowing our programmers to work on the same code at the same time, giving our team more independence, productivity, and success. When it comes time to run code from multiple branches at the end of the season, we can easily merge all files into a singular master branch. With resources such as GitHub, and help provided by other teams, no team is left without the ability to understand the programming process or without the ability to properly finish the code by the end of build season.

Our team has utilized these resources time after time, including this year when our team decided to switch the way we set up and process our vision code. Instead of using the FIRST provided IP AXIS camera to capture images and using our cRIO for image processing, we decided to capture images with a web camera and process images using a Raspberry Pi. This was a completely new experience for us from Java, our normal programming language, to the networking aspect of Python. The documentation and advice provided by other FIRST teams was instrumental in our success.

Standing in the Wolstein Center in Cleveland Ohio, waiting for the robotics competition to start is electrifying: we know that every single robotics team wants to win just as badly as we do, and that every person will have worked long and hard for six weeks trying to build, wire, and program to the best of their ability. To see our competition and track our progress, go to our Fighting Unicorns team page.

(In the spirit of gracious professionalism, we’d like to thank our sponsors: Red Hat, HB Parents and Grandparents, NASA, Balance Product Development, UH Ahuja Medical Center, the Egts Family, the Keyerleber Family, Gearing Solutions, HBPA and FirstFuelCells.com. Lauren Dierker co-authored this article. Julia Javorsky also contributed to it.)

Dịch: Lê Trung Nghĩa

letrungnghia.foss@gmail.com