OpenNH

日常のひとこま(自分用のメモとかあれこれ)

たまに調べるpythonコマンド 〜未分類〜

たまに使い方を調べるpythonのコマンドについていっそまとまておこうと思い載せておく。 このページのものは未分類なので後々分類していく予定。

  • システム操作系
    • プログラムを終了させる
  • GUI系 (tkinter)
    • メッセージボックスの表示
    • エラーメッセージの表示
    • Yes/Noの選択メッセージボックス表示
  • 日時系
    • 現在時刻を取得
  • class操作
続きを読む

たまに調べるpythonコマンド 〜ファイル操作〜

たまに使い方を調べるpythonのファイル操作についていっそまとまておこうと思い載せておく

カレントディレクトリのパスを取得

import os
path = os.getcwd()

ファイルの存在を確認する

import os
path = "./your/search/file/path"
os.path.exists(path)

ファイルの拡張子判別

import os
file = "test.txt"
if file.endswith('.txt'):
    print("text file")
else:
    print("not text file")

拡張子を除いたファイル名を取得

import os
filename = "test.txt"
name_only  = os.path.splitext(os.path.basename(filename))[0]
# name_only : test

Mac Book M1 でDocker環境を試してみる

f:id:FounderLeis:20201222192411p:plain

目次

  • 目次
  • はじめに
  • Docker Desktop for M1 のダウンロード
  • Docker Desktopのインストール
  • Docker versionの確認
  • Dockerコンテナを動かしてみる
  • VS code環境の設定

はじめに

Docker DesktopのApple silicon M1用のパブリックプレビューが開始されたということで、試してみることにしてみました。

「Docker Desktop」のパブリックプレビューが開始 ~1,000人以上の開発者が参加 - 窓の杜

Docker Desktop for M1 のダウンロード

Docker Desktop for M1 は以下からダウンロードすることができます。

Download and Try the Tech Preview of Docker Desktop for M1 - Docker Blog

Docker Desktopのインストール

上記リンクからダウンロードした.dmgファイルをダブルクリックして開きます。

f:id:FounderLeis:20201222191230p:plain

続きを読む

Dockerでpython3+OpenCVの環境を整えてみる

Macbook air を購入したので、お試しがてらDockerでOpenCVの開発環境を整えてみようとしたらハマったので、その対処などをメモしておきます。

目次

  • 目次
  • やりたいこと
  • 環境
  • 環境構築開始
    • イメージの取得とコンテナ起動
    • Python3 + OpenCVのインストール
    • エラー1つ目: skbuildモジュールがない !
    • エラー2つ目:Numpy関連部分でエラー!
      • numpyをpipインストールする際のエラー
      • 対処
      • 参考にしたサイト
    • OpenCVようやく入る
    • コンテナからDocker ImageとDockerfileを作成
  • Dockerfileをつくるとこんな感じ

やりたいこと

Dockerコンテナ上で、以下の環境を整える。

  • Docker image : Ubuntu18.04:latest
  • Python3
  • OpenCV

環境

M1のMacbook向けのDocker desktop for M1がインストール済みであることを前提にしています。

$ system_profiler SPHardwareDataType
Hardware:

    Hardware Overview:

      Model Name: MacBook Air
      Model Identifier: MacBookAir10,1
      Chip: Apple M1
      Total Number of Cores: 8 (4 performance and 4 efficiency)
      Memory: 16 GB
      System Firmware Version: 6723.50.2

$ docker --version
Docker version 20.10.1, build 831ebeae96

$ docker-compose --version
docker-compose version 1.27.4, build 40524192
続きを読む

ROS2環境のセットアップ (Ubuntu18.04)

目次

  • 目次
  • はじめに
  • ロケールのセットアップ
  • パッケージリポジトリをaptソースリストに追加
  • ROS2パッケージのインストール
  • 環境変数の設定
  • 動作確認

はじめに

今更ではあるけど、Ubuntu環境がぶっ壊れて再度ROS2の環境構築することがあったのでメモしておこうと思って書いたものです。あまり信用しないでください。
それにしても、マウス・キーボードどちらも受け付けられなくなってあれはどう対処すればよかったのだろうか…OSから再インストールしたけど他に方法があった気がしてならない。

なにはともあれUbuntu18.04で、ROS2 (Dashing Diademata)の環境構築メモです。

あと、ROS1がすでにインストールされている環境の場合は、ROS1を無効化してからROS2の環境構築してください。

続きを読む

Python3でROS2を初める(Ubuntu18.04LTS)

目次

  • 目次
  • はじめに
  • 環境構成
  • ROS2パッケージの生成
  • package.xmlの記述
  • setup.pyの記述
  • トピックの実装
    • publisher.py
    • subscriber.py
  • ビルドと実行
    • colcon build
    • 実行
  • 参考


はじめに


ROS2にはPython3用のクライアントライブラリ「rclpy」が提供されています。 そこでこの記事では、rclpyを使った基本的なpublisher/subscriberのROS2パッケージ作成方法について簡単に紹介します。
書き方が正しくない可能性がありますので、ご指摘はコメント欄にお願いします。

環境構成

colcon_ws
 ├── buld
 ├── install
 ├── log
 └── src
     └── <package1>
     └── <package2>
      ...


ROS2パッケージの生成


ros2 pkg createコマンドでROS2パッケージの雛形を生成します。今回はrclpyを利用するので、--build-typeでament_pythonを指定します。 なお、C++のROS2パッケージを生成する場合は、ament_cmakeとします。

$ cd ~/colcon_ws/src
$ ros2 pkg create --build-type ament_python py_hello_ros2

ここで、「py_hello_ros2」はパッケージ名であり任意に設定してください。

上記コマンドでパッケージを生成すると、以下のような構成となっているはずです。 ROS2のPython3パッケージではCMakeLists.txtは必要なく、package.xmlとsetup.pyだけでよくなりました。

$ cd py_hello_ros2
$ tree
.
├── package.xml
├── py_hello_ros2
│   └── __init__.py
├── resource
│   └── py_hello_ros2
├── setup.cfg
├── setup.py
└── test
    ├── test_copyright.py
    ├── test_flake8.py
    └── test_pep257.py
続きを読む

Markdownで文書作成するメリットと書き方

目次

  • 目次
  • Markdownのメリット・デメリット
    • メリット
    • デメリット
    • エクセル、ワードとの比較
  • エディタ環境
  • Markdownの書き方
  • ダイアグラムの記述方法
  • その他
    • csvファイルから表の作成
    • ヘッダー・フッターの記述
    • word形式に出力
    • 参考

Markdownのメリット・デメリット


ワードやエクセルにもいいところがありますが、複数人で同じファイルを管理したり、仕様書などのようにバージョン管理されている文書に関してはMarkdownを用いることが有効だと思っています。そこで、筆者が自分なりにメリット・デメリットをまとめてみました。この記事も、Markdownによって記述されています。

メリット

  • テキストなので軽い
  • Git等でバージョン管理が行える
  • 変更履歴を差分として残すことができる
  • シーケンス図などが簡単にきれいに記述できる
  • 見た目がきれい
  • html, pdf, docxファイルなど他形式への変換が可能
  • 環境に依存しない(Officeが無くても使える)

デメリット

  • 表の作成がしにくい  → エクセルで作成し読み込める
  • 書き方を覚える必要がある → 一度覚えてしまえば効率的。比較的覚えやすい
  • 作成結果をいちいち確認する必要がある → VScode,Atomを利用すれば書きながらプレビュー可能

エクセル、ワードとの比較

シーン                                エクセル, ワードの仕様書 マークダウン仕様書
変更管理 変更管理ページを設け記載するため、変更記録に抜け漏れが発生する。わざわざ修正箇所を赤字にしている。 バージョン管理ツールにログとして残るため明確
差分        とれるツールもあるが使い勝手が悪い Git diffで変更箇所が明確
修正点の指摘        指摘リストのエクセルなどを作り、担当が修正し、再度確認を行っている。 GitHubを利用すればプルリクエストで第三者も容易に修正提案ができ、マージを終了した時点で修正が完了し、再度確認をする必要もない。
仕様書参照        技術的には可能(ハイパーリンク機能)だが運用されていないため、毎回文書を開き直し、該当箇所を探している 相互にリンクを貼ることが当たり前になっていて、問題の箇所がすぐに見られる
表作成        エクセルが使いやすい エクセルには勝てないが、エクセルの表から変換可能。cvsファイルも読み込み可能。

(*コチラのサイトを参考にさせてもらいました)



エディタ環境

筆者はVScodeを利用しています。

Markdownに関するプラグインは以下の6こを入れています。

詳しくはコチラを参照してください。 oratio.hatenablog.com

続きを読む