# Section 4 小小作業 ### 有遇到任何問題都可以在禮拜三 or Discord 上詢問~ ## 參考資料 如果你真ㄉ不太確定要怎麼做,可以參考一下簡報: {%preview https://docs.google.com/presentation/d/1PU9Gfrb4K3eyQ-kOQVlVpzxIybw-urlxNmHeLBcinYY/edit?usp=sharing %} ## Mac 使用者必看 因為環境問題,Mac 使用者在製作 HW1 前請先執行以下指令 ```bash brew install llvm libomp ``` HW2 請在 Discord 上告知 Kevin,會幫你開一台虛擬機操作作業~ ## HW1: 蒙地卡羅法計算 pi 加速 (50%) 請先執行以下指令將程式碼 clone 下來 ```bash git clone https://github.com/kevin0216/compute-pi.git cd compute-pi git checkout workshop-openmp ``` ### Task > [!TIP] > 請觀察檔案裡有 `TODO:` 的地方,不知道要補上什麼可以去看看簡報 > [!TIP] > 系統中如果沒有 `time` 指令,請用對應系統的安裝指令安裝該套件 - 需要修復 compute_pi.c 中缺少的 OpenMP 描述式 (Statement),請將其補上 - 完成後請執行 - Windows/Linux ```bash make check ``` - macOS ```bash /opt/homebrew/opt/llvm/bin/clang -c -O0 -std=gnu99 -Wall -fopenmp computepi.c -o computepi.o && make check CC=/opt/homebrew/opt/llvm/bin/clang CXX=/opt/homebrew/opt/llvm/bin/clang++ CFLAGS="-O0 -std=gnu99 -Wall -fopenmp" ``` - 執行後應該能看到以下畫面,第一行即為執行速度 (此處為 0.71 及 0.44)  - 調整 time_test.c 中 thread 的數量來取得最佳效能 - 根據自己電腦上的硬體狀況調整,自行調整至最佳速度 - 調整完後請執行上面的編譯指令 ### 評分方式 作業請繳交以下檔案 - 程式碼 (整個 clone 下來的資料夾 zip 打包) - 最佳成績編譯過程的影片 (請在影片一開始錄到你的 moodle 頁面) | 作業繳交狀態 | 給分 | | -------------------------------- | ---- | | 沒有繳交作業 / 錯誤檔案 / 無錄影 | 0 | | baseline 1.5x 速度 | 60 | | baseline 3x 速度 | 100 | ## HW2: Nav2 效率加速 (50%) Windows 使用者請先下載以下檔案: https://drive.google.com/file/d/1ErmTbre_J69UBTmfYIWQNzj_8D-wk8p-/view?usp=drive_link 並輸入以下指令來載入並啟動容器: ```bash docker load --input nav2-humble.latest.tar.gz # If you are Windows User, please run following command wsl # For NVIDIA cards docker run -it --rm --gpus=all --env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --name nav2 nav2-humble:latest bash # For Intel/AMD graphics card docker run -it --rm --env="DISPLAY" --env="AMD_VISIBLE_DEVICES=all" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --name nav2 nav2-humble:latest bash ``` 若已啟動容器/容器已存在,請用以下指令叫出 Docker 環境 ```bash docker exec -it nav2 bash ``` ### Task - 請先用以下指令分別在兩個終端機開啟介面 ```bash source /app/nav2_ws/install/setup.bash export TURTLEBOT3_MODEL=waffle export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp source /usr/share/gazebo/setup.sh ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py ``` ```bash source /app/nav2_ws/install/setup.bash export TURTLEBOT3_MODEL=waffle export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True ``` - 此時應該會看到 Gazebo 跟 Rviz2 的視窗 - 請先按照簡報中說明進行第一次導航 - 此時應該會發現非常慢 - 作業: 請調整 `/app/nav2_ws/src/navigation2/nav2_dwb_controller/dwb_plugins/src/standard_traj_generator.cpp` 中的內容來加速機器人 - 調整後再執行一次,機器人應會相比前一次變得快許多 ### 評分方式 作業請繳交以下檔案 - 操作過程的影片 (請在影片一開始錄到你的 moodle 頁面,影片應包含修改程式碼前+修改程式碼後) | 作業繳交狀態 | 給分 | | -------------------------------- | ---- | | 沒有繳交作業 / 錯誤檔案 / 無錄影 | 0 | | 正確繳交並有明顯改善效率者 | 100 |
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up