Skip to content

Commit

Permalink
ci: add pre-commit
Browse files Browse the repository at this point in the history
Signed-off-by: Takagi, Isamu <[email protected]>
  • Loading branch information
isamu-takagi committed Jun 18, 2024
1 parent 6f10e15 commit 650d01b
Show file tree
Hide file tree
Showing 17 changed files with 86 additions and 92 deletions.
9 changes: 1 addition & 8 deletions .github/ PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -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.**
# Description
7 changes: 0 additions & 7 deletions .github/PULL_REQUEST_TEMPLATE/small_change.md

This file was deleted.

15 changes: 0 additions & 15 deletions .github/PULL_REQUEST_TEMPLATE/standard_change.md

This file was deleted.

34 changes: 17 additions & 17 deletions .github/workflows/documentation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
14 changes: 14 additions & 0 deletions .github/workflows/pre-commit.yaml
Original file line number Diff line number Diff line change
@@ -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/[email protected]
3 changes: 3 additions & 0 deletions .markdown-link-check.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"aliveStatusCodes": [200, 206]
}
6 changes: 6 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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]
1 change: 0 additions & 1 deletion docs/course/index.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ sudo apt install python3-vcstool
sudo apt install python3-colcon-common-extensions
```


任意のディレクトリにて入門講座のリポジトリをクローンし、ビルドを行ってください。

```bash
Expand Down
26 changes: 15 additions & 11 deletions docs/course/perception.md
Original file line number Diff line number Diff line change
Expand Up @@ -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シミュレータを作成しました。

Expand All @@ -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
```
Expand All @@ -62,4 +66,4 @@ ros2 run autoware_practice_course trajectory_follower --ros-args -p kp:=5.0 -p l

!!! warning

作成中
作成中
3 changes: 1 addition & 2 deletions docs/course/vehicle.md
Original file line number Diff line number Diff line change
Expand Up @@ -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のときは、目標加速度を正、目標速度を負にします。
Expand All @@ -105,4 +105,3 @@ ros2 run autoware_practice_course vehicle_backward
```

![vehicle-backward-success](./images/vehicle-backward-success.png)

29 changes: 15 additions & 14 deletions docs/course/velocity_planning.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
```
Expand All @@ -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
```
Expand All @@ -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
Expand All @@ -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おきに中継地点となるウェイポイントを設定します。各ウェイポイントに目標速度を設定することで速度計画を行います。

Expand All @@ -238,7 +240,6 @@ ros2 run autoware_practice_course p_controller --ros-args -p kp:=5.0 -p target_v

<br>


trajectory_loaderノードがスタートからゴールまでの各ウェイポイントの目標速度をcsvファイルから読み取ります。
longitudinal_controllerノードが車両に最も近いウェイポイントを探索し、ウェイポイントでの目標速度と現在の車両の速度を基に制御入力を決定します。

Expand All @@ -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
```
Expand Down Expand Up @@ -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)

Expand Down Expand Up @@ -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: ルックアヘッド距離 $$


<div align="center">
<img src="../images/2-4/pure_pursuit.png" alt="Pure Pursuit">
<br>
<em>pure pursuitの基本動作</em>
</div>



pure pursuitの利点は、そのシンプルさと実装の容易さにあります。しかし、高速走行や急カーブの多い経路では、別の制御アルゴリズムとの組み合わせが必要になる場合があります。

P制御とpure pursuit制御によって正しく経路に追従できているかをPlotJugglerで確認してみましょう。
Expand Down Expand Up @@ -392,4 +393,4 @@ ros2 run autoware_practice_course trajectory_follower --ros-args -p kp:=5.0 -p l

<script type="text/javascript" asyn
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.1.2/es5/tex-mml-chtml.js">
</script>
</script>
17 changes: 8 additions & 9 deletions docs/development/main-module.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -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を利用する時の課題
Expand Down Expand Up @@ -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から呼び出しております)

※コピー元のパッケージのライセンスを違反しないよう各自確認お願いいたします。
※コピー元のパッケージのライセンスを違反しないよう各自確認お願いいたします。
2 changes: 1 addition & 1 deletion docs/development/requirements.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ Windows環境しかお持ちでない方は、Ubuntu22.04のインストール

!!! info

Ubuntuのインストール方法については[こちらの記事](https://qiita.com/kiwsdiv/items/1fa6cf451225492b33d8)が参考になります。
Ubuntuのインストール方法については[こちらの記事](https://qiita.com/kiwsdiv/items/1fa6cf451225492b33d8)が参考になります。
2 changes: 1 addition & 1 deletion docs/development/visible-simulation.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 1 addition & 3 deletions docs/development/workspace.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -79,7 +79,6 @@ cd /aichallenge
bash run_simulator.bash
```


`Alt+Ctrl+T`で2つ目のターミナルを立ち上げてから、以下のコマンド`Ctrl+Shift+P`で貼り付けた後に`Enter`で実行します。

```bash
Expand All @@ -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)

Expand Down
Loading

0 comments on commit 650d01b

Please sign in to comment.