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.