MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

オンライン英会話でよく使う表現まとめ

目次

  • 目次
  • はじめに
  • もう一度おっしゃっていただけますか?
  • その単語を書いてくれませんか?
  • *はなんという意味ですか?
  • 辞書で調べさせてください。
  • *はどのように発音するのですか?
  • 今日は大変勉強になりました。ありがとうございました。
  • 声が聞こえません。
  • 映像が見えません。
  • 今日はインターネットが不安定です。
  • スカイプを再起動していいですか?
  • 雑音がすごいです。
  • わからないです。
  • そのとおり
  • ちょっと考えさせて下さい。
  • 今のわかりましたか?
  • それはいいですね。
  • 読書が好きです。
  • 今の会社には5年勤めています。
  • ちょっとまって下さい
  • 何ページですか?
  • 参考資料
  • MyEnigma Supporters

はじめに

最近、

オンライン英会話をしているのですが、

授業を円滑にすすめるために、

いくつか便利な表現を覚えておくと、

授業が円滑に進むと思うので、

ここでよく使用するものをまとめておきたいと思います。

 

続きを読む

Point Cloud Library(PCL)の各プラットフォームへのインストール方法とサンプルコードを動かす方法

目次

  • 目次
  • はじめに
  • PCLのインストール方法
    • Mac (Homebrewを使う場合)
    • Ubuntu
  • PCLのサンプルコードを動かす方法
    • 1. PCLのサンプルコードを書く
    • 2. CMakeLists.txtを書く
    • 3. ソフトのビルドする
  • 参考資料
  • MyEnigma Supporters

はじめに

先日、

Point Cloud Libraryの基本的なモジュールの説明をしたので、

myenigma.hatenablog.com

今回は、各種OSのインストール方法と、

最も単純なPCLコードを

動かす方法について説明します。

 

続きを読む

Point Cloud Library (PCL)の各モジュールの概要

目次

  • 目次
  • はじめに
  • Filters
  • Features
  • Keypoints
  • Registration
  • KdTree
  • Octree
  • Segmentation
  • Sample Consensus
  • Surface
  • Range Image
  • I/O
  • Visualization
  • Common
  • Search
  • 参考資料
  • MyEnigma Supporters

はじめに

ロボティクスにおいて、

三次元点群処理は非常に重要です。

 

Point Cloud Library(PCL)は

ROSからスピンアウトした

三次元点群処理用ライブラリで、

ロボティクスにおいて、

広く利用されています。

PCL - Point Cloud Library (PCL)

  

今回は、

PCLの各モジュールの概要について説明したいと思います。

基本的には下記のオフィシャルドキュメントを意訳したものになります。

 

続きを読む

ネットワーク初心者のためのネットワーク調査ツールnmapの使い方

目次

  • 目次
  • はじめに
  • インストール
    • Mac
    • Ubuntu
    • Windows
  • nmapの使い方
    • 指定したIPのコンピューターの使用ポートを調べる
    • 指定したネットワークの使用されているIPを一覧にする
    • 指定したIPアドレスのコンピューターのOSの確認
  • nmapのGUIソフトzenmapの使い方
  • 参考資料
  • MyEnigma Supporters

はじめに

nmapはフリーのネットワーク調査ツールです。

nmap - Wikipedia

Nmap: the Network Mapper - Free Security Scanner

 

このnmapを使うことで、

あるIPアドレスのコンピューターの使用中のポートを調べたり、

ローカルネットワークに繋がっている

コンピューターの一覧を作ったりすることができます。

 

映画のマトリックスで、

トリニティがハッキングする時に使った

ツールとしても有名になりました。

10hm-matrix.jpg (JPEG 画像, 640x388 px)

 

今回は、

このnmapの使い方についてまとめておこうと思います。

 

続きを読む

ネットワーク初心者のためのssh入門

目次

  • 目次
  • はじめに
  • sshとは
  • sshの基本的な使い方とオプション
    • あるIPアドレスにログインする場合
    • ポートを指定
    • ログインアカウントを指定
    • 秘密鍵を指定してログイン
    • クライアント側のIPアドレスを指定
    • sshのバージョンを表示する
    • X11のGUIをssh越しに使う
  • sshポートフォワーディング
  • sshサーバを立てて、外部から処理をする
    • Macの場合
  • sshで対話的なコマンド入力を自動化する
  • .ssh/config
  • 参考資料
  • MyEnigma Supporters

はじめに

おそらく、

ターミナルで生活するエンジニアにとって、

sshは最も利用するツールの一つだと思います。

 

今回は、

ネットワーク技術初心者である

自分のような人のために、

sshの各種オプションなどの使い方をまとめました。

 

続きを読む

高速最近傍点探索ライブラリFLANNを使ってみる

目次

  • 目次
  • はじめに
  • 最近傍点探索とは
  • FLANN (Fast Library for Approximate Nearest Neighbors)
  • インストール方法
  • C++でFLANNを使う
  • Radius Searchによる最近傍点探索
  • 参考資料
  • MyEnigma Supporters

はじめに

あるデータ群の中で、

最も近いデータを選ぶ

最近傍探索は、

様々なアルゴリズムで使用されますが、

それを高速に実現するには、

データ構造から工夫する必要があります。

 

今回は、上記の目的を達成するための

C++ライブラリFLANNを紹介したいと思います。

 

続きを読む

自作サーバに個人用GitHubを作れるgitbucket入門

目次

  • 目次
  • はじめに
  • GitBucket
  • インストール前にGitbucketを試す。
  • インストール
    • Javaのランタイムを使う
      • UbuntuにJava8をインストールする
    • docker を使う
  • Gitbucketのアップデート
  • 基本的な使い方
  • Jenkinsとの連携
  • gitbucketに関する質問
  • 参考資料
  • MyEnigma Supporters

はじめに

GitHubは最高ですが、

公開したくないコードなどをGitHubで利用するには、

有料プランに入る必要があります。

 

月7ドルなので払ってもいいのですが、

すでに自宅サーバなどを運用している人には、

いわゆるGitHubクローンと言われるソフトを使うことで、

無料で自作サーバに個人用GitHubを立てることができます。

 

GitHubクローンとして有名なものに、

GitLabと

Gitbucketがありますが、

github.com

GitLabはインストールが大変そうだったのと、

見た目があまりGitHubに似てないこと、

そして、GitLabのキャラクターがあまり可愛くないことから、

Gitbucketを今回試してみることにしました。

 

下記で、基本的な使い方や注意点などを紹介したいと思います。

 

続きを読む

ロボティクスにおける地磁気センサの基礎知識

目次

  • 目次
  • はじめに
  • 地磁気センサとは
  • 地磁気センサのデータの単位
  • 地磁気センサの種類
  • 2軸地磁気センサにおける方位計算の方法
  • 3軸地磁気センサにおける方位計算の方法
  • 参考資料
  • MyEnigma Supporters

 

はじめに

これまで

様々なロボット用センサの基礎情報をまとめてきましたが、

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

 

今回は、

ロボットや車両の方位推定にしばしば利用される、

地磁気センサの基礎的知識についてまとめたいと思います。

 

続きを読む

Pythonにおける並列処理プログラミング入門

目次

  • 目次
  • はじめに
  • subprocessによる複数子プロセス処理
  • concurrent.futuresによるマルチプロセス処理
  • Queueによる並行プログラミング
  • 最後に
  • 参考資料
  • MyEnigma Supporters

はじめに

元々Pythonは、

そこまで処理速度が早い言語ではないので、

システムの処理速度を最適化したい場合は、

C++などで書き直した方が良いのかもしれませんが、

Pythonシステムをあと少し早くしたい時には、

並行処理プログラミングをしてみると、

効果があるかもしれません。

 

最近のコンピューターはマルチコアで、

かつハイパースレッディングなどに対応しているため、

複数の処理を同時並行で処理させることで、

処理時間を早くすることはできます。

 

他の言語では、スレッドなどを使って

比較的カンタンに並列処理を実現することができますが、

実はPythonはグローバルインタープリタロック(GIL)という仕組みがあるので、

普通にマルチスレッドのプログラミングをしても、

一つのスレッドづつしか実行されず、

処理が早くならないことが多いようです。

 

そこで、そんなPythonにおいても

上手く並行処理を実施する方法がいくつかあるので、

これらの手法について

簡単にまとめようと思います。

 

詳しいPythonにおける

並行処理のプログラミングについては、

下記の書籍が詳しいため参照下さい。

 

続きを読む

Effective Pythonを読んで心に響いたこと

目次

  • 目次
  • はじめに
  • Pythonのランタイムの種類
  • プライベート属性はアンダーバーを2つ先頭におく
  • リストや文字列の空判定にlenなどは使わない
  • mapやfilterよりもリスト内包表記を使う
  • rangeよりはenumarateを使う
  • オプションのキーワード引数は、位置ではなくキーワードで与えるとコードが読みやすい
  • どんなクラスオブジェクトでも__dict__ですべてのフィールド辞書にアクセスできる
  • Pythonコードのプロファイルを取るにはcProfileを使うと便利
  • 参考資料
  • MyEnigma Supporters

はじめに

以前、C++の名著Effective C++を読んで

心に響いたことを記事にまとめました。

myenigma.hatenablog.com

 

実はこのEffectiveシリーズは、

様々なプログラミング言語で発売されており、

PythonバージョンのEffective Pythonも発売されています。

Effective Python ―Pythonプログラムを改良する59項目

Effective Python ―Pythonプログラムを改良する59項目

 

今回もこのEffective Pythonを読んで、

心に響いたことをメモとして

残しておきたいと思います。

続きを読む