2010-01-15 28 views
12

Tôi là nhà phát triển phần mềm có nền phát triển Web của Microsoft. Như một vấn đề quan tâm thuần túy và âm mưu, tôi rất muốn tìm hiểu thêm về những gì đi vào làm cho xe tự trị hoặc công nghệ xe nói chung (điều khiển hành trình thích nghi, tự đậu xe, vv).Thách thức lớn của Darpa/Xe tự trị

Có ai ở đây có kinh nghiệm quá khứ với loại công nghệ này hoặc có bộ sách, trang web, khung phát triển, dự án mã nguồn mở, v.v. hữu ích không?

Cảm ơn!

*** Edit - Bao gồm một số phản ứng tôi nhận được từ đội DARPA khác nhau qua email: *

Aaron từ Cornell đã viết:

Check-out http://code.google.com/p/cornell-urban-challenge/

Mike từ Stanford đã viết:

Về mặt tham gia robot, có một vài nguồn mở bộ công cụ robot trên web (Player/Stage, CARMEN, Willow Garages hệ điều hành rô bốt, bộ công cụ robot microsoft) có thể đáng để nghiên cứu. Tuy nhiên, đây không phải là phương tiện chuyên chở. Có rất nhiều bài báo khoa học về các nhóm DARPA khác nhau đã tiến gần đến mức lái xe tự trị. Cho rằng tôi sẽ đề nghị các tạp chí của trường Robotics. Họ có một số vấn đề dành cho cả Thách thức lớn và Thách thức đô thị. Cuối cùng, nếu có một cuộc thi khác, chắc chắn tìm kiếm một đội và tình nguyện viên ở gần đó. Đối với cả hai chủng tộc, chúng tôi có một số người không thuộc trường đại học nhưng đã sẵn sàng làm việc chăm chỉ và đóng góp.

John từ Osh Kosh đã viết:

Đối với sách vv, bắt đầu ở đây: http://www.amazon.com/s/ref=nb_sb_ss_i_3_5?url=search-alias%3Daps&field-keywords=darpa+urban+challenge&sprefix=DARPA

Ngoài ra còn có rất nhiều tài liệu trên trang web, chẳng hạn như Google Scholar, mặc dù hầu hết các trang trắng bạn sẽ tìm thấy là "nghiên cứu", và không đi sâu vào khía cạnh mã hóa quá nhiều. Bạn có thể muốn xem xét tham gia Hiệp hội Hệ thống Giao thông Thông minh IEEE; họ xuất bản các bài báo trên tất cả các phương pháp nghiên cứu và ứng dụng công nghệ.

Chúng tôi đã sử dụng C++ trên máy Linux để xử lý cảm biến và C# trên máy Windows để lập trình tự chủ.

Mặc dù tôi không sử dụng bản thân mình, đây là một liên kết tới một SDK của một số người tại Đại học Stanford. http://kartorobotics.com/

Chúc may mắn!

+0

Tôi đã tham gia cả DARPA GC và tôi không biết về cuốn sách! Đó là tiền ngay tại đó! –

Trả lời

3

Dữ liệu cảm biến (như Project Natal cho XBOX) và A.I. lưới thần kinh phát hiện các tính năng địa hình và phân loại chúng bằng bộ lọc Bayesian bằng cách sử dụng phần lớn bộ mã hóa C và inline. Chắc chắn, có GPS và tất cả những điều đó, nhưng GPS, thậm chí GPS quân sự cũng là điều đáng tiếc cho việc ra quyết định trong thời gian thực.Tôi sẽ xem xét mã nhận dạng khuôn mặt, như Intel's OpenCV library và nhận dạng giọng nói, như VoxForge, khi chúng xử lý việc phát hiện đối tượng trực quan (không gian) và học máy (mô hình xác suất) tương ứng. Kiến thức về kiến ​​trúc Arduino sẽ cho phép mã hóa đơn giản để truyền lệnh đến các hành động vật lý của động cơ vi mô điều khiển chiếc xe. Sau đó nó chỉ là một tấn gỡ lỗi.

2

Kiểm tra lưu trữ của GPS World đối với một số nội dung cấp cao. Thực hiện tìm kiếm "DARPA" để đưa ra một số bài viết cho các thử thách đô thị và lớn.

9

Tôi làm việc với các trình điều khiển tự động ở tất cả các cấp (cơ khí, điện tử và phần mềm) và đó là rất nhiều công việc.

Ở cấp độ cơ học, bạn cần tạo hoặc trang bị thêm nền tảng di động để có thể chấp nhận tự động hóa. Tôi sẽ đăng kinh nghiệm của mình với một trong những dự án của tôi để thể hiện cuộc thảo luận.

Dự án của tôi dựa trên ATV xăng nhỏ (100cc). Trong giai đoạn cơ khí, tôi phải chuẩn bị ATV để nhận tất cả các thiết bị cho tự động hóa. Ví dụ, cắt các tay lái, cài đặt ròng rọc, đặt khung kim loại để lắp đặt mô tơ servo, cài đặt chiết áp trên trục tay lái để đóng vòng điều khiển tay lái, v.v.

Sau đó, bạn phải thực hiện một số nghiên cứu và chỉ định động cơ cho tự động hóa . Ví dụ, chúng tôi đã phải làm một số thử nghiệm hiện trường để xác định lực lượng mà chúng ta (con người) áp dụng cho tay lái để điều khiển ATV trong nhiều tình huống là gì và tốc độ góc của tay lái là bao nhiêu. Với thông tin đó, bạn cần phải tìm một động cơ và hộp số cho phép bắt chước loại chuyển động đó.

Sau đó, đi kèm một lớp ở trên, các thiết bị điện tử để điều khiển. Chúng tôi đã chọn mua bộ điều khiển động cơ khỏi giá. Về cơ bản bạn đưa ra một lệnh (thường là một lệnh nối tiếp) có chứa tốc độ tham chiếu hoặc (trong trường hợp của chúng ta) là một vị trí tham chiếu cho các mô tơ servo. Rõ ràng chúng tôi đã có một số động cơ để kiểm soát. Chỉ đạo, phanh trước, hệ thống phanh sau, chuyển số, tăng tốc.

Sau đó, chúng tôi đã tạo phần mềm chạy trên máy tính tích hợp để điều khiển bộ điều khiển động cơ. Tại thời điểm này, chúng tôi đã có một rô-bốt di động mà chúng tôi có thể lái xe bằng cách sử dụng một máy tính từ xa thông qua WiFi, nhưng không tự động.

Giai đoạn tiếp theo đang cài đặt, thu thập và xử lý tín hiệu từ cảm biến. Chúng tôi có 2 đơn vị GPS, gia tốc kế, con quay hồi chuyển và từ kế. Chúng tôi đã nhận được đầu vào từ tất cả các cảm biến này và tạo ra ước tính vectơ vị trí (góc Euler), vectơ động (vận tốc, gia tốc) và ước tính vị trí hiện tại cho khung tham chiếu (bản đồ). Ngày nay, chúng tôi sẽ chọn mua một IMU tích hợp (đơn vị đo quán tính) thay vì phải tự làm việc và lo lắng với những thứ như bù nhiệt độ và thiết kế bộ lọc Kalman.

Khi bạn hoàn thành tất cả những điều này, bạn cần xử lý tất cả thông tin đó và đưa hệ thống hành động vào kết quả, với mục tiêu được xác định trước (đi từ điểm A đến điểm B chẳng hạn). Chúng tôi đã sử dụng Hành vi dựa trên Robotics được triển khai trong C#. Bạn có thể lập trình những hành vi nhỏ này trong các lớp. Ví dụ: bạn tạo các hành vi như BehBatteryLow sẽ phát ra báo thức nếu mức pin giảm xuống dưới ngưỡng. Đây là những hành vi cấp thấp có thể bị bao hàm bởi các hành vi cấp cao hơn như BehAvoidObstacle hoặc BehNavigateToWaypoint. Hành vi có thể xung đột, vì vậy bạn cần những thứ như Arbiters.

"Hành vi dựa Robotics" của Ronald C. Arkin là một điểm khởi đầu tốt, nhưng bằng cách googling một số từ khóa từ bài viết của tôi bạn có thể nhận được đến một số địa điểm thú vị là tốt.

Chúc mừng và chúc bạn may mắn!

Các vấn đề liên quan