Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: add pre-commit #28

Merged
merged 2 commits into from
Jun 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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]
}
7 changes: 7 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ repos:
- id: end-of-file-fixer
- id: mixed-line-ending
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md]

- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.33.0
Expand All @@ -24,3 +25,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: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.md
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
8 changes: 3 additions & 5 deletions docs/course/perception.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
安全な自動運転を行うために、障害物を認識し必要に応じて回避する必要があります。ここでは図のように、障害物を認識して回避しながら目標地点に到達することを目指します。

![avoidance_planning](images/3-1/avoidance_planning.png)

## 03-01. lidarから点群を取得し障害物検知をする

自動運転車両では、障害物を認識するために様々なセンサーが使用されます。代表的なセンサーには以下のものがあります:
Expand All @@ -13,16 +14,13 @@
2. **カメラ**:
- 光学センサーを使用して画像を取得します。
- 画像を用いて物体認識、車線検出、交通標識認識などを行います。

3. **レーダー(Radio Detection and Ranging)**:
- 電波を発射し、反射して戻ってくるまでの時間を測定します。
- 長距離の障害物検出に優れ、悪天候でも安定した性能を発揮します。

4. **超音波センサー**:
- 超音波を発射し、反射して戻ってくるまでの時間を測定します。
- 近距離の障害物検出に適しており、駐車支援システムなどに利用されます。


今回、lidarを用いた障害物検知を扱うために簡易lidarシミュレータを作成しました。

実際のlidarは観測物体の裏側まで見ることはできませんが、
Expand All @@ -46,12 +44,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 +60,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)

27 changes: 14 additions & 13 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 Down Expand Up @@ -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>
21 changes: 10 additions & 11 deletions docs/development/main-module.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,9 @@
本大会では、自動運転ソフトウェアAutowareをベースとした実装を用意しております.
本ページでは、その背景と説明に加えて、どのように本実装を活用できるかの紹介を行います.

前回のシミュレーション大会では、デフォルトのAutowareから機能を絞り、ノード数を減らした[縮小構成のAutowareを起動できるLaunchファイルを提供]()しました.その際の、背景や用意した意図については、[前大会のドキュメント](https://automotiveaichallenge.github.io/aichallenge2023-racing/customize/index.html)をご覧ください.

今回のシミュレーション大会では、前大会と同様に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を起動できるLaunchファイルを提供しました.その際の、背景や用意した意図については、[前大会のドキュメント](https://automotiveaichallenge.github.io/aichallenge2023-racing/customize/index.html)をご覧ください.

今回のシミュレーション大会では、前大会と同様にAutowareの部分的な活用や自由自在な取り込みを可能にするため、[AWSIMとの利用を想定した縮小構成のAutoware](https://github.com/AutomotiveAIChallenge/aichallenge-2024/blob/main/aichallenge/workspace/src/aichallenge_submit/aichallenge_submit_launch/launch/reference.launch.xml)を用意しました.

## 縮小構成の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
2 changes: 1 addition & 1 deletion docs/getting-started.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -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イメージのビルドをお願いします。
A. Dockerイメージのビルドをお願いします。
Loading
Loading