MyEnigma

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

LINEで自作画像をスタンプのように無料でやりとりする方法

目次

  • 目次
  • はじめに
  • LINEで自作画像をスタンプのように無料でやりとりする方法
  • この手法の残念な所
  • 参考資料
  • MyEnigma Supporters

はじめに

LINEは日本人には

必需品のようになっていますが、

自分が利用したいスタンプが無い場合に、

自作したい人もいるかと思います。

 

しかし、現状LINEではスタンプは

LINEのチェックを通貨し、

商用として公開されたものしか、

スタンプとして利用できません。

 

そこで、自作した画像データを、

簡単にスタンプのように使える方法を紹介したいと思います。

続きを読む

Rear wheel position feedbackによる経路追従とPythonサンプルコード

エンジニアのためのフィードバック制御入門

エンジニアのためのフィードバック制御入門

目次

  • 目次
  • はじめに
  • Rear wheel position feedbackによる経路追従
  • Pythonシミュレーションコード
  • 参考資料
  • MyEnigma Supporters

はじめに

先日、

Pure pursuitアルゴリズムによる、

経路追従アルゴリズムを紹介しましたが、

myenigma.hatenablog.com

このアルゴリズムは、下記のような問題があります。

  • コース曲率を考慮してない

  • 車両の現在の速度を考慮していない。

そのためパラメータのチューニングが難しかったり、

複雑なコースで、制御が不安定になるという問題があります。

 

今回は、Pure pursuitアルゴリズムの問題を解決することができる、

Rear wheel position feedbackというアルゴリズムを紹介し、

そのPythonシミュレーションコードを紹介したいと思います。

 

続きを読む

Macでの生産性向上のためにクリップボード管理アプリClipyが便利という話

生産性―――マッキンゼーが組織と人材に求め続けるもの

生産性―――マッキンゼーが組織と人材に求め続けるもの

目次

  • 目次
  • はじめに
  • Clipyとは
  • インストール
  • 使い方
  • 参考資料
  • MyEnigma Supporters

はじめに

これまでMacのクリップボード管理は、

ClipMenuを使ってきたのですが、

最近急にアプリが暴走することがありました。

 

そこで調べてみた所、

Clipyという新しいアプリが開発されていたので、

そちらに乗り換えてみた所、非常に便利だったので、

概要をまとめておきたいと思います。

 

続きを読む

PythonによるClosed Loop RRT*パスプランニングサンプルプログラム

The DARPA Urban Challenge: Autonomous Vehicles in City Traffic (Springer Tracts in Advanced Robotics)

The DARPA Urban Challenge: Autonomous Vehicles in City Traffic (Springer Tracts in Advanced Robotics)

目次

  • 目次
  • はじめに
  • Closed Loop RRTとは
  • PythonによるClosed Loop RRT*パスプランニングサンプルプログラム
  • 参考資料
  • MyEnigma Supporters

はじめに

先日、RRT*とReed Sheppパスを使った

パスプランニングアルゴリズムを紹介しましたが、

myenigma.hatenablog.com

myenigma.hatenablog.com

このアルゴリズムには一つ問題があります。

 

それはReed Sheppパスが

実際の車両のモデルを忠実に表現していないことです。

Reed Sheppパスは、最大曲率(旋回半径)の条件は満たしたパスは作ってくれますが、

円弧と直線を繋ぐだけなので、曲率の不連続点があり、

ステアリングの切り角に制限があるロボットでは、

正確にトラッキングできません。

加えて、前後進の運動モデルを考慮していないため、

アクセルやブレーキの応答性が悪い車両では、

生成されたパスに追従できなくなります。

 

そこで今回はこの問題を解決するために

Closed Loop RRT*という

アルゴリズムを紹介したいと思います。

続きを読む

ブログサポートシステム構築や電子データの販売にはGumroadが便利という話

How to Create a Really Simple Product to Get Started Selling Online Fast (Real Fast Results Book 55) (English Edition)

How to Create a Really Simple Product to Get Started Selling Online Fast (Real Fast Results Book 55) (English Edition)

目次

  • 目次
  • はじめに
  • Gumroadとは?
  • Gumroadの便利な所
    • 非常に簡単にものを販売できる
    • 買いたい人はアカウント登録無しで、クレジットカード情報のみで購入できる。
    • 様々な値付け方法を選ぶことができる。
    • 無料で販売できる
    • 日本語、日本円対応している
  • ブログ埋め込みウィジェットを自動生成してくれる。
  • Gumroadの手数料
  • Gumroadでの売上代金の受取
  • 参考資料

はじめに

先日下記のTweetのように、

いつもブログを見ているので、

ブログをサポートしたいという人が

DMで連絡をくれたのですが、

サポートしたい人だけ、

気軽にサポートできるシステムは無いものかと探していました。

 

そこで、Gumroadというサービスを使ってみたところ、

非常に簡単に(約一時間で)

ブログサポートシステムを作ることができたので、

紹介したいと思います。

 

続きを読む

Pure pursuit アルゴリズムによる経路追従とPythonサンプルプログラム

Fractional Order Differentiation and Robust Control Design: CRONE, H-infinity and Motion Control (Intelligent Systems, Control and Automation: Science and Engineering)

Fractional Order Differentiation and Robust Control Design: CRONE, H-infinity and Motion Control (Intelligent Systems, Control and Automation: Science and Engineering)

目次

  • 目次
  • はじめに
  • Pure pursuitアルゴリズム
  • Pythonサンプルコード
  • 参考資料

はじめに

経路追従は、

経路生成アルゴリズムによって生成されたコースに対して、

できるだけずれ量が小さくなるように

リアルタイム制御する技術です。

myenigma.hatenablog.com

 

経路追従アルゴリズムには、

いくつかありますが、

その中でも最も基本的なものが、

pure pursuitと呼ばれるアルゴリズムで、

今でも広くロボティクスの世界で使われれています。

 

今回はこのpure pursuitアルゴリズムの概要と、

Pythonサンプルプログラムについて

説明したいと思います。

 

続きを読む

PythonによるReeds Sheppパスプランニングサンプルプログラム

Planning Algorithms

Planning Algorithms

目次

  • 目次
  • はじめに
  • Reeds Shepp Pathとは?
  • Reeds-SheppパスプランニングPythonサンプルプログラム
  • 参考資料

はじめに

先日、Dubinsパスを利用した

パスプランニングの概要とPythonサンプルコードを紹介しましたが、

myenigma.hatenablog.com

Dubinsパスは後進するコースを生成できないため、

目的の位置と姿勢に到達するパスを生成するのに、

大回りのパスを生成したり、

障害物により、コースが生成できないことがありました。

 

そこで、Dubinsパスを拡張し、

後進コースも生成できるようにした

Reeds Sheppパスというアルゴリズムの概要と、

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

 

続きを読む

Python/C++/MATLABユーザのための高速科学計算言語Julia入門

Julia: High Performance Programming

Julia: High Performance Programming

目次

はじめに

最近、

数値計算や最適化の技術を調べていると、

Pythonではなく、

Juliaという新しいプログラミング言語を

使っているのをよく見るようになりました。

The Julia Language

 

そこで自分のような

Python/C++/MATLABユーザの視点から見た、

Juliaの基本的な使い方をまとめてみたので、

紹介したいと思います。

 

Juliaとは?

Juliaとは、

2009年からMITの研究者を中心に開発が始まった

スクリプト言語です。

 

MATLABやPythonなどが得意な

科学技術計算を得意とする言語で、

様々な科学技術計算用のライブラリがデフォルトで内包されています。

 

それ以外にも、下記のような特徵があります。

 

特徴1: 計算が高速

Juliaの大きな特徵として、LLVMのフレームを使った

Just in Time(JIT) コンパイラの技術を使うことで、

非常に高速に計算を実施することができます。

 

下記はjuliaのホームページに掲載されている、

各言語におけるい計算速度のベンチマークです。

C言語の処理を1とし、各言語の比率を計算しています。

下記の結果を見ると分かる通り、

Pythonと比べて、約10倍弱早く、

C言語と比べても2倍ほどしか遅くなっていないことがわかります。

f:id:meison_amsl:20170521064426p:plain

 

特徴2: 動的型付けのスクリプト言語

言語の特徵としては、

前述のように高速でありながら、

Pythonと同じ動的型付け言語です。

ですのでプロトタイプを作るのも簡単です。

 

特徵3: 型を指定することもできる

しかし、複雑なシステムを作る時は、

どうしても型が欲しくなります。

最近PythonでもType Hintが追加されました。

qiita.com

 

Juliaでは、関数の引数における型チェックが、

デフォルト機能として追加されています。

また、型を使ったC++で言う所の関数のオーバロードもサポートしています。

 

特徵4: 数式に近い表現でソースコードが書ける

Juliaは科学技術計算に強いため、

実際の数式に近い表現でソースコードを書くことができます。

例えばほとんどの言語は掛け算の*を省略できませんが、

Juliaの場合は下記のように書くことができます。

Julia> x2 + 2x - 1

 

特徵5: C, C++, Fortran との親和性の高さ

Juliaは十分計算速度が早いのですが、

既存のCやC++,Fortranのコードを使いたい時があります。

 

Juliaは言語の機能として、

CやC++, Fortranのコードの呼び出しをサポートしています。

これはJuliaがLLVMを利用しているため、

CやC++, Fortranのバイトコードと共通性があるためのようです。

 

特徵6: Pythonとも親和性がある

こちらは言語の機能ではないですが、

JuliaからPythonのコードを呼ぶパッケージも公開されています。

github.com

 

個人的にはPythonからJuliaコードを呼ぶライブラリが欲しいですが。。。

 

特徵7: 並行・並列処理に強い

最近の言語であるgoなどは、

マルチコア時代に対応するためか、

並列、並行処理に特化した機能を言語そのものが有していますが、

Juliaも言語のデフォルト機能として、

並行・並列処理のAPIを有しています。

 

Pythonでも並行処理は可能ですが、

GIPがあるためかなり無理が多いです。。

myenigma.hatenablog.com

 

インストール

各プラットフォームでのJuliaのインストール方法です。

Mac

Homebrewでインストールできます

$ brew update

$ brew tap staticfloat/

$ brew install julia

bicycle1885.hatenablog.com

 

JupyterでJuliaを使えるようにする

続いて、Pythonで便利すぎるJupyterが、

Juliaでも対応しているため、

Jupyter用のカーネルをインストールします。

 

juliaのコマンドラインから、

Pkg.add(“IJulia”)

とするだけでインストールされるはずです。

 

自分の環境では、julia0.5.0を使っていたのですが、

上記のコマンドでインストールしようとした所、

gitのエラーがでました。

そこで、

>$ brew update julia

として0.5.1にアップデートした所、

エラーが消えて、無事インストールできました。

 

あとは、普通にjupyterを立ち上げると、

選べるカーネルとしてJuliaが追加されているはずです。

f:id:meison_amsl:20170517081248p:plain

 

これでPythonと同じ感じでJuliaを使えますね。

qiita.com

 

Juliaの外部パッケージの管理

Pythonのpipやcondaのように、

外部パッケージをインストールしたり、

管理したりする時は、

デフォルトのPkgというパッケージを使います。

外部パッケージのインストール

hogeというパッケージをインストールする場合は、

下記の通りです。

julia> Pkg.add(“hoge”)

 

インストールパッケージの確認

Pkg.installed()

 

Juliaを学ぶための資料

下記の資料が分かりやすかったです。

 

参考資料

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

Julia: High Performance Programming

Julia: High Performance Programming

自動車制御のための車両モデル入門

Vehicle Dynamics and Control (Mechanical Engineering Series)

Vehicle Dynamics and Control (Mechanical Engineering Series)

目次

  • 目次
  • はじめに
  • 自動車の代表的なステアリングモデル
    • Kinematic Model
    • Dynamic Bicycle Model
  • 2つのモデルの軌跡比較
  • 直線コースにおけるBicycle Modelの線形ステアリングモデル
  • 目標コース座標系における線形Dynamic Bicycle Model
  • 車両の進行方向モデル
    • 空気抵抗
    • タイヤの推進力
    • 転がり抵抗力
  • より詳しく学びたい方は
  • 参考資料

はじめに

以前、

車両ダイナミクスの基礎という記事を書きましたが、

myenigma.hatenablog.com

myenigma.hatenablog.com

 

今回は自動車制御のための、

様々な車両モデリングの方法と

その特徴について説明したいと思います。

 

続きを読む

さくらVPS上にSoftEtherを使ってVPNサーバ(L2TP/IPSec and OpenVPN)を立てる方法

クラウドVPS入門 運用・構築から高度な利用まで (静岡学術出版理工学ブックス)

クラウドVPS入門 運用・構築から高度な利用まで (静岡学術出版理工学ブックス)

  • 作者: JACC,水野信也,永田正樹,坂田智之,長谷川孝博,井上春樹
  • 出版社/メーカー: 静岡学術出版
  • 発売日: 2010/09/10
  • メディア: 単行本(ソフトカバー)
  • 購入: 1人 クリック: 58回
  • この商品を含むブログ (7件) を見る

目次

  • 目次
  • はじめに
  • VPNの接続方式
  • SoftEtherサーバ(L2TP/IPSec) の立て方
    • 1. さくらVPSの申し込みと設定
    • 2. OS (ubuntu) の初期設定
    • 3. SoftEtherのインストールと起動設定
    • 4. vpnサーバの自動起動設定
    • 5. VPNサーバのアカウント作成
    • 6. SoftEther用のポート設定
    • 7. Mac, iPhone等からVPNに接続する。
  • L2TP/IPSecのサーバに同じLANから複数台同時にVPNサーバに繋げない場合
  • SoftEtherを使ってOpenVPNのサーバも同時に立てる
  • MacからOpenVPNでVPNサーバに接続する
  • iOSからOpenVPNでVPNサーバに接続する
  • Interlink, さくらVPS上のSoftEther(L2TP/IPSec), さくらVPS上のSoftEther(OpenVPN)の速度比較
  • VPNサーバ構築代行サービス
  • 参考資料

 

はじめに

VPNが使用したくて、

インターリンクvpnという有名な

月額1000円のVPNサービスを利用していたのですが、

あまりにも通信のスループットが出ずに困っていました。

(300M超えの回線で、vpnを使うと平均5Mぐらい)

 

そこで、先日、Raspberry Piに

無料のVPNソフトを使って、

VPNサーバを立てる方法を説明しました。

myenigma.hatenablog.com

 

今回は、

同じVPNソフトウェアSoftEtherを使って、

さくらVPSのサーバ上に

VPNサーバ(L2TP/IPSecとOpenVPNの二種類)を

立ててみたので、

その方法を説明したいと思います。

SoftEther VPN プロジェクト - SoftEther VPN プロジェクト

 

続きを読む