techno_memo

個人用の技術メモ。python・ROS・AI系のソフトウェア・ツールなどの情報を記載

loggingを用いた動作ログ出力

概要 pythonのライブラリloggingを用いた動作ログの出力方法についてまとめる logger loggingはpython標準のログ出力用ライブラリであり、ソフトの動作(デバッグ用情報、エラー、例外など)の発生時刻やレベルを管理してログファイルに出力することができる。…

plotlyによる3Dグラフ描画

概要 pythonのライブラリ plotlyを用いて3Dグラフおよびアニメーションの表示をする方法について記述する 3Dグラフの表示 plotly で3次元の散布図を描画する例を下記に示す。scatter_3dを呼び出し3dxyzの座標を与えればグラフを描画できる。 import plotly.g…

Postgres SQLの導入・環境設定・DBの読み込み

概要 PostgreSQLの導入とDBの基本操作についてまとめる PostgreSQLの導入 Ubuntu 20へのPostgreSQLの導入は下記コマンドを実行する。 sudo apt update sudo apt install postgresql postgresql-contrib 合わせてPostgreSQLのGUI管理ツールである"pgadmin4"を…

plotlyによるグラフ描画

概要 pythonのライブラリ plotlyを用いて数値データをグラフ描画する。 plotly plotlyはブラウザでインタラクティブに操作可能なグラフを生成することができる。 本記事では基本的な使い方と設定方法についてまとめる。 基本的なグラフの描画 plotlyのインス…

matplotlibによる3Dグラフ描画

この記事の目的 matplotlibを用いて3Dグラフを描画する方法についてまとめる matplotlibを用いた3D線グラフ・散布図の描画 matplotlibで3Dグラフを描画する場合は下記のように実装する。 (1) 3D描画用モジュールのインポート matplotlibのインポート時に3次…

C言語用コーディングスタイルの設定(VS Code)

この記事の目的 C言語用のコーディングスタイルの設定方法について記述する。 clang_format によるコーディングフォーマット設定 clang_formatはC言語用のフォーマットツールであり、本ツールを用いることでコードを設定値に応じた書式に自動で変換すること…

Visual Studio Code C言語開発環境の設定 (Linux/gcc)

この記事の目的 Visual studio codeを用いてLinux上でgccを用いたC言語開発をする時の設定方法について記述する。 1. 必要なツールのインストール 下記コマンドでgcc(build-essentialはコンパイラ・ライブラリ・makeツール)、gdb(デバッグ用ツール)をインス…

VS codeでRemote SSH/SFTPを利用した開発環境の構築

この記事の目的 Visual studio codeを用いて他PCのプログラムを変更しやすいRemote SSH開発環境構築をする方法について記述する 1. Visual studio code へのRemote SSH 拡張機能 Remote Developmentをインストールする marketplace.visualstudio.com リモー…

Visual studio code を用いたgit操作

この記事の目的 1. Visual studio codeを用いたgit操作 2. 拡張機能 4.変更履歴の確認 5.ブランチの作成・移動 6.変更の反映 (コミット/プッシュ) 7.リモートリポジトリの変更内容取得(プル)、コンフリクトの修正 この記事の目的 Visual studio codeを用いて…

ROS2 navigation stack odometryの出力

この記事の目的 1. スクリプトの構成 1. publish/subscribe処理の実装 2. 位置情報・TFの計算方法 この記事の目的 ROS2のnavigation stack用にpython scriptからodometryを出力する方法をまとめる。 ROS2とnavigagiton2 は下記記事に従って導入済みであるこ…

ROS2導入・初期設定

この記事の目的 1. ROS2の導入 2. チュートリアルの実施 3. navigation stackの導入 この記事の目的 ROS2の導入と初期設定・注意点等についてまとめる 1. ROS2の導入 Ubuntu20.04を利用している場合、下記サイトに従ってROS2 forxyを導入する。 docs.ros.org…

git設定・コマンドまとめ

この記事の目的 1. gitのインストールと初期設定 2. gitコマンド 2.1 リポジトリの作成・クローン 2.2 ブランチの操作 2.3 コミット操作 2.4 プル操作 2.4 プッシュ操作 参考資料 この記事の目的 gitの設定・コマンドについてまとめる。(個人用メモ。逐次追…

Visual Studio Codeの便利な設定・拡張機能

この記事の目的 1. 共通設定 1. ソフト開発用の設定/拡張機能 C言語用設定・拡張機能 Python用設定・拡張機能 2.ドキュメント作成用の設定/拡張機能 3.設定・拡張機能の別PCへの移行方法 この記事の目的 Visual Studio Codeの便利な設定・拡張機能についてま…

画像認識② YoloV3を用いたWebカメラ画像の物体検出

この記事の目的 1. 移動ロボット用の物体検出アルゴリズム 2. YoloV3のインストール/Python2+OpenCV用のインターフェース設定 3. Webカメラ画像の物体検出/ROS Topicの出力 この記事の目的 YoloV3を用いてWebカメラ画像から物体検出をしROS Topicで判定結果…

ROS 移動ロボットの経路追従制御(Pure Pursuit)

この記事の目的 1. move_baseにおけるロボットの移動経路追従 2. Pure Pursuitによる移動ロボットの経路追従 3. Pure Pursuitの実装 この記事の目的 ROSで移動ロボットの経路追従制御を実装する 1. move_baseにおけるロボットの移動経路追従 前回の投稿でROS…

ROS 移動ロボットの走行経路を設定する

この記事の目的 1. move_baseにおけるロボットの移動経路 2. ロボットの走行結果を保存する 3. ロボットの走行結果を走行経路(Path)としてPublishする この記事の目的 ROSで移動ロボットの経路を設定する方法についてまとめる 1. move_baseにおけるロボット…

ROS シミュレーション上でロボットを移動させる

この記事の目的 1. ROSで移動ロボットを扱うための仕組み 2. 地図情報の読み込み(mapserver) 3. 現在位置(Odometry)の生成 4. 座標変換情報の設定 5. シミュレーションの実行 この記事の目的 ROSシミュレーションでロボットを移動させるスクリプトの作り方を…

ROS URDFファイルによるモデル作成

ROS

この記事の目的 1. URDF(Unified Robot Description Format)ファイルについて 2. URDFの記述 3. TFの発行とrvizでの可視化 この記事の目的 ROSでURDFファイルを記述してロボットモデルを作成する方法についてまとめる 1. URDF(Unified Robot Description For…

matplotlibのアニメーション描画

この記事の目的 1. 時系列データの可視化について 2. matplotlib可視化ライブラリ 3. animatplotを使ったデータの可視化 この記事の目的 pythonのmatplotlibを使ってアニメーションデータを表示/gif形式で保存する機能についてまとめる。 1. 時系列データの…

Virtual Box (Ubuntu) の導入

この記事の目的 1. 仮想PCツールについて 2. VirtualBox導入方法 1. OSのISOファイルの取得 2. VirtualBoxのダウンロードとインストール 3. Ubuntuのインストール 4. ネットワーク設定 5. Windows/Ubuntu間の共有フォルダの設定 6. コピーアンドペーストの設…

Raspberry pi でWebカメラ映像を処理する方法(OpenCV)

この記事の目的 1. Webカメラ動画のストリーミング配信 2. Webカメラの画像をOpenCVで処理する 2.1 Raspberry pi 上でWebカメラ画像を処理する 2.2 ストリーミングした画像を取得してOpenCVで処理をする この記事の目的 Raspberry pi でWebカメラを用いて撮…

ROS端末間のTopic通信 (デスクトップPCとRaspberry pi )

この記事の目的 1. デスクトップ PC とRaspberry pi 間のTopic 通信 1.1 IPアドレスの確認/設定 1.2 SSHの設定 1.3 ROS設定の修正 1.4 ROSノードの起動 この記事の目的 ROS 端末間 (デスクトップPCとRaspberry pi )のTopic 通信についてまとめる 1. デスクト…

Ubuntu18.04用 ROS環境開発構築

この記事の目的 1.Ubuntu18.04 LTSについて 2. Ubuntu16.04からのアップデート手順 3. nvidia 用 GPUドライバの更新 4. ROS melodicのインストール 5. その他の開発環境のインストール Arduino IDE Visual Studio Code と Pycharm この記事の目的 Ubuntu18.0…

ArduinoとPCの通信(シリアル通信)

この記事の目的 1.Arduinoのシリアル通信機能 この記事の目的 ArduinoとPC間でのシリアル通信についてまとめる 1.Arduinoのシリアル通信機能 ArduinoでPCと信号の送受信を行う場合、USBケーブルを使ったシリアル通信が最も便利な手法である。 Arduino標準のS…

pygameを用いたゲームパッド操作機能の実装

この記事の目的 pygame pygameとは インストール GUI描画(Hello World) とキーボード読み込み コントローラの読み込み ジョイスティックの初期化 ジョイスティック(アナログバー)の読み込み 方向ボタン(ハットスイッチ)読み込み この記事の目的 pythonのラ…

ROS入門 ワークスペース/パッケージ/ノード (python開発環境/vscode導入)

この記事の目的 pythonを用いたROSプロジェクト構築 1 ワークスペースの作成 2 パッケージの作成 3 Visual Studio Codeの導入 この記事の目的 pythonを用いたROSのパッケージの作成・ノードの実装・トピックの送受信についてまとめる。 Visual studio Codeを…

ROS入門 (概要/用語/コマンド)

この記事の目的 ROSの考え方/用語の整理 ROSのプロセス/通信の概念・用語 ROSコマンドの使い方 (チュートリアルを利用) 1.roscoreの起動 2.ノードの起動 rosrunコマンド roslaunch 3.動作結果の確認 コマンドによる確認 GUIによる確認 rvizによる確認 4.動作…

Raspberry pi 開発環境について(Ubuntu Mate設定/ROS導入)

この記事の目的 必要なハード 環境構築手順 1.SDカードの初期化 2.OSイメージの焼き込み 3.初期設定 システムの更新 日本語入力対応 IP固定 ファイル共有設定 リモートデストップの有効化 4. ROSのインストール この記事の目的 RaspberryPi3(with ROS/Python…

Raspberry pi 開発環境について(ハードウェア)

この記事の目的 必須ハード Raspberry pi 本体 AC電源アダプタ micro SDカード マウス/キーボード/HDMIケーブル モバイルバッテリ カメラ ブレッドボード/ジャンパハーネス この記事の目的 Raspberry pi の電子工作の開発環境について必要なハードウェアに関…

C言語経験者がpythonで開発する際のポイントまとめ

この記事の目的 C言語開発者がpythonを開発する際のポイント 別ファイルのimport方法 変数/定数の定義 const (定数)について defineについて global変数・static変数について この記事の目的 C言語(特に組込みソフト)経験者がpythonで開発する際のポイントを…