アプリとサービスのすすめ

アプリやIT系のサービスを中心に書いていきます。たまに副業やビジネス関係の情報なども気ままにつづります

ハードウェア

Jetson nanoと超音波センサー(HC-SR04)で奥行きの距離を測定

前回はステレオビジョンで奥行きを測定したけど、今回は超音波センサー(HC-SR04)を使って奥行きを測定した。個人的な備忘録なので、簡単にまとめてく。目次 1. 配線の構成図 2. 超音波センサーで奥行き測定 3. ステレオビジョンと超音波センサーのメリット…

機械学習でC++の代わりにRustの開発環境構築

機械学習でC++の代わりのコンパイル言語の『Rust』の開発環境を構築したのでその備忘録。目次 1.ubuntuでJupyter notebook 2. opencvでカメラを使ってみる1.ubuntuでJupyter notebook # rustをubuntuにinstall curl https://sh.rustup.rs -sSf | sh source $…

レーザーシステムのレーザーの射出角度の設定方法の備忘録

ソフトウェアとハードウェアでカメラに写ったターゲットを自動追尾するレーザーシステムを作るのでハードウェア側でレーザーで、下の2点を考えてレーザーの射出角度の設定方法を2つ考えた。・なるべく正確にターゲットに照射する ・設定にコストがかからない…

JetPack4.6.0とJetson NanoでPytorchとOnnxでyolov7の物体検出の環境設定(2023/02)

Jetson NanoでPytorchとOnnxで機械学習の物体検出とその環境設定をしたのでその備忘録。 ちなみに2023の2月でJetson NanoのJetPackの最新版は「4.6.0」今回は「4.6.0」で環境構築してみた。 目次 1. versionと必要用語 2. 必要なライブラリのinstall 3. Pyt…

PCA9685とjetson nanoで複数のサーボモータを動かす

Jetson nano でPWMコントローラーのPCA9685を使ってサーボモータを複数動かすまでの備忘録。PWMコントローラーを使えば、モータを16個同時に操作できるし、スクリプト側でマルチthreadingを使わなくて済むとかいいことばかりなので使ってみた。あとPWMコント…

Jetson Nano セットアップ備忘録 (Pytorch , onnxとか動かすまで)

Jetson nanoを使ったのでセットアップの備忘録。「nv-jetson-nano-sd-card-image-r32.3.1(JetPack 4.3)」のページのイメージをMicro SDカードに焼いた。(from qiitaの記事) JetPacはtensorflowの都合でJetpack==4.3にした。パーツ一式はこのサイト「Mac でJe…

Jetson本格仕様セットアップTips part2

Jetson NanoのJetPack SDK Card imageをinstallした後の、本格的に使うためのセットアップのTipsのメモのpart2。目次 1. GUI機能の無効化でメモリ消費量を抑える 2. 電源をACアダプターからmicroバッテリーに変換する 1. GUI機能の無効化でメモリ消費量を抑…

Jetson本格仕様セットアップTips part1【ハードウェア】

Jetson NanoのJetPack SDK Card imageをinstallした後の、本格的に使うためのセットアップのTipsのメモ目次 1. JetPack SDK Card imageをdownload (JetPack=4.6.1) 2. Jetson Nano上での必要パッケージのupdate 3. スワップ領域の確保 4. パワーモードの切り…

MacからJetson NanoにRDP接続する(Headless化)

Macからjetsonにssh接続できる環境は前の記事でできた。 trafalbad.hatenadiary.jp けどいかんせん、Jetson Nano用のキーボード、マウス、ディスプレイをいちいち接続するのが面倒で邪魔だから、なんとかしたいということで、・コマンドライン操作だけできれ…

MacからJetson NanoにVNC接続する(headless化)

Macからjetsonにssh接続できる環境は前の記事でできた。 trafalbad.hatenadiary.jp けどいかんせん、Jetson Nano用のキーボード、マウス、ディスプレイをいちいち接続するのが面倒で邪魔だから、なんとかしたいということで、・コマンドライン操作だけできれ…

Jetson nanoでPWM制御をするまでの手順【ハードウェア】

今回はJetson nanoでPWM(Pulse Width Modulation)制御をするまでの手順をまとめてく。Jetson nanoでPWMのPinは「32, 33」の二つ。 これを使ってサーボモータをマルチスレッドで二つ動かす。 目次 1. 配線図 2. Jetson nanoでGPIOのインストール 3. PWM設定-…

物体検出(yolov7)のバウンディングボックスから奥行きの距離(depth)を計算してみた

Jetsonに2つのカメラをつけて、それぞれに物体検出のyolov7で推論をかける。そこで得たbboxの位置座標から視差(disparity)を求めて、奥行きの距離(depth)を求めてみた。その過程と結果の備忘録 1. データセットの用意 2. disparityからdipthを求める手順 3. …

Swiftでファイルをs3にuploadしてみる。

目次 1. cocoapodsをinstallして、Podfileからライブラリをinstall 2. AWSのUpload用のバケットをs3で作成 3. AppDelegate.swiftにS3のupload用のコードに貼り付け 4. SwiftからS3に画像をアップロード 5. s3で画像の確認 1. cocoapodsをinstallして、Podfil…

ROSでJetson nanoで撮影したカメラ画像を遠隔でホストPCのブラウザに表示する

Jetson Nanoで以前USBカメラを接続した。trafalbad.hatenadiary.jp 今回VNC接続した身軽な状態のjetson nanoで撮影したカメラ画像を、遠隔でホストPCのGoogle chrome (Safari)で表示してみた。 その備忘録 目次 1. Jetson Nanoでブラウザに表示するための準…

Depth画像から点群データ(Point Cloud Data:pcd)を作る方法

本来は、lidarで取得するpcd(点群データ)をdepth画像から作成する手順。 理由はlidarからだと綺麗なpcdが撮影できない感じがしたから。なのでdepth画像とrgb画像を合わせてpcdを作ることにした。目次 1. lidarから直接pcdを作成する 2. depth画像とrgb 画像…

Jetbotをgazeboで動かすまで その2

前回の続きでgazeboで動かすのに必要なところをまとめてくだけ。 シュミレーション環境にはturtlebot3を使った。 目次 1. gazeboの環境設定 2. JetbotのXacroファイルをgazeboに対応させる 3. gazeboのコントロール用のdiff_drive_controllerのパラメーター…

Jetbotをgazeboで動かすまで その1

Jetbotという車輪型ロボットのRvizのみ対応のコードをgazeboに対応させて、シミュレーション上で動かせるようにした。 Rviz用のJetbotファイルをgazeboで動かすまでをざっとまとめた備忘録その1目次 1. gazeboに対応させる手順 2. 今回の概要 3. gazeboプラ…

XacroでURDFを簡略化して記述

前回書いた記事のURDFファイルをXacroで書き直した。trafalbad.hatenadiary.jpかなり簡単に書けたので、おすすめ。 目次 1. xacroファイル 2. xacroの特徴 3. collisionタグとinertialタグの挿入 4. 表示 1. xacroファイルcar_robot.xacro <robot name="macroed" xmlns:xacro="http://ros.org/wiki/xacro"> <xacro:property name="width" value="0.2" /> </xacro:property></robot>

robot_state_publisherでURDFファイルのロボットをrvizで表示する。

URDFファイルで記述したロボットのシミュレーションロボットを動かすための手順は 1. Gazeboの起動 2. ロボットモデルをrobot_descriptionにloadする 3. robot_state_publisherの起動 4. ロボットモデルをGazebo上にスポーンさせる(urdf_spawner) 5. ロボッ…

自宅のWifiネットワーク環境をHusarnetでVPN化。ROSでホストPCとJetson nanoのVPN遠隔操作

wifiの代わりにVPNのHusarnetを設定した。このおかげで、ホストPCとjetson nano遠隔通信がほぼどこでも行えるようになった。 OpenVPN、WireGuardとかSoftEther VPNでもいいけど、HusarnetがROSをターゲットにしててかなり相性がいい。 VPNネットワーク図 注…

realsense lidarで取得したdepth(深度)画像をrosbagでpng画像として保存する方法

depth(深度)画像をbagファイルに保存してから、pngの画像に変換して保存する方法。 目次 デモ:lidarでcolor画像をbagファイルに保存してjpegで保存 1. realsense-viewでbagファイルの作成 2. realsense-rosで点群/depth画像の表示 3. depth画像をbagファ…

ROSで画像を圧縮してJetsonからホストPCへ遠隔で送信

画像を圧縮してJetson側からホストPCに送信して保存してみた。 そのとき圧縮効果でどれだけ速度が上がったのかを、webカメラとlidarの両方で調べてみたのでその備忘録。結果からいうと、web(USB)カメラとLidar両方で、速度向上の効果があった。 ちなみに圧縮…

Jetson Nano上のRealSense-Lidar(L515)とホストPCをROSで遠隔通信してみた

今回はJetson Nano上でRealsense Lidar(L515)を動かして、遠隔通信でデータをホストPCに送るまでの備忘録環境 ubuntu 18.04.5 LTS CMake 3.10.2 Python 3.6.9 Opencv 4.1.1 JetPack 4.3作業全体構成 目次 1. Librealsenseのinstall 2. Jetson nanoにrealsens…

PCからJetson NanoをROSで遠隔操作とsshログインするまで

ホストPCから大体ハードウェアのJetson NanoをROSの遠隔操作とsshでログインまでの備忘録目次 1 Jetson Nanoのセットアップ 2.Jetson NanoにROSのinstall 3.パッケージ等の作成 4.ホストPCからJetson NanoをROSで遠隔操作 5. ホストPCからJetsonへsshでログ…

ubuntu 20.04のROSでRealSense Lidarのセットアップ

ROSでLidarを起動してみるまでのセットアップ手順 環境 ・Ubuntu 20.04 ・ROS noetic ちなみに製品は「Intel RealSense LiDAR Camera L515」。 Note: Set up at 2022/01/13 realsense Lidar一覧表 目次 1 Intel Realsense SDK インストール 2. realsense-ros…

ROSでc++の引数(argv)をlaunchファイルで渡す方法

ROSでのc++のコードで引数argument (argv)をlaunchで渡す方法のまとめ。 c++スクリプトの用意簡単なcppを準備。cloud_loader.cpp #include <ros/ros.h> #include <sensor_msgs/PointCloud2.h> #include <pcl_conversions/pcl_conversions.h> #include <cloud_common.h> class CloudLoadingHandler { public: CloudLoadingHandler(ros::NodeHandle &nh, c</cloud_common.h></pcl_conversions/pcl_conversions.h></sensor_msgs/pointcloud2.h></ros/ros.h>…

ROSで独自Service用ファイルを作ってService通信を試す

ROSの通信で頭の隅に置いとく知識・ROSで行う通信(Topic通信とか)はmsgファイルのデータ型で行う。 ・Service通信も拡張子がsrvのファイルのデータ型で行う。 備忘録なので独自設定のservice通信を動かすまでの過程を、淡々とまとめるだけの構成。目次 1. …

ROSの基本プログラムのTopic通信(非同期通信)を動かす

今回はROSの基本のPublisherとSubscriberを使ったROSの基本プログラムtopic通信(非同期通信)をうごかしたので、その備忘録。仕組みとしてはこんな感じ・Topic :データを書き込む場所(非同期通信のメイン) ・Service :publisher側でsubscriberの結果を受…

ROSのインストールと基礎動作確認まで

ロボットを動かすミドルウェアrosを使うために、rosのinstallと簡単な初期動作の備忘録。 rosのバージョンはNoetic。ROSのバージョン表 ディストリビューション名 Ubuntuのバージョン サポート期限 Indigo 14.04 2019年5月 Kinetic 14.04 2021年5月 Melodic …

pythonの並行処理・並列処理コード集の備忘録

pythonで並行処理・並列処理系のコードの備忘録 ・multiprocessing ・concurrent.futures ・thread ・古いPython2系のバージョンだとこのモジュールしかなかったりするものの、基本的には使い勝手が悪いので使わない。・Python3系では間違って使わないように…