EurekaMoments

This blog is to make a memo about Programming and Autonomous driving technologies which I studied.

Python sample program of Path generation with Cubic Spline Interpolation

Introduction

Cubic spline is a piecewise cubic function that interpolates a set of data points and guarantees smoothness at the data points. So, cubic spline can be used to generate a smooth reference path for autonomous driving. In this entry, I'm introducing a summary of cubic spline algorithm and Python sample program of a path generation with cubic spline interpolation.

Table of contents

  • Introduction
  • Table of contents
  • Source code at GitHub
  • Spline
  • Cubic Spline Interpolation
  • Conditions for Parameters decision
    • 1. Constraint condition at edge points of segments
    • 2. Continuity condition at boundaries of segments
    • 3. Continuity condition of first derivative at boundaries of segments
    • 4. Continuity condition of second derivative at boundaries of segments
    • 5. Boundary condition of second derivative between start point and end point
  • 1D Cubic Spline
  • 2D X-Y Path generation with Cubic Spline Interpolation

Source code at GitHub

All source codes are located at the following GitHub repository.

Cubic spline module
github.com

Path generation simulation
github.com

Read more

Python sample program of Path tracking simulation with Pure pursuit algorithm

Introduction

Path tracking technology is to track a course which is generated with a path planning algorithm. In this entry, I'm introducing a summary and Python sample program of Pure pursuit algorithm which is the most basic and is widely used for Autonomous navigation.

Table of contents

  • Introduction
  • Table of contents
  • Source code at GitHub
  • Pure pursuit algorithm
    • Look-ahead distance
    • Angular velocity computation
  • Implementation of Python program
    • 1. Controller module class
    • 2. Computation of Look-ahead distance
    • 3. Decision of Target point on Course
    • 4. Computation of Forward acceleration command
    • 5. Computation of Angular velocity command
    • 6. Sequence of computation
  • Path tracking simulation

Source code at GitHub

All source codes are located at the following GitHub repository.

Pure pursuit controller module
github.com

Path tracking simulation
github.com

Read more

Python sample program of Self-Localization simulation by Extended Kalman Filter

Introduction

Self-Localization technology is very essential for autonomous driving system to know the vehicle's position and pose. In this entry, I'm introducing a summary of Extended Kalman Filter(EKF) which is commonly used for self-localization algorithm and the Python sample program.

Table of contents

  • Introduction
  • Table of contents
  • Source code at GitHub
  • Basis of Kalman filter
  • Why EKF?
  • Implementation of Python program
    • 1. Initialization
    • 2. State module class
    • 3. Observation model
    • 4. Jacobian
    • 5. Predict and Update
    • 6. Error covariance elipse
  • Simulation result

Source code at GitHub

All source codes are located at the following GitHub repository.

Extended Kalman Filter localization module
github.com

Self-Localization simulation
github.com

Read more

Python sample program of 1D position and velocity estimation by Kalman filter

Introduction

Kalman filter is commonly used for robot or vehicle's state estimation in autonomous navigation. In this entry, I'm introducing a simple Python sample code of 1D position and velocity estimation by Kalman filter.

Table of contents

  • Introduction
  • Table of contents
  • Source code at GitHub
  • Theory of Kalman filter
  • Problem
  • Source code
    • Parameters
    • Motion model
    • Observation model
    • Kalman filter module
    • Simulation

Source code at GitHub

The source code is located at the following GitHub repository.
github.com

Read more

Track Testでコーディングテストを受ける前に知っておくべきこと

目的

採用選考の一環でコーディングテストを実施する際に、
Track Testというオンラインプラットフォームを使って
テストを実施する会社が最近は多いようです。

自分も最近の転職活動で2度ほど受検したのですが、
慣れ親しんでいたLeetCodeとはまた少し違った形式だった
ので1回目の受験時は戸惑って無駄に時間を使ってしまいました。

そこで今回は、今後Track Testでコーディングテストを受ける
かもしれない人達向けに、事前に知っておくと役立つもの
について紹介しようと思います。

目次

  • 目的
  • 目次
  • Track Testとは
  • LeetCodeとの違い
    • 1. 必要なヘッダーファイルをインクルードする
    • 2. 入力はテキストベース
  • テキストから入力データを抽出するC++コード
Read more

ソフトウェアエンジニアのための今日から始めるレイオフ対策

目的

中国で自動運転エンジニアとして働き始めてもうすぐ1年が経とうと
していますが、実は今年の3月末で突然会社をレイオフされ、転職
活動をすることになりました。

幸い2か月程度で次の仕事が見つかり、今後も中国で働けることには
なったのですが、まさか自分がレイオフされるとはまったく想定して
なかったので、かなりバタバタな転職活動でした。

中国という国で働く以上、いつまたレイオフされることになるか
分からないので、今後また慌てないために日頃からどういう準備を
しておけばいいかを改めて考えて、対策としてまとめておこうと思います。

Read more

自動運転エンジニアが知ってると役立つ中国語単語集~車両制御編~

目的

前回のこちらの記事にて、自動運転エンジニア向けの中国語単語を
まとめ始めました。
www.eureka-moments-blog.com

前回は外界認識に関するものが中心でしたが、今回は主に車両制御に
関する単語をまとめていきます。

Read more