Độc lập (hoặc có khả năng) Robotics Simulator


13

Tôi là một kỹ sư phần mềm tình nguyện với một tổ chức phi lợi nhuận giới thiệu các cô gái trẻ về công nghệ. Gần đây chúng tôi đã nói về các phương pháp giới thiệu những đứa trẻ này với thế giới robot, và tôi tò mò không biết chúng ta có những loại lựa chọn giá rẻ nào.

Một ý tưởng rất hấp dẫn là có một trình giả lập trực tuyến, hoặc (tốt hơn là) một trình giả lập độc lập ngoại tuyến mà chúng ta có thể xây dựng và lập trình các robot đơn giản. Có lẽ không có gì hơn là kéo các thành phần lại với nhau, và sau đó lập trình các tương tác giữa các thành phần đó.

Giải pháp nào tồn tại mà tôi có thể sử dụng để tiếp cận chúng tôi?


Theo kinh nghiệm của tôi, một robot có vẻ ngoài trung bình không hoạt động được chú ý nhiều hơn (như một robot) so với một robot có vẻ ngoài lạnh lùng toàn diện trong một trình giả lập. Miễn là nó không có thật, tất cả có thể là một trò chơi trên máy tính hoặc phim hoạt hình dành cho tất cả trẻ em.
Shahbaz

Chúng tôi cần một trình giả lập để các cô gái thực sự có thể học các khái niệm lập trình và đưa chúng vào sử dụng. Trình mô phỏng không cần phải đẹp - nó có thể không hơn gì những hình dạng hình học thô. Mã là những gì quan trọng.
Sampson

Câu trả lời:


7

Giai đoạn và Gazebo là các trình giả lập 2D và 3D mã nguồn mở tương ứng. Chúng được tạo và duy trì bởi dự án Player . Chúng rất dễ sử dụng và có rất nhiều bản đồ và robot được xây dựng sẵn. Tùy thuộc vào kinh nghiệm của khán giả của bạn, bạn có thể cần thực hiện một chút công việc nặng nhọc (tức là xây dựng các tệp cấu hình và các lớp chính).

Họ có một vài lợi ích bổ sung là tốt. Đầu tiên, miễn là bạn tạo mã điều khiển chính của mình dưới dạng trình cắm của người chơi thì họ có thể dễ dàng thích nghi với các robot thực sự. Thứ hai, có một số lượng lớn các plugin đã được xây dựng để hoạt động với phần cứng thực. Thứ ba, họ làm việc với ROS .


4

Có thể nó là một chút gia vị (CHF 75) nhưng tôi vẫn đề nghị Colobot . Đó là một môi trường đẹp, gần giống như trò chơi, nơi robot cần giúp con người tạo ra một căn cứ không gian có thể ở được. Robot được lập trình bởi những đứa trẻ trong khi các nhiệm vụ ngày càng phức tạp được thực hiện. Chương trình dạy các nguyên tắc cơ bản của lập trình theo cách hài hước, hướng đến mục tiêu.


3

Robotics của Microsoft là MIỄN PHÍ và bao gồm một trình giả lập . Nó không chính xác là môi trường dễ nhất trên thế giới, tuy nhiên nó mạnh mẽ và phù hợp với người máy thực sự. Tôi nghĩ rằng với một số giáo viên tham gia để thiết lập mọi thứ trước đó, nó có thể được sử dụng. Có một 'gói' giả lập cho LEGO, Neato và một số robot khác, và chúng có thể được lập trình bằng C # hoặc ngôn ngữ kéo và thả trực quan.

Một lần nữa, tôi nghĩ rằng nó sẽ cần một số công việc lên phía trước để giúp các bạn trẻ dễ dàng sử dụng, nhưng nó sẽ không khó lắm, và sẽ là cách tiếp cận của tôi đưa ra yêu cầu của bạn. Tôi có thể nói về mức độ phức tạp, điều này (cửa sổ) so với môi trường Linux với Gazebo / ROS, môi trường cửa sổ sẽ hơi phức tạp hơn một chút, mặc dù hầu hết điều đó sẽ được ẩn giấu với công việc chuẩn bị.


2

RobotC có sẵn một trình giả lập , mặc dù cả hai đều là sản phẩm với một số chi phí. Tuy nhiên, họ rất hướng tới sinh viên trẻ và giáo dục. Đây sẽ là con đường dễ nhất và phù hợp nhất nếu chi phí không phải là yếu tố chặn ( khoảng $ 100 mỗi giấy phép cho cả người dùng, $ 300 cho 6 người dùng, $ 600 cho 30 người dùng ).

Nếu bạn mua ROBOTC phiên bản sinh viên với giá MINDSTORMS NXT của LEGO , giá có thể là 49 đô la cho mỗi hoặc 40 đô la (hơn 20 giấy phép)


2

V-Rep (Nền tảng thử nghiệm robot ảo) dường như khá rộng trong các loại mô phỏng mà nó có thể làm. Nó là miễn phí cho mục đích giáo dục và đi kèm với một loạt các công cụ. Bạn có thể xem video YouTube này để xem bản demo.


1

Có thể không phải là một trình giả lập robot đầy đủ nhưng chúng tôi đang sử dụng 3D CAD, Autodesk Inventor, khá nhiều cho việc mô phỏng. Thông thường chúng ta tạo một giao diện cho CAD tương tự như những gì chúng ta muốn nó dành cho phần cứng. Bằng cách đó, chúng ta có thể sử dụng mô hình CAD làm nguyên mẫu ảo để:

  • Bắt lỗi thiết kế sớm. Va chạm, không đủ đột quỵ, vv
  • Nó cũng hữu ích cho việc tìm kiếm sự bù đắp cho các lỗi như lỗi căn chỉnh. Sử dụng CAD, chúng ta có thể mô hình hóa từng lỗi khác nhau và kiểm tra các khoản bồi thường của mình. Thật thuận tiện khi có thể giới thiệu các lỗi lớn với dấu hiệu đã biết.
  • CAD cũng đưa ra câu trả lời về những thứ như quán tính.
  • Chúng tôi cũng sử dụng mô hình CAD để tạo chương trình cho thiết bị.

Sửa lỗi cho tôi nếu tôi sai nhưng CAD tập trung rất nhiều vào việc mô hình hóa phần cứng và vật lý một cách chính xác, ít hơn nhiều vào việc lập trình robot. OP quan tâm đến việc dạy lập trình chứ không phải kỹ thuật, vì vậy tôi nghĩ rằng một hệ thống CAD không giải quyết được vấn đề của anh ấy
ThomasH

@ThomasH chúng tôi đã có một số chương trình thành công cho api của CAD và theo cách đó đã có thể thực hiện rất nhiều sự phát triển. Có nên xóa?
Johan Larsson

1
Không cần phải xóa. Đó không phải là một câu trả lời tồi chỉ vì tôi nghĩ nó không phù hợp với OP. Bỏ phiếu thường đẩy câu trả lời phù hợp nhất lên hàng đầu và OP sẽ chấp nhận câu trả lời giúp ích nhiều nhất. Nhưng bạn vẫn có thể quan tâm đến một người có vấn đề tương tự gặp phải câu hỏi này
ThomasH

1

Bạn có thể muốn xem " MindRover ". Bây giờ nó đã cũ và khó tìm hơn vì trang web gốc không còn tồn tại, nhưng vẫn có thể được tìm thấy trên Ebay hoặc Amazon . Mặc dù trò chơi / nhiệm vụ định hướng, nó liên quan đến việc chọn từ một bảng các thành phần robot, đặt chúng lên khung máy, sau đó nối chúng lại với nhau. Nó thực sự được thực hiện tốt cho một trò chơi và có thể được sử dụng để khám phá các khái niệm đơn giản đến bán nâng cao. Một số ảnh chụp màn hình ở đây: http://images.google.com/images?q=mindrover .

Nếu bạn đang tìm kiếm thứ gì đó nghiêm túc hơn một chút với khả năng của thế giới thực, bạn có thể muốn kiểm tra FlowStone for Education . Tôi chưa sử dụng nó, nhưng tôi tin rằng đây là một môi trường lập trình trực quan phù hợp lý tưởng cho công việc loại robot.

Cuối cùng, mặc dù không phải phần mềm hay mô phỏng, gần đây tôi đã bắt gặp một bình luận trên reddit bởi phblj liên quan đến một kỹ thuật giới thiệu lập trình , và tôi nghĩ nó thực sự tốt (và đặc biệt thích ứng với lập trình robot). Trích dẫn:

Một ví dụ tuyệt vời về máy tính tôi đã làm với trẻ em: Một đứa trẻ đã trở thành "chương trình" và đưa ra hướng dẫn về cách làm bánh sandwich bơ đậu phộng và thạch, nhưng chúng không thể xem hành động của tôi. Tôi là máy tính, và làm theo hướng dẫn chính xác. Kết quả vui nhộn. (Không lấy nắp ra khỏi thanh đậu phộng, không lấy bánh ra khỏi hộp tôi đã có nó). Sau một phút, một đứa trẻ khác đến và thử. Họ đã đi xa hơn một chút, nhưng vẫn còn bối rối. "Đặt bơ đậu phộng vào bánh mì" dẫn đến cái lọ ngồi trên ổ bánh, v.v ... Phải mất vài đứa trẻ, nhưng cuối cùng chúng tôi cũng nhận được. Nếu bạn có một trợ lý, hãy nhờ họ viết hướng dẫn như họ đã nói, tạo ra "chương trình".

Sau đó, bạn có thể giải thích, nhưng điều thực sự bế tắc là bọn trẻ mỗi đứa "thông minh hơn máy tính". Nhưng máy tính đó thực sự rất nhanh theo hướng dẫn. Vì vậy, họ cần phải sử dụng thông minh của họ và tốc độ máy tính, và ... lập trình!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.