I. Giới thiệu về Webots
Webots là một trình mô phỏng rô bốt 3D mã nguồn mở và miễn phí cho Gnu / Linux, MacOS và Windows. Phần mềm mô phỏng robot di động này thường được sử dụng cho mục đích giáo dục. Dự án Webots được bắt đầu vào năm 1996 bởi Tiến sĩ Oliver Michel tại Viện Công nghệ Liên bang Thụy Sĩ EPFL ở Lausanne. Một trong những ưu điểm chính của nó là nó cho phép người dùng tương tác với mô hình trong quá trình mô phỏng.
Với phần mềm này, người dùng có thể mô hình hóa, lập trình và mô phỏng vũ khí công nghiệp, xe hai chân, phương tiện hàng không vũ trụ, robot nhiều chân, robot mô-đun, ô tô, máy bay không người lái, phương tiện tự hành dưới nước và tất cả các loại robot. Chúng ta có thể tìm thấy các ví dụ về rô bốt, cảm biến, thư viện tài sản của các đối tượng và vật liệu để dễ dàng thiết kế.
Phần mềm này cũng bao gồm một số cảm biến và thiết bị truyền động thường được sử dụng trong robot, với các mô hình động tương ứng của chúng. Còn gì nữa điều khiển robot có thể được viết bằng C, C ++, Java, Python, Matlab và ROS.
II. Hướng dẫn tải và cài đặt phiên bản Webots sử dụng cho cuộc thi
Hiện tại, nền tảng Webots đã phát triển và có nhiều phiên bản khác nhau, đối với UIT Car Racing 2024 năm nay, chúng mình sẽ sử dụng Webots phiên bản 2021b. Các bạn có thể sử dụng phiên bản mới hơn nhưng BTC khuyến khích các bạn sử dụng phiên bản này để BTC thuận tiện hỗ trợ các bạn khi cần thiết
B1 : Cài đặt phần mềm mô phỏng Webots 2021b (Các bạn có thể lựa chọn tỳ thuộc vào hệ điều hành của máy mình.)
-> Link download : https://github.com/cyberbotics/webots/releases/tag/R2021b
B2 : Setup phần mềm cho cuộc thi (Các bạn có thể lựa chọn tỳ thuộc vào hệ điều hành của máy mình.)
-> Link Hướng dẫn Set Up : https://cyberbotics.com/doc/guide/installation-procedure#installation-on-windows
III. Webots file và folders
- MÔ TẢ CỦA WEBOTS :
- Phần mềm mô phỏng Webots bao gồm world file (.wbt) mô tả robot và môi trường.
- Những files controller (C/C++/Java/Python/MATLAB) dùng đểđiều khiển robot
- WORLD TRONG WEBOTS :
- World trong Webots là mô tả 3D về các đối tượng, bao gồm vị trí, hình dạng, màu sắc, tính chất vật lý và kết cấu hệ thống các đối tượng. World được tổ chức theo cấu trúc phân cấp và lưu dưới dạng tệp “.wbt”. được lưu trữ trong folder “worlds” của mỗi dự án Webots.
- CHƯƠN TRÌNH ĐIỀU KHIỂN ( CONTROLLER ) :
- Webots controller là một chương trình máy tính viết bằng các ngôn ngữ hỗ trợ (C, C++, Java, Python hoặc MATLAB), được kết nối với robot được xác định trong world file (.wbt) . Các chương trình điều khiển được thiết kế để kiểm soát hành vi và tương tác của robot trong mô phỏng Webots. Và những file chương trình này được đặt trong folder “controllers” của mỗi dự án Webots
| CHÚ Ý : Ngôn ngữ C/C++ cần được compiled , Python và MATLAB cần được interpreted và JAVA thì cần được cả phải được compiled và interpreted trước khi chạy mô phỏng.
IV. Công cụ điều khiển trong Webots
1. MÀN HÌNH ĐIỀU KHIỂN CHÍNH :
Giao diện người dùng (GUI) của Webots bao gồm bốn cửa sổ chính :
- “Window 3D” hiển thị và cho phép bạn tương tác với mô phỏng 3D của Webot,
- “Scene Tree” ( khung phía bên tay trái ) hiển thị biểu diễn phân cấp của các vật thể và thuộc tính của thế giới mô phỏng hiện tại,
- “Text editor” ( khung phía bên tay phải ) cho phép bạn chỉnh sửa code controller
- Cuối cùng là màn hình “Console” hiển thị cả kết quả biên dịch lẫn điều khiển.
2. THANH CÔNG CỤ :
FILE MENU
Menu “File” cho phép bạn thực hiện các thao tác tệp thông thường: tải , lưu các tệp , v.v. Tuy nhiên với phạm trù của cuộc thi thì các bạn thí sinh sẽ không cần quan tâm đến các đề mục khác mà chỉ có thể tương tác với các mục sau :
Mục “Open World” cho phép bạn chọn một tệp “.wbt” để tải lên phần mềm mô phỏng .Tương tự với mục “Open Recent World” phía bên dưới cung cấp khả năng mở lại một tệp “.wbt” đã được mở gần đây. Ngoài ra bạn còn có thể truy cập các file (.wbt) bằng thanh công cụ phụ .
Mục “Save World” lưu file “world“ hiện tại bằng cách sử dụng tên tệp hiện tại (tên tệp xuất hiện ở trên đầu cửa sổ chính). Mỗi lần lưu, nội dung của tệp “.wbt” sẽ bị ghi đè và Webots không tạo bản sao lưu. Do đó, bạn cần sử dụng nút này cẩn thận và có thể tạo bản sao lưu một cách thủ công nếu cần.
Mục “Reload World” sẽ tải lại file “world” hiện tại từ phiên bản đã lưu trước đó và khởi động lại mô phỏng từ đầu .
Mục “Reset Simulation” sẽ khôi phục lại trạng thái ban đầu của mô phỏng. Mô phỏng sẽ không bị xóa hoàn toàn mà chỉ là xây dựng lại mọi thứ như khi mới reload, và chỉ khôi phục lại trạng thái ban đầu của mô phỏng, điều này sẽ nhanh hơn nhiều so với reload.
Mục “New Text File” sẽ mở một tệp text trống trong text editor.
Mục “Open Text File” ( ở trên thanh công cụ phía text editor ) cho phép bạn chọn một file code (ví dụ: file “.java”) để tải lên phần mềm mô phỏng .
Mục “Save Text File” ( ở trên thanh công cụ phía text editor ) sẽ giúp bạn lưu file code hiện tại.
Mục “Revert Text File” ( ở trên thanh công cụ phía text editor ) sẽ tải lại file code từ phiên bản đã lưu trước đó ( Lưu ý : sau khi bấm save file code thì sẽ bị ghi đè lên mục lưu trước đó ).
VIEW MENU
Phần “View” cho phép bạn điều khiển góc nhìn trong cửa sổ mô phỏng.
Ngoài ra phần “Follow Object” cho phép bạn chuyển đổi giữa một điểm nhìn cố định và một góc nhìn di chuyển theo đối tượng (chiếc xe của các bạn) .
Bạn có thể tuỳ chỉnh theo các bước sau :
B1 : Chọn đối tượng bạn muốn xem
- Click chuột vào đối tượng trên màn hình điều khiển hoặc bạn có thể chọn đối tượng bạn muốn thông qua các đối tượng được hiển thị trên “Scence tree”.
B2 : Thay đổi góc nhìn
- Nếu bạn muốn tuỳ chỉnh góc nhìn cố định thì chọn Mục “View” -> “Change view” hoặc chọn trên thanh công cụ phụ để thay đổi góc nhìn.
- Tương tự cho việc thay đổi sang góc nhìn di động thì chọn mục “View” -> “Follow object” . Tới đây bạn có thể tuỳ chỉnh “Tracking Shot” : follow theo vật thể ( chiếc xe ) nhưng không xoay màn hình , “Mounted Shot” : follow và xoay theo vật thể ( chiếc xe ) , “Pan and Tilt Shot” : Follow và có góc nhìn tổng quát.
Mục “Restore Viewpoint” khôi phục lại vị trí và góc nhìn ban đầu (Lưu ý : góc nhìn ban đầu cũng sẽ được ghi đè lên nếu bạn save file .wbt )
SIMULATION MENU
Phần “Simulation” sẽ giúp các bạn có thể điều khiển được mô phỏng.
Mục “Pause” tạm dừng mô phỏng.
Mục “Step” thực hiện từng step dựa trên thời gian trong mô phỏng. Và thời gian của bước này được xác định trong trường basicTimeStep của Node WorldInfo (Chú ý : TIMESTEP đã được quy đinh chung bởi BTC nên các bạn thí sinh không được phép tuỳ chỉnh ).
Mục “Real-time” sẽ bắt đầu chạy mô phỏng theo thời gian thực cho đến khi bị tạm dừng bởi nút “Pause” hoặc “Step”.
Mục “Fast” tương tự như “Real-time”, nhưng chạy nhanh hơn và không bị giới hạn bởi thời gian thực. Khi ở chế độ nhanh, hiển thị 3D của cảnh được cập nhật mỗi n bước thời gian cơ bản, với n được xác định trong trường displayRefresh của node WorldInfo.
WIZARD MENU
Tiếp đến , phần “Wizard” cũng là một mục khá quan trong cho các thí sinh khi muốn tạo mới một file controller. Chọn mục “Wizard” -> “next” -> “Chọn ngôn ngữ” -> “Webots” -> “Đặt tên file code” -> “next”. Vậy là bạn đã có thể tạo mới một file code của mình.
|| Ngoài ra các bạn có thể xem video training dưới đây để có thể hiểu rõ hơn.