Phiên Thực Địa CS
Bối cảnh
Vào mùa hè năm 2020, tôi đã học CSCI370 hay “Kỹ thuật Phần mềm Nâng cao” như một phần của chương trình cử nhân Khoa học Máy tính tại Colorado School of Mines. CSCI370 là một khóa học yêu cầu sinh viên thiết kế, triển khai và tài liệu hóa các giải pháp liên quan đến phần mềm cho một công ty. Khóa học cho phép sinh viên áp dụng kiến thức từ các môn học vào các vấn đề khoa học máy tính trong thế giới thực. Bạn có thể tìm hiểu thêm về khóa học tại đây.
Trong khóa học, bạn được quyết định dự án/công ty mà bạn sẽ làm việc. Khóa học cung cấp các tệp PDF chi tiết về từng dự án và công ty. Cuối cùng tôi quyết định làm việc trên một dự án được đăng bởi một công ty có tên là Lunar Outpost có tên là Phát hiện trượt bánh theo thời gian thực và hiệu chỉnh lỗi cho dẫn đường Mặt Trăng nâng cao. Vì tên dài, chúng tôi đặt bí danh cho dự án là “Phát hiện Trượt Bánh”.
Vấn đề
Lunar Outpost là một công ty khởi nghiệp đang cố gắng tạo ra các rover tự hành cho Mặt Trăng. Trên Mặt Trăng, có rất nhiều bụi trăng được biết đến là gây ra nhiều hiện tượng trượt bánh. Điều này không lý tưởng vì trượt bánh có thể khiến hệ thống tự hành bị mất dấu vị trí thực tế của nó. Trên Trái Đất, điều này được giải quyết bằng cách sử dụng dữ liệu GPS để hiệu chỉnh bất kỳ sai lệch nào do trượt bánh gây ra. Nhưng vấn đề với GPS là nó chỉ hoạt động nhờ có 30+ vệ tinh định vị luôn quay quanh Trái Đất trên quỹ đạo và truyền các tín hiệu độc nhất cho phép các máy tính tính toán vị trí của chúng. Nhưng trên Mặt Trăng, hiện tại không có thứ gì giống như GPS. Biết điều này, một phương pháp khác ngoài GPS phải được sử dụng để phát hiện trượt bánh. Một báo cáo chi tiết hơn về vấn đề của dự án có thể được xem tại đây.
Đồng đội
Dự án này không phải là một dự án đơn giản, vì vậy nó đã phải được thực hiện trong một nhóm. Nhóm gồm năm sinh viên của Colorado School of Mines:
- Mehmet Yilmaz
- Kane Bruce
- Braedon O’Callaghan
- Liam Dempsey
- Kevin Grant
Dự án yêu cầu chúng tôi biết một số ROS, C++, Python, Linux, Raspberry Pi và Arduino. Hầu hết chúng tôi đã có kinh nghiệm về một hoặc nhiều công nghệ này nhưng tôi là người duy nhất có kinh nghiệm với ROS vì tôi đã sử dụng ROS trong lớp Robot Hướng Con Người (Human Centered Robotics - CSC470) vào kỳ Xuân 2020. Do đó, ngay từ đầu, tôi đã giúp mọi người bắt kịp về ROS và cách phát triển cho nó.
Thách thức
Trong dự án này có rất nhiều thách thức. Nhưng thách thức lớn nhất chúng tôi gặp phải là không có quyền truy cập vào một con robot thực tế để thử nghiệm. Điều này là do COVID khiến mọi thứ phải làm việc từ xa và ngăn chúng tôi làm việc trong phòng thí nghiệm/tòa nhà của Lunar Outpost. Do đó, chúng tôi đã phải sử dụng mô phỏng.
Ngoài ra, chúng tôi đã xem qua một số nghiên cứu học thuật từ WVU Navigation Lab để có ý tưởng về cách vấn đề Trượt Bánh có thể được giải quyết cho trường hợp sử dụng của Lunar Outpost. Điều này, đối với chúng tôi là những sinh viên năm hai và năm ba đại học, khó hơn chúng tôi mong đợi.
Một thách thức nữa chúng tôi gặp phải là khoảng thời gian mà chúng tôi có để làm việc cho dự án này. CSCI370 là một lớp học kéo dài một tháng. Nhưng bản thân vấn đề này là một vấn đề lớn mà nhiều công ty và giới học thuật đã cố gắng giải quyết/hoàn thiện trong nhiều thập kỷ. Vì vậy một tháng là rất ít để giải quyết vấn đề này. Nhưng, bất chấp tất cả những thách thức này, chúng tôi đã kiên trì và đảm bảo bàn giao.
Kết luận
Trong bài viết này, tôi rất muốn đưa ra một lời giải thích chi tiết hơn về các giải pháp của chúng tôi. Cũng như cung cấp một kết luận thỏa đáng giải thích những gì chúng tôi khám phá và kết quả cuối cùng. Nhưng thật không may, tôi và các bạn cùng nhóm của mình đều đã ký Thỏa thuận Không Tiết lộ (Non-Disclosure Agreement - NDA) điều này ngăn chúng tôi chia sẻ bất kỳ thông tin bí mật nào về dự án này. Tất cả thông tin tôi cung cấp ở trên đều là công khai và có thể truy cập từ Internet.
Trong dự án này, chúng tôi thực sự đã học cách sử dụng ROS và tạo mô phỏng bằng ROS và Gazebo. Chúng tôi cũng có được sự hiểu biết tốt hơn trong lĩnh vực nghiên cứu phát hiện trượt bánh. Chúng tôi cũng có vinh dự được gặp một số học giả/nhà nghiên cứu từ WVU Navigation Lab.
Biết tất cả những điều này, tôi phải nói rằng dự án này đã cho tôi cơ hội nắm vai trò lãnh đạo trong nhóm, phục vụ như một người hướng dẫn để hỗ trợ các đồng nghiệp của tôi hiểu rõ hơn về ROS, và cung cấp cho tôi nhiều kinh nghiệm hơn về ROS, Gazebo và Python. Nó cũng giúp tôi nhận diện vấn đề trượt bánh, một vấn đề mà tôi chưa nhận thức được cho đến khi làm việc trên dự án này. Nhìn chung, tôi biết ơn vì Lunar Outpost đã dành thời gian trong lịch trình bận rộn của họ, đặc biệt là trong thời kỳ COVID, để cho chúng tôi làm việc trên dự án này. Tôi cũng biết ơn khi có những bạn cùng nhóm tuyệt vời, những người đã làm việc rất chăm chỉ cho dự án này.