Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Make angle normalization correct for any angle and use it everywhere

オープン
#123 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 9 日以内に返信

@HarshRajSinghania がすでに取り組んでいます。

2026年10月4日 から。

  • #135 @HarshRajSinghania による — オープン

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
停滞
技術スタック
numpy, python

調査の方向性

Start with src/components/common/angle_lib.py and test/test_angle_lib.py; extend the tests with angles beyond ±3π and check scalar and NumPy array behavior. Then review the listed normalization sites in omni_directional_lidar.py, mppi_controller.py, particle_filter_localizer.py, polar_histogram.py, cubic_spline_course.py, and lqr_controller.py. Done means normalization handles any angle and the duplicated implementations use the shared helper; an open linked pull request is already addressing this work.

索引モデルが issue の本文から書いたものです。

説明

bug good first issue

Problem

pi_to_pi() in src/components/common/angle_lib.py wraps an angle only once, so angles beyond ±3π are not normalized. The vehicle yaw angle is never normalized and keeps growing on courses with loops, and pi_to_pi() is used for the yaw error in cubic_spline_course.py and in lqr_controller.py.

The same normalization is also implemented separately in several places:

  • omni_directional_lidar.py (_normalize_angle_until_2pi, _normalize_angle_pi_2_pi)
  • mppi_controller.py (% (2 * pi) and arctan2(sin, cos))
  • particle_filter_localizer.py (arctan2(sin, cos))
  • polar_histogram.py (% (2 * pi))

Expected fix

  • Implement pi_to_pi correctly for any angle (e.g. (angle + pi) % (2 * pi) - pi), also accepting numpy arrays
  • Use it (or a zero_to_2pi helper in the same module) instead of the local implementations
  • Extend test/test_angle_lib.py with angles beyond ±3π
主要言語
Python
スター
1.9k
フォーク
313
平均マージ
9日 10時間
マージ済み PR(30日)
7

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

  • Dockerfile または Docker Compose ファイルあり
  • プルリクエストのテンプレートなし
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ShisatoYano/AutonomousVehicleControlBeginnersGuide のほかの issue

ShisatoYano/AutonomousVehicleControlBeginnersGuide の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。