Thứ Hai, 6 tháng 2, 2017

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)

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ó).

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.