MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

オンライン上の数値演算・解析系のPythonチュートリアルScipy Lecture Notesを読んで学んだこと

Elegant Scipy: The Art of Scientific Python

Elegant Scipy: The Art of Scientific Python

  • 作者: Juan Nunez-iglesias,Stéfan Van Der Walt,Harriet Dashnow
  • 出版社/メーカー: Oreilly & Associates Inc
  • 発売日: 2017/09/07
  • メディア: ペーパーバック
  • この商品を含むブログを見る

目次

  • 目次
  • はじめに
  • ツールやワークフローを使った科学技術計算
  • プログラミング言語 Python
  • NumPy: 数値データの作成と処理
  • Scipy: 高水準の科学技術計算
    • scipy.io
    • scipy.optimize
    • scipy.interpolate
  • 参考資料
  • MyEnigma Supporters

はじめに

下記のScipy Lecture Noteという、

オンライン上の数値演算・解析系のPythonチュートリアルが

素晴らしかったので、

読んで心に残ったことをメモしておきたいと思います。

 

続きを読む

ロボティクスにおける経路追従(Path following)技術の概要

Autonomous Driving: Technical, Legal and Social Aspects

Autonomous Driving: Technical, Legal and Social Aspects

目次

  • 目次
  • はじめに
  • 経路追従(Path following)とは?
  • 制御技術の基礎
  • 最適化技術の基礎
  • ロボットの運動モデル
  • 経路追従の代表的なアルゴリズム
    • Pure pursuit
    • Rear wheel position feedback
    • 線形二次レギュレータ(LQR)
  • 参考資料
  • MyEnigma Supporters

はじめに

ロボットの自律移動技術の中で、

重要なものの一つに、

経路追従(Path following)技術があります。

(その他の自律移動技術に関しては下記を参照ください

myenigma.hatenablog.com)

 

今回の記事では、

ロボットの経路計画問題における代表的な技術の概要と

サンプルコードの記事のリンクをまとめておきます。

 

続きを読む

Julia用おすすめVim設定&プラグイン

はじめてのvi&Vim (エッセンシャルソフトウェアガイドブック)

はじめてのvi&Vim (エッセンシャルソフトウェアガイドブック)

目次

  • 目次
  • はじめに
  • F5で現在編集中のコードを実行する
  • シンタックスハイライト用プラグイン: julia-vim
  • 静的解析ツール用プラグイン: julia.vim
  • 参考資料
  • MyEnigma Supporters

はじめに

これまで、様々な言語における

おすすめVim設定とVImプラグインを紹介してきましたが、

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

 

最近、Juliaという比較的新しい言語を勉強しているため、

myenigma.hatenablog.com

JuliaのコードをVimで書くためのおすすめ設定と、

プラグインを紹介したいと思います。

 

自分のすべての言語に共通したVimの設定ファイルは

下記のリポジトリで公開しています。

github.com

 

続きを読む

線形二次レギュレータ(LQR)による経路追従制御とPythonサンプルプログラム

はじめての現代制御理論 (KS理工学専門書)

はじめての現代制御理論 (KS理工学専門書)

目次

  • 目次
  • はじめに
  • LQRを使ったステアリング制御
  • LQRを使ったステアリング制御Pythonサンプルコード
  • 参考資料
  • MyEnigma Supporters

はじめに

以前、最適制御の手法として有名な

線形二次レギュレータ(LQR)の概要を説明しましたが、

myenigma.hatenablog.com

 

先日、中国の検索エンジン会社バイドゥが公開した

自動運転ソフトウェアApolloにおいて、

このLQRをステアリング制御に使用していました。

github.com

 

そこで今回、このLQRを使ったステアリング型ロボットの

経路追従の技術概要と

簡単なPythonサンプルコードを紹介したいと思います。

 

続きを読む

ラズベリーパイ(Raspberry Pi)にAirplayサーバーを立てる方法

目次

  • 目次
  • はじめに
  • 使ったもの
  • 初期セットアップ
  • shairport-syncのインストール
  • USBのスピーカーから音楽を流すようにする
  • 最後に
  • その他Raspberry Piの使い道
  • 参考資料
  • MyEnigma Supporters

はじめに

最近Amazon Musicで音楽を聞くことが多いのですが、

Chromecastを繋いだテレビからは流せないので、

すこしイライラしていました。

 

そこで自分の家にはAppleの商品が転がっており、

Amazon MusicはAirplayには対応しているので、

以前購入したRaspberry PiにAirplayサーバを立てて、

家のどこからでもApple製品から、

Raspberry Piに繋がったスピーカーに、

音を流せるようにしました。

今回はその方法について説明したいと思います。

続きを読む

Juliaにおける最適化モデリングライブラリJuMP入門

Introduction to Non-Linear Optimization (Computer Science)

Introduction to Non-Linear Optimization (Computer Science)

目次

  • 目次
  • はじめに
  • JuMPの特徵
    • 使いやすさ
    • 計算速度
    • ソルバーの独立利用のためのインターフェース
    • システムに組み込みやすい
    • ライセンスがMPL
  • インストール方法
    • GLPKのインストール
    • Clpのインストール
    • Cbcのインストール
    • Culpのインストール
    • ECOSのインストール
    • Ipoptのインストール
    • NLoptのインストール
    • Mosekのインストール
    • CPLEXのインストール
  • JuMPによるシンプルな線形計画問題の解法サンプルコード
  • JuMPによる最小二乗法解法サンプルコード
  • JuMPによる混合整数最適化問題の解法
  • JuMPによるナップサック問題の解法サンプルコード
  • ナップサック問題におけるcvxpyとJuMPの計算速度比較
  • 非線形最適化のサンプルコード
  • 参考資料
  • MyEnigma Supporters

 

はじめに

以前、Python製の最適化モデリングライブラリ

cvxpyを紹介しましたが、

myenigma.hatenablog.com

 

今回は、高速科学演算向け言語であるJuliaの

最適化モデリングツールであるJuMP (Julia for Mathematical Optimization)

の紹介をしようと思います。

JuMP — Julia for Mathematical Optimization — JuMP -- Julia for Mathematical Optimization 0.18 documentation

github.com

 

JuMPの詳細に関しては、下記の論文を参照ください。

 

プログラミング言語Juliaに関しては下記の記事を参照ください。

myenigma.hatenablog.com

 

続きを読む

Macbook Proを買って、USB-C対応と荷物を減らすために揃えたガジェット

目次

  • 目次
  • はじめに
  • USB-C拡張ドングル: HooToo USBハブ Type-C 3 3.0ポート HT-UC001 シルバー
  • USB充電器兼モバイルバッテリー: Anker PowerCore Fusion 5000
  • USB - A → USB - C ケーブル: Anker PowerLine+ USB-C & USB 3.0 ケーブル (1.8m)
  • USB-A → USB-C 変換アダプタ: AUKEY USB C to USB 3.0 変換アダプタ Type cコネクタ
  • USB-C充電器 + USB-C - USB-Cケーブル
  • Bluetooth イヤホン: Anker SoundBuds Slim Bluetoothイヤホン
  • 今後買いたいもの
  • なぜTouchbar無しのMBPを買ったのか?
  • 参考資料
  • MyEnigma Supporters

はじめに

先日、新しいコンピュータとして、

Macbook Pro (MBP)13.3インチ(タッチバー無し)を買いました。

新しい相棒来た😃

 

以前、使っていた2013年のMacbook Air 13インチと

重さは殆ど変わらないですし、

CPU, SSD, メモリすべてにおいてスペック倍増したので、

かなり快適です。

 

しかし、多くの人がご存知の通り、

現在のMBPはインターフェースとして、

USB-Cしか無いため、

かなりの周辺機器を追加で購入する必要がありました。

 

そこで、自分が購入して便利だった

MBPの周辺機器をまとめておこうと思います。

 

続きを読む

ロボティクスにおける経路計画(Path planning and Motion planning)技術の概要

Robot Motion: Planning and Control (Artificial Intelligence Series)

Robot Motion: Planning and Control (Artificial Intelligence Series)

  • 作者: Michael Brady,John Hollerbach,Timothy L. Johnson,Tomás Lozano-Pérez,Matthew T. Mason
  • 出版社/メーカー: The MIT Press
  • 発売日: 1983/03/10
  • メディア: ハードカバー
  • この商品を含むブログを見る

目次

  • 目次
  • はじめに
  • 経路計画 (Path Planning or Motion Planning)の各アルゴリズム
    • Geometric Analytic Approach
      • Spline Planning
      • Voronoi Diagram Planning
      • Dubins Path Planning
      • Reed-sheep Planning
    • Graph Search Approach
      • ダイクストラ法
      • A*
    • Dynamic Window Approach
    • State Lattice Approach
      • Model Predictive Trajectory Optimization
      • State Lattice Local planning
    • Randomized Approach
      • RRT
      • RRT *
      • Closed RRT
    • Model Predictive Control
  • 各経路生成アルゴリズムの利点と欠点
  • 参考資料
  • MyEnigma Supporters

はじめに

ロボットの自律移動技術の中で、

重要なものの一つに、

経路計画(Path planning and Motion planning)があります。

(その他の自律移動技術に関しては下記を参照ください

myenigma.hatenablog.com)

  

今回の記事では、

ロボットの経路計画問題における代表的な技術の分類と

その詳細やサンプルコードの記事のリンクをまとめておきます。

加えて、それぞれの技術の利点と欠点を

あるサーベイ論文を元にまとめました。

 

続きを読む

State Lattice Plannerの概要とPythonサンプルコード

Adaptive State × Time Lattices: A Contribution to Mobile Robot Motion Planning in Unstructured Dynamic Environments

Adaptive State × Time Lattices: A Contribution to Mobile Robot Motion Planning in Unstructured Dynamic Environments

目次

  • 目次
  • はじめに
  • State Lattice Planner
    • Uniform Polar sampling
    • Biased Polar sampling
    • Lane sampling
  • State Lattice Planningの利点と欠点
    • 利点
    • 欠点
  • State Lattice PlannerのPythonサンプルプログラム
  • 参考資料
  • MyEnigma Supporters

はじめに

先日、

ロボティクスの境界問題を解くパスプランニングの手法として、

Model Predictive Trajectory Generatorを紹介しました。

myenigma.hatenablog.com

 

今回はこの手法と

効率的な目標状態のサンプリング手法を組み合わせた

State Lattice Plannerという

有名なパスプランニングアルゴリズムの概要と

そのサンプルPythonコードを紹介したいと思います。

 

続きを読む

VimユーザのためのPythonのIDE PyCharm入門

Mastering Pycharm

Mastering Pycharm

目次

  • 目次
  • はじめに
  • PyCharmとは?
  • インストール方法
  • 初期設定
    • テーマを変える
    • PyCharmでVimキーバインドを使う
    • pep8の警告レベルをWarningにし、一行の文字数を79字に
    • 各プロジェクトのPythonのインタープリターの設定
    • 独自ショートカットキーの設定
  • ショートカットキー
  • import文補完と関数実装補完
  • live template (スニペット)
  • Vimユーザへの注意点まとめ
    • 注意点1 ファイル名やフォルダ名を変更する場合
    • 注意点2 ファイルエクスプローラーを復活させる
  • Vimユーザとして素晴らしいなと思った所
  • Vimユーザとして少し残念な所
  • 最後に
  • 参考資料
  • MyEnigma Supporters

はじめに

久しぶりに、

プログラマが知るべき97のことを読んでいたら、

プログラマが知るべき97のこと

プログラマが知るべき97のこと

  • 作者: 和田卓人,Kevlin Henney,夏目大
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2010/12/18
  • メディア: 単行本(ソフトカバー)
  • 購入: 58人 クリック: 2,107回
  • この商品を含むブログ (350件) を見る

下記の記事が目にとまりました。

 

自分はこれまでほとんどVimのみでプログラミングをしてきたので、

確かにそろそろIDEを使ってみようかなと思い立ちました。

 

まず手始めに、

最近多くのPythonプログラマが素晴らしいと褒め称えている

Python用IDEであるPyCharmを使ってみることにしました。

今回はこのPyCharmの基礎的な設定や

Vimユーザへの注意点をまとめておきたいと思います。

 

続きを読む