[UIT CAR RACING 2023] Training dành cho Bảng Mở rộng – Buổi 1: Làm quen với Webots

Để giúp cho các bạn thí sinh có thể làm quen được với giao diện, cũng như cách tương tác với phần mềm mô phỏng, thì bài viết này sẽ từng bước giúp cho các bạn có thể thành thạo được Webots và hỗ trợ cho cuộc thi sắp tới.
Share

I. HƯỚNG DẪN DOWNLOAD VÀ SETUP PHIÊN BẢN CHO CUỘC THI

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

II. WEBOTS FILES VÀ FOLDERS

  1. 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 
  2. 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.
  3. 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 interpretedJAVA thì cần được cả phải được compiled và interpreted trước khi chạy mô phỏng.

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.
màn hình điều khiển của Webots

2. THANH CÔNG CỤ :

/*Thanh công cụ chính*/
/*Thanh công cụ phụ*/

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ể follow video training dưới đây để có thể hiểu rõ hơn.