From 650d01b00cbb1e99cb64b24dbba967ef0173648e Mon Sep 17 00:00:00 2001 From: "Takagi, Isamu" Date: Tue, 18 Jun 2024 17:18:16 +0900 Subject: [PATCH] ci: add pre-commit Signed-off-by: Takagi, Isamu --- .github/ PULL_REQUEST_TEMPLATE.md | 9 +---- .github/PULL_REQUEST_TEMPLATE/small_change.md | 7 ---- .../PULL_REQUEST_TEMPLATE/standard_change.md | 15 -------- .github/workflows/documentation.yaml | 34 +++++++++---------- .github/workflows/pre-commit.yaml | 14 ++++++++ .markdown-link-check.json | 3 ++ .pre-commit-config.yaml | 6 ++++ docs/course/index.ja.md | 1 - docs/course/perception.md | 26 ++++++++------ docs/course/vehicle.md | 3 +- docs/course/velocity_planning.md | 29 ++++++++-------- docs/development/main-module.ja.md | 17 +++++----- docs/development/requirements.ja.md | 2 +- docs/development/visible-simulation.ja.md | 2 +- docs/development/workspace.ja.md | 4 +-- docs/getting-started.ja.md | 2 +- mkdocs.yaml | 4 +-- 17 files changed, 86 insertions(+), 92 deletions(-) delete mode 100644 .github/PULL_REQUEST_TEMPLATE/small_change.md delete mode 100644 .github/PULL_REQUEST_TEMPLATE/standard_change.md create mode 100644 .github/workflows/pre-commit.yaml create mode 100644 .markdown-link-check.json diff --git a/.github/ PULL_REQUEST_TEMPLATE.md b/.github/ PULL_REQUEST_TEMPLATE.md index 682ce2a..f719117 100644 --- a/.github/ PULL_REQUEST_TEMPLATE.md +++ b/.github/ PULL_REQUEST_TEMPLATE.md @@ -1,8 +1 @@ -**Note**: Confirm the [contribution guidelines](https://autowarefoundation.github.io/autoware-documentation/main/contributing/) before submitting a pull request. - -Click the `Preview` tab and select a PR template: - -- [Standard change](?expand=1&template=standard-change.md) -- [Small change](?expand=1&template=small-change.md) - -**Do NOT send a PR with this description.** \ No newline at end of file +# Description diff --git a/.github/PULL_REQUEST_TEMPLATE/small_change.md b/.github/PULL_REQUEST_TEMPLATE/small_change.md deleted file mode 100644 index 3af5245..0000000 --- a/.github/PULL_REQUEST_TEMPLATE/small_change.md +++ /dev/null @@ -1,7 +0,0 @@ -## Description - - - -## Approve Criteria - - diff --git a/.github/PULL_REQUEST_TEMPLATE/standard_change.md b/.github/PULL_REQUEST_TEMPLATE/standard_change.md deleted file mode 100644 index 461b3c7..0000000 --- a/.github/PULL_REQUEST_TEMPLATE/standard_change.md +++ /dev/null @@ -1,15 +0,0 @@ -## Description - - - -## Related links - - - -## Tests performed - - - -## Notes for reviewers - - diff --git a/.github/workflows/documentation.yaml b/.github/workflows/documentation.yaml index 0258788..c56d03b 100644 --- a/.github/workflows/documentation.yaml +++ b/.github/workflows/documentation.yaml @@ -9,24 +9,24 @@ jobs: deploy-docs: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.x' + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: 3.x - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt - - name: Build the MkDocs documentation - run: mkdocs build + - name: Build the MkDocs documentation + run: mkdocs build - - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./site + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./site diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml new file mode 100644 index 0000000..524f04f --- /dev/null +++ b/.github/workflows/pre-commit.yaml @@ -0,0 +1,14 @@ +name: pre-commit + +on: + pull_request: + push: + branches: [main] + +jobs: + pre-commit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v3 + - uses: pre-commit/action@v3.0.1 diff --git a/.markdown-link-check.json b/.markdown-link-check.json new file mode 100644 index 0000000..db8598f --- /dev/null +++ b/.markdown-link-check.json @@ -0,0 +1,3 @@ +{ + "aliveStatusCodes": [200, 206] +} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 51fa6cc..f0bfb44 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -24,3 +24,9 @@ repos: rev: v1.30.0 hooks: - id: yamllint + + # - repo: https://github.com/tcort/markdown-link-check + # rev: v3.12.2 + # hooks: + # - id: markdown-link-check + # args: [--quiet, --config=.markdown-link-check.json] diff --git a/docs/course/index.ja.md b/docs/course/index.ja.md index ea99d03..7eeb8ca 100644 --- a/docs/course/index.ja.md +++ b/docs/course/index.ja.md @@ -22,7 +22,6 @@ sudo apt install python3-vcstool sudo apt install python3-colcon-common-extensions ``` - 任意のディレクトリにて入門講座のリポジトリをクローンし、ビルドを行ってください。 ```bash diff --git a/docs/course/perception.md b/docs/course/perception.md index c7ec3c6..7887eff 100644 --- a/docs/course/perception.md +++ b/docs/course/perception.md @@ -3,25 +3,29 @@ 安全な自動運転を行うために、障害物を認識し必要に応じて回避する必要があります。ここでは図のように、障害物を認識して回避しながら目標地点に到達することを目指します。 ![avoidance_planning](images/3-1/avoidance_planning.png) + ## 03-01. lidarから点群を取得し障害物検知をする 自動運転車両では、障害物を認識するために様々なセンサーが使用されます。代表的なセンサーには以下のものがあります: 1. **LiDAR(Light Detection and Ranging)**: - - レーザー光を発射し、物体に当たって戻ってくるまでの時間を測定することで距離を計測します。 - - 高精度な3D点群データを生成し、周囲の環境を詳細に把握できます。 + + - レーザー光を発射し、物体に当たって戻ってくるまでの時間を測定することで距離を計測します。 + - 高精度な3D点群データを生成し、周囲の環境を詳細に把握できます。 + 2. **カメラ**: - - 光学センサーを使用して画像を取得します。 - - 画像を用いて物体認識、車線検出、交通標識認識などを行います。 + + - 光学センサーを使用して画像を取得します。 + - 画像を用いて物体認識、車線検出、交通標識認識などを行います。 3. **レーダー(Radio Detection and Ranging)**: - - 電波を発射し、反射して戻ってくるまでの時間を測定します。 - - 長距離の障害物検出に優れ、悪天候でも安定した性能を発揮します。 -4. **超音波センサー**: - - 超音波を発射し、反射して戻ってくるまでの時間を測定します。 - - 近距離の障害物検出に適しており、駐車支援システムなどに利用されます。 + - 電波を発射し、反射して戻ってくるまでの時間を測定します。 + - 長距離の障害物検出に優れ、悪天候でも安定した性能を発揮します。 +4. **超音波センサー**: + - 超音波を発射し、反射して戻ってくるまでの時間を測定します。 + - 近距離の障害物検出に適しており、駐車支援システムなどに利用されます。 今回、lidarを用いた障害物検知を扱うために簡易lidarシミュレータを作成しました。 @@ -46,12 +50,12 @@ ros2 launch autoware_practice_launch practice.launch.xml ![simple_lidar_sim1](images/3-1/simple_lidar_sim1.png) - 以下のコマンドを別々のターミナルで実行して、車両の位置が変化するのに伴って取得できる点群が変化するのを確認しましょう。 ```bash ros2 run autoware_practice_course trajectory_loader --ros-args -p path_file:=src/autoware_practice_course/config/trajectory_zigzag.csv ``` + ```bash ros2 run autoware_practice_course trajectory_follower --ros-args -p kp:=5.0 -p lookahead_distance:=5.0 ``` @@ -62,4 +66,4 @@ ros2 run autoware_practice_course trajectory_follower --ros-args -p kp:=5.0 -p l !!! warning - 作成中 \ No newline at end of file + 作成中 diff --git a/docs/course/vehicle.md b/docs/course/vehicle.md index ff847fd..24a2b22 100644 --- a/docs/course/vehicle.md +++ b/docs/course/vehicle.md @@ -81,8 +81,8 @@ ros2 run autoware_practice_course vehicle_forward ```bash ros2 launch autoware_practice_launch practice.launch.xml problem:=vehicle_backward ``` -![vehicle-backward-judging](./images/vehicle-backward-judging.png) +![vehicle-backward-judging](./images/vehicle-backward-judging.png) 以下に後退するためのコマンドを送信するノードのサンプルを用意しました。直進するためのコードと異なり、ギアを制御するコードが含まれています。サンプルでは停止保持するコマンドを送信し続けるようになっているので、データを変更して車両が後退するようにします。 ギアがREVERSEのときは、目標加速度を正、目標速度を負にします。 @@ -105,4 +105,3 @@ ros2 run autoware_practice_course vehicle_backward ``` ![vehicle-backward-success](./images/vehicle-backward-success.png) - diff --git a/docs/course/velocity_planning.md b/docs/course/velocity_planning.md index 6126a57..95799d6 100644 --- a/docs/course/velocity_planning.md +++ b/docs/course/velocity_planning.md @@ -39,11 +39,14 @@ ros2 launch autoware_practice_launch practice.launch.xml ``` 別のターミナルで以下のコマンドでトピックから車両の速度を取得してみましょう。 + ```bash ros2 topic echo /localization/kinematic_state ``` + 車両の初期速度は0なので、以下のように`twist: linear: x: 0.0`と表示されます。 -``` + +```txt header: stamp: sec: 1713775224 @@ -150,23 +153,20 @@ twist: `/localization/kinematic_state`というトピックは [nav_msgs/msgs/Odometry](https://docs.ros2.org/foxy/api/geometry_msgs/msg/Pose.html) というROS2のメッセージ型を利用しています。 - ## 02-02. 車両速度を目標速度に収束させる 次に、車両が目標の速度になるように車両の速度を制御してみましょう。 現在の速度v_nowと目標の速度v_targetの差にゲインk_pをかけたものを加速度入力aとする比例制御を用いることを考えます。 - - -$$ a = k_{\text{p}} \cdot (v_{\text{target}} - v_{\text{now}}) $$ +$$ a = k*{\text{p}} \cdot (v*{\text{target}} - v\_{\text{now}}) $$ 以下に速度の比例制御を行うノードのサンプルを用意しました。 - [velocity_planning/p_controller.hpp](https://github.com/AutomotiveAIChallenge/autoware-practice/blob/main/src/autoware_practice_course/src/velocity_planning/p_controller.hpp) - [velocity_planning/p_controller.cpp](https://github.com/AutomotiveAIChallenge/autoware-practice/blob/main/src/autoware_practice_course/src/velocity_planning/p_controller.cpp) - 以下のコマンドで比例制御のコントローラのノードを起動することができ、車両が動き始めます。kpに比例ゲイン、target_velocityに速度[m/s]を格納します。 + ```bash ros2 run autoware_practice_course p_controller --ros-args -p kp:=0.5 -p target_velocity:=1.0 ``` @@ -180,11 +180,13 @@ ros2 bag record -o velocity.bag /localization/kinematic_state ``` PlotJugglerは以下のコマンドで、インストールすることができます。 + ```bash sudo apt install ros-humble-plotjuggler-ros ``` そして以下のコマンドでPlotJugglerを起動します。 + ```bash ros2 run plotjuggler plotjuggler ``` @@ -201,7 +203,7 @@ ros2 run plotjuggler plotjuggler 最後に以下の比例ゲインk_pを0.5から5.0に修正して、車両速度の収束速度を比べてみましょう。 -$$ a = k_{\text{p}} \cdot (v_{\text{target}} - v_{\text{now}}) $$ +$$ a = k*{\text{p}} \cdot (v*{\text{target}} - v\_{\text{now}}) $$ ```bash ros2 run autoware_practice_course p_controller --ros-args -p kp:=5.0 -p target_velocity:=1.0 @@ -215,7 +217,7 @@ ros2 run autoware_practice_course p_controller --ros-args -p kp:=5.0 -p target_v 図のような、停止状態から50m地点まで加速し、50m地点を過ぎたら減速し100m地点で停止するような速度計画を行うことを考えます。 -![alt text](<./images/2-3/velocity_planning_image.jpg>) +![alt text](./images/2-3/velocity_planning_image.jpg) 速度計画を行うために車両から目標地点までの間に1mおきに中継地点となるウェイポイントを設定します。各ウェイポイントに目標速度を設定することで速度計画を行います。 @@ -238,7 +240,6 @@ ros2 run autoware_practice_course p_controller --ros-args -p kp:=5.0 -p target_v
- trajectory_loaderノードがスタートからゴールまでの各ウェイポイントの目標速度をcsvファイルから読み取ります。 longitudinal_controllerノードが車両に最も近いウェイポイントを探索し、ウェイポイントでの目標速度と現在の車両の速度を基に制御入力を決定します。 @@ -259,6 +260,7 @@ ros2 run autoware_practice_course longitudinal_controller --ros-args -p kp:=5.0 車両の位置と速度の関係をPlotJugglerを用いてリアルタイムで確認してみましょう。 全部で4枚のターミナルウィンドウを使用します。 まずシミュレータを起動します。 + ```bash ros2 launch autoware_practice_launch practice.launch.xml ``` @@ -298,6 +300,7 @@ ros2 run autoware_practice_course trajectory_loader --ros-args -p path_file:=src ```bash ros2 run autoware_practice_course longitudinal_controller --ros-args -p kp:=5.0 ``` + それぞれのノードが起動するとシミュレーター上で車両が動き始め、以下のようなグラフが得られます。 ![alt text](./images/2-3/PlotJuggler5.png) @@ -339,21 +342,19 @@ pure pursuitは、車両の現在位置と目標経路上の追従点(ルッ 3. **ステアリング角度の計算**: 計算された方向ベクトルに基づき曲率を計算し、車両のステアリング角度を求めます。 -$$ \theta = \arctan\left(\frac{2 L \sin(\alpha)}{d}\right) $$ + +$$ \theta = \arctan\left(\frac{2 L \sin(\alpha)}{d}\right) $$ $$ \theta: 計算されたステアリング角度 \\ $$ $$ L: 車両のホイールベースの長さ \\ $$ $$ \alpha: 現在の車両の向きとルックアヘッドポイントへの方向ベクトルの間の角度差 \\ $$ $$ d: ルックアヘッド距離 $$ -
Pure Pursuit
pure pursuitの基本動作
- - pure pursuitの利点は、そのシンプルさと実装の容易さにあります。しかし、高速走行や急カーブの多い経路では、別の制御アルゴリズムとの組み合わせが必要になる場合があります。 P制御とpure pursuit制御によって正しく経路に追従できているかをPlotJugglerで確認してみましょう。 @@ -392,4 +393,4 @@ ros2 run autoware_practice_course trajectory_follower --ros-args -p kp:=5.0 -p l \ No newline at end of file + diff --git a/docs/development/main-module.ja.md b/docs/development/main-module.ja.md index 4a52ac1..83163a5 100644 --- a/docs/development/main-module.ja.md +++ b/docs/development/main-module.ja.md @@ -19,7 +19,6 @@ 今回のシミュレーション大会では、前大会と同様にAutowareの部分的な活用や自由自在な取り込みを可能にするため、[AWSIMとの利用を想定した縮小構成のAutowareを用意しました](https://github.com/AutomotiveAIChallenge/aichallenge-2024/blob/main/aichallenge/workspace/src/aichallenge_submit/aichallenge_submit_launch/launch/reference.launch.xml)しました. - ## 縮小構成のAutowareを用意した背景 ### Autowareを利用する時の課題 @@ -91,13 +90,13 @@ Autoware-Microを活用することにより、本大会での課題となる: とりあえず新たに自作パッケージを作成してみたい方は既存のパッケージをコピーしたり、[autoware practice](https://github.com/AutomotiveAIChallenge/autoware-practice)をコピーする形で以下のように進めると良いと思います。 1. 元のパッケージをコピーして、下記を変更 - * パッケージ名 - * フォルダ名 - * コード - * package.xml - * CMakeLists.txt + - パッケージ名 + - フォルダ名 + - コード + - package.xml + - CMakeLists.txt 2. aichallenge_submitの中に配置 -3. autoware_micro_awsim_launchから呼び出されるlaunchファイルを変更 - * 参考例:pose_initializer_custom( autoware_universe_launch/tier4_localization_launch/launch/util/util.launch.xmlから呼び出しております) +3. autoware_micro_awsim_launchから呼び出されるlaunchファイルを変更 + - 参考例:pose_initializer_custom( autoware_universe_launch/tier4_localization_launch/launch/util/util.launch.xmlから呼び出しております) -※コピー元のパッケージのライセンスを違反しないよう各自確認お願いいたします。 \ No newline at end of file +※コピー元のパッケージのライセンスを違反しないよう各自確認お願いいたします。 diff --git a/docs/development/requirements.ja.md b/docs/development/requirements.ja.md index d21cd22..e8516d2 100644 --- a/docs/development/requirements.ja.md +++ b/docs/development/requirements.ja.md @@ -13,4 +13,4 @@ Windows環境しかお持ちでない方は、Ubuntu22.04のインストール !!! info - Ubuntuのインストール方法については[こちらの記事](https://qiita.com/kiwsdiv/items/1fa6cf451225492b33d8)が参考になります。 \ No newline at end of file + Ubuntuのインストール方法については[こちらの記事](https://qiita.com/kiwsdiv/items/1fa6cf451225492b33d8)が参考になります。 diff --git a/docs/development/visible-simulation.ja.md b/docs/development/visible-simulation.ja.md index bb381c4..af06ec3 100644 --- a/docs/development/visible-simulation.ja.md +++ b/docs/development/visible-simulation.ja.md @@ -121,7 +121,7 @@ sudo ip link set multicast on lo /aichallenge/simulator/AWSIM_GPU/AWSIM.x86_64 ``` -run_evaluetion.bashに対しても次の変更を加えます。AISIM_GPU_**には先程展開したディレクトリを指定してください。 +run_evaluetion.bashに対しても次の変更を加えます。AISIM_GPU\*\*には先程展開したディレクトリを指定してください。 ```bash #AWSIM_DIRECTORY=/aichallenge/simulator/AWSIM diff --git a/docs/development/workspace.ja.md b/docs/development/workspace.ja.md index 2c1e7f0..01689b7 100644 --- a/docs/development/workspace.ja.md +++ b/docs/development/workspace.ja.md @@ -61,12 +61,12 @@ Autowareのビルド後、以下のコマンドを実行します。 ```bash ./run_evaluation.bash ``` + 下記の様な画面が表示されたら起動完了です。終了するにはターミナル上でCTRL + Cを入力します。 ![autoware](./images/installation/autoware.png) ## [任意] Debug用にTerminalを3つ用意して開発したい場合 - `Alt+Ctrl+T`で1つ目のターミナルを立ち上げてから、以下のコマンド`Ctrl+Shift+P`で貼り付けた後に`Enter`で実行します。 ```bash @@ -79,7 +79,6 @@ cd /aichallenge bash run_simulator.bash ``` - `Alt+Ctrl+T`で2つ目のターミナルを立ち上げてから、以下のコマンド`Ctrl+Shift+P`で貼り付けた後に`Enter`で実行します。 ```bash @@ -104,7 +103,6 @@ cd /aichallenge ros2 topic pub --once /control/control_mode_request_topic std_msgs/msg/Bool '{data: true}' >/dev/null ``` - 下記の様な画面が表示されたら起動完了です。終了するには各ターミナル上でCTRL + Cを入力します。 ![autoware](./images/installation/autoware.png) diff --git a/docs/getting-started.ja.md b/docs/getting-started.ja.md index f7b624e..0838251 100644 --- a/docs/getting-started.ja.md +++ b/docs/getting-started.ja.md @@ -70,4 +70,4 @@ A. [rockerのインストール](./development/installation.md)をお願いし Q. `WARNING unable to detect os for base image 'aichallenge-2024-dev', maybe the base image does not exist` -A. Dockerイメージのビルドをお願いします。 \ No newline at end of file +A. Dockerイメージのビルドをお願いします。 diff --git a/mkdocs.yaml b/mkdocs.yaml index cc06934..ffe5f1b 100644 --- a/mkdocs.yaml +++ b/mkdocs.yaml @@ -12,8 +12,8 @@ theme: scheme: slate primary: custom accent: red - # logo: - # favicon: + # logo: + # favicon: nav: - index: index.md