Skip to content

How to run the most optimized car simulation

Yannick Goumaz edited this page Jul 7, 2023 · 4 revisions

This page explains step-by-step how to start the most optimized autonomous car controller on jumax-cpu to execute CNN inference on FPGA. Webots is running on jumaxbuild1 to take advantage of the GPU. Both processes communicate through a TCP connection. The detailed results are listed and explained in Deliverable 2: CNN performance comparison CPU/FPGA.

Run the car simulation with a remote controller

  1. Connect to jumaxbuild1 through SSH.
  2. Compile Webots from sources (master branch). Be sure to compile the generic resources (which include the driver library) correctly so that the following steps can be performed without problems.
  3. Start Webots with GUI. You can also start it in headless mode for better results.
  4. Open autonomous_car_test.wbt.
  5. Select the <extern> controller for the car. This way the controller running remotely on jumax-cpu will be able to connect to the instance of Webots.
  6. In a new terminal, connect to jumax-cpu through SSH.
  7. To start the extern controller, use the webots-controller launcher. The IP address of jumaxbuild1 is 192.168.18.3 and the controller connects to the Webots instance through TCP.
    $WEBOTS_HOME/webots-controller --protocol=tcp --ip-address=192.168.18.3 ~/optima/CNN-autonomous-car/controllers/CNN_autonomous_car_fpga_optimized/CNN_autonomous_car_fpga_optimized
    
  8. Once the weights are loaded on the FPGA, the simulation should be able to run at a ratio of ~7 in fast mode.

Clone this wiki locally