3D LiDARデータの表示はカッコいいけど、直近で使いたいのはLaserScan形式。 いずれ実現したいと思っているナビに必要なのも、LaserScan形式。 (しばし沈黙) というわけで、PointCloud2をLaserScanにリアルタイム変換してみました。 といっても、pointcloud-…
Livox 3D LiDARで困ったのは、取得する点群情報のフォーマットをどうするか。 livox独自フォーマットなら、FAST_LIOなどで使えるが、rviz2では表示できない。 PointCloud2フォーマットだと、rviz2では表示できるけど、FAST_LIOで使えない。 両方扱えると嬉し…
3D地図作成は、3D LiDARを入手したらやってみたかった事の一つ。 今回、FAST_LIOというパッケージを使って、3D地図を作ってみました。 作成できた地図 地図作成セット 地図作成に必要な手持ち機材がゴチャっとしてたので、一つにまとめるために作成。 ノート…
PCを立ち上げるたびに毎回手動でLaunchファイルを立ち上げるのはとても面倒。 PC起動時に自動で起動させれば楽できるけど、そのためにはsystemdのユニットファイルというのを作らないといけない。 ユニットファイルは自由度が高いので書き方に迷うし、使用す…
3D LiDAR Mid-360をROS2で動かすために公式が「Livox LiDAR用 ROS および ROS2 用ドライバー livox_ros_driver2」を提供してくれている。けど、公式のlivox_ros_driver2は、colcon buildでビルドできない、ビルド時に中間生成物を全部消すという謎仕様。。。…
3D LiDAR Livox Mid-360とPCを接続し、公式Viewerで点群を表示したときのメモです。 環境 PC: TRIGKEY: Green G5 OS: Ubuntu 22.04.3 LiDAR: Livox Mid-360 Mid-360側IPアドレス Livox Mid-360とPCの接続にはEthernetを使用する。 Mid-360の初期IPアドレスは…
ついに憧れの3D LiDARを購入。機種はLivox Mid-360。 購入したものの標準ケーブルだと長過ぎて邪魔なので、ケーブルを自作してみました。 といっても、市販のケーブルを切って、イーサネットのプラグをつけただけです。 注:自作ケーブルによるトラブルはメ…
前回の続きで、次はROS2上で動かすべく、M5Atomとmicro-ROSで超音波センサー情報を配信するプログラム m5_ros2_multi_ultrasonic を作ってみました。 M5Stackとmicro-ROSの組み合わせは2~3年前は面倒な印象だったけど、いつの間にか以前より簡単になって…
ロボットの障害物検知用に超音波センサーを3~6つ動かしたくなったので、作成してみた。 環境 Windows 11 PlatformIO M5ATOM Lite M5Stack用Port A I2C拡張ハブユニット(PaHUB2 Unit) M5Stack用超音波測距ユニット I2C 3つ ハードウェアの選定と組み立て お…
久々にROS2を動かしてみたくなったので、まずはコントローラーで turtlesim を動かしてみました。 使用したコントローラーはペアリングとかも不要で簡単にワイヤレス接続できる Logicool Wireless Gamepad F710。 過去にROSで扱ったことがあるはずだけど、色…
www.sato-susumu.com 前回はUIFlowでDDT M06ダイレクトドライブモーターを動かしたけど、最終的にはROS2で動かしたいと考えているので、その一歩手前として次はC++で動かしてみました。 もっとコンパクトにしたいので、前回と違って、M5Stack ATOMS3+ATOMIC…
前回はPCから「DDT M0601C_111ダイレクトドライブモーター」を動かしましたが、今回は最近お気に入りのM5StackとUIFlowを使って動かしてみました。 M5StackもUIFlowもいい感じにモジュールが揃っているので、サクッと試すにはちょうどいいです。 スマホから…
静かで、パワフルで、制御が簡単、そんな都合のいいモーター「DDT M0601C_111ダイレクトドライブモーター」。発売開始は2年前なので、まあ今更ですけどお手軽にプログラムを書かずに動かしてみました。 この記事に記載した方法は、型番は違うけどWaveShareの…
前回作ったレゴロボットを2体用意して、一つのロボットを動かすと、もう一つも全く同じ動きをする仕組みを作ってみました。この仕組みをマスター・スレーブシステムというらしい。名前ダサカッコいい。 手順はレゴモーターの各角度を取得して、もう一体のロ…
Pybricksは、レゴの各種スマートハブのためのオープンソース開発環境。これを使うと、PythonやScratchのようなビジュアルプログラミング言語を使用して、レゴのモーターを動かしたり、Bluetoothを介して通信したりすることが簡単にできる。ただし、Pybricks…
LangChainで用意されている代表的なVector StoreにChroma(ラッパー)がある。 ドキュメントだけ読んでいても、どうも使い方が分かりにくかったので、適当にソースを読みながら使い方をメモしてみました。 VectorStore作成 データの追加 データの検索 永続化 …
LangChainでテキストを分割するとき、ライブラリに含まれるRecursiveCharacterTextSplitterをそのまま使っても問題ないんだけど、なんとなく素人考えで、分割したテキストも読みやすい方がいいかなーと思って、句読点で分割してくれるTextSplitterを作ってみ…
最近、ChatGPTを使ったAI対話システムの開発をしている中で、ChatGPTが返した文章に感情情報を付与したいなーと考えてました。ChatGPTプロンプトで設定するという方法もいいのですが、もっと自由に、ネガティブまたはポジティブよりももっと豊かな感情を扱い…
Pythonを使って、人間3Dアバター向けのフォーマットであるVRMのアバターの表情を動かしてみました。 といっても、Pythonから直接VRMをゴリゴリではなく、「VMagicMirror」というVRMアバターを動かすアプリを使用しています。 このアプリは、MIDIからの入力で…
まえから音声対話に興味があったので、作りかけだったシステムにChatGPT APIをつなげてみました。 ChatGPTで遊ぶのは面白いけど、キーボードでカチャカチャ入力するのが面倒だったので我ながら大満足な出来ばえ。自画自賛。なお、中身はChatGPT、Googleスト…
GCPに音声認識APIがあることを知識としては知っているけど、あんまり使ったことがなかったので使ってみました。 Speech-to-Text API V1の音声認識方法には「同期認識」「非同期認識」「ストリーミング認識」の3種類があります。 ネットで見かけるサンプルは…
ウェイクワードは「アレクサ」や「OK Google」みたいな音声認識を開始するための言葉。 そのウェイクワード検出がしたくなったので、前々から気になっていたpicovoice社のPorcupine(ポーキュパイン)を使ってみました。 Porcupineは日本語に翻訳すると「やま…
GCPに音声合成APIがあることを知識としては知っているけど、使ったことがなかったので使ってみました。 ネットで見かけるサンプルはmp3ファイルに保存する例が多いけど、自分が使いたい用途はファイルに保存せずに再生だったので修正。 動作確認環境 Windows…
音声認識で何か作ってみたいなーと思いつつ、調べて動かすだけでも疲れたので、ひとまず整理。 音声対話で使いたいので、認識精度が良いAPIやレスポンスの早いストリーミング方式を中心に記載。 動作確認環境 バッチ方式 SpeechRecognitionライブラリ ストリ…
前回の記事で音声再生に悪戦苦闘していたけど、音声再生/録音するだけならWSLgでとっくに対応していた。。。 そのWSLgが組み込まれたWSL2なら、あっけないくらい簡単に再生/録音できた。 (WSLgはWindows11の比較的新しいWSL環境なら組み込まれているっぽい…
usbipd-winをインストールすれば、WSL2上でUSBデバイスが認識できて、デバイスによっては動くらしい。 なので、WSL2上でUSBオーディオデバイスを使って再生もできるかなーと期待したものの、駄目だった記録です。 USBデバイスの認識まではできた。 追記 USB…
Windows上で手軽にROS2を使いたかったので、WSL2上のUbuntuにROS2をインストールしたときのメモです。 WSL2のおかげで、思った以上にすんなりROS2が動いている。GUIも動く。DockerとかUbuntuを入れたPCを用意した方がトラブルが少ないんだろうけど、気軽にサ…
前回作成した音声合成やら、レゴやら、何やらを組み合わせて「おしゃべりラジコンカー」を作成したときのメモです。 主な材料、環境 レゴ組み立て方メモ Build HATとモーターの接続 ゲームパッドでの動かし方 プログラム 反省点 主な材料、環境 ハード: Rasp…
gTTSを使って自分の欲しい音声合成処理ができたので、その備忘録です。 ネットで探せば簡単にgTTSを使ったサンプルは見つかるけど、発話がゆっくり過ぎてツライ・・・なので2倍速にして再生。 あと、mp3データをファイルに保存したくないので、ファイル保存…
ラズパイ上で音声を再生してみたので、その記録です。 再生方法はコマンドやPythonを使っています。 主な材料、環境 デバイスの確認と設定 デバイス確認 音声の出力先を設定 再生時の音量を調整 コマンドで音声を再生 WAV再生 MP3再生 pythonで音声を再生 py…