【ROS2】Logicoolの無線コントローラーF710でTurtlesimを動かしてみた

久々にROS2を動かしてみたくなったので、まずはコントローラーで turtlesim を動かしてみました。 使用したコントローラーはペアリングとかも不要で簡単にワイヤレス接続できる Logicool Wireless Gamepad F710。 過去にROSで扱ったことがあるはずだけど、色…

M5Stack ATOMS3でDDT M06ダイレクトドライブモーターを動かしてみた(C++編)

www.sato-susumu.com 前回はUIFlowでDDT M06ダイレクトドライブモーターを動かしたけど、最終的にはROS2で動かしたいと考えているので、その一歩手前として次はC++で動かしてみました。 もっとコンパクトにしたいので、前回と違って、M5Stack ATOMS3+ATOMIC…

M5Stack UIFlowでDDT M06ダイレクトドライブモーターを動かしてみた

前回はPCから「DDT M0601C_111ダイレクトドライブモーター」を動かしましたが、今回は最近お気に入りのM5StackとUIFlowを使って動かしてみました。 M5StackもUIFlowもいい感じにモジュールが揃っているので、サクッと試すにはちょうどいいです。 スマホから…

プログラムを書かずにDDT M06ダイレクトドライブモーターを動かしてみた

静かで、パワフルで、制御が簡単、そんな都合のいいモーター「DDT M0601C_111ダイレクトドライブモーター」。発売開始は2年前なので、まあ今更ですけどお手軽にプログラムを書かずに動かしてみました。 この記事に記載した方法は、型番は違うけどWaveShareの…

レゴロボットでマスター・スレーブシステム

前回作ったレゴロボットを2体用意して、一つのロボットを動かすと、もう一つも全く同じ動きをする仕組みを作ってみました。この仕組みをマスター・スレーブシステムというらしい。名前ダサカッコいい。 手順はレゴモーターの各角度を取得して、もう一体のロ…

Pybricksを使って、キーボードで操作できるレゴロボットを作ってみた

Pybricksは、レゴの各種スマートハブのためのオープンソース開発環境。これを使うと、PythonやScratchのようなビジュアルプログラミング言語を使用して、レゴのモーターを動かしたり、Bluetoothを介して通信したりすることが簡単にできる。ただし、Pybricks…

LangChainのChromaの使い方メモ

LangChainで用意されている代表的なVector StoreにChroma(ラッパー)がある。 ドキュメントだけ読んでいても、どうも使い方が分かりにくかったので、適当にソースを読みながら使い方をメモしてみました。 VectorStore作成 データの追加 データの検索 永続化 …

LangChain用に句読点で分割してくれるTextSplitterを作ってみた

LangChainでテキストを分割するとき、ライブラリに含まれるRecursiveCharacterTextSplitterをそのまま使っても問題ないんだけど、なんとなく素人考えで、分割したテキストも読みやすい方がいいかなーと思って、句読点で分割してくれるTextSplitterを作ってみ…

言葉の裏に隠された感情を探る! WRIMEデータセットを使った感情解析サーバーを開発

最近、ChatGPTを使ったAI対話システムの開発をしている中で、ChatGPTが返した文章に感情情報を付与したいなーと考えてました。ChatGPTプロンプトで設定するという方法もいいのですが、もっと自由に、ネガティブまたはポジティブよりももっと豊かな感情を扱い…

Pythonを使って3Dアバターの表情を動かしてみた

Pythonを使って、人間3Dアバター向けのフォーマットであるVRMのアバターの表情を動かしてみました。 といっても、Pythonから直接VRMをゴリゴリではなく、「VMagicMirror」というVRMアバターを動かすアプリを使用しています。 このアプリは、MIDIからの入力で…

ChatGPTを使ったAI音声対話システムを作ってみた

まえから音声対話に興味があったので、作りかけだったシステムにChatGPT APIをつなげてみました。 ChatGPTで遊ぶのは面白いけど、キーボードでカチャカチャ入力するのが面倒だったので我ながら大満足な出来ばえ。自画自賛。なお、中身はChatGPT、Googleスト…

Pythonでストリーミング音声認識をやってみた (Google Cloud Speech-to-Text API V1)

GCPに音声認識APIがあることを知識としては知っているけど、あんまり使ったことがなかったので使ってみました。 Speech-to-Text API V1の音声認識方法には「同期認識」「非同期認識」「ストリーミング認識」の3種類があります。 ネットで見かけるサンプルは…

Pythonでウェイクワード検出をやってみた (picovoice社 Porcupine)

ウェイクワードは「アレクサ」や「OK Google」みたいな音声認識を開始するための言葉。 そのウェイクワード検出がしたくなったので、前々から気になっていたpicovoice社のPorcupine(ポーキュパイン)を使ってみました。 Porcupineは日本語に翻訳すると「やま…

Pythonで音声合成してみた(Google Cloud Text-to-Speech API)

GCPに音声合成APIがあることを知識としては知っているけど、使ったことがなかったので使ってみました。 ネットで見かけるサンプルはmp3ファイルに保存する例が多いけど、自分が使いたい用途はファイルに保存せずに再生だったので修正。 動作確認環境 Windows…

Pythonで音声認識する方法の自分用まとめ

音声認識で何か作ってみたいなーと思いつつ、調べて動かすだけでも疲れたので、ひとまず整理。 音声対話で使いたいので、認識精度が良いAPIやレスポンスの早いストリーミング方式を中心に記載。 動作確認環境 バッチ方式 SpeechRecognitionライブラリ ストリ…

WSL2上のUbuntu20.04から簡単に音声再生/録音ができた

前回の記事で音声再生に悪戦苦闘していたけど、音声再生/録音するだけならWSLgでとっくに対応していた。。。 そのWSLgが組み込まれたWSL2なら、あっけないくらい簡単に再生/録音できた。 (WSLgはWindows11の比較的新しいWSL環境なら組み込まれているっぽい…

WSL2でUSBオーディオデバイスを使おうと思ったけど駄目だった

usbipd-winをインストールすれば、WSL2上でUSBデバイスが認識できて、デバイスによっては動くらしい。 なので、WSL2上でUSBオーディオデバイスを使って再生もできるかなーと期待したものの、駄目だった記録です。 USBデバイスの認識まではできた。 追記 USB…

【ROS2】WSL2上のUbuntuにROS2 Foxyを入れたら快適だった

Windows上で手軽にROS2を使いたかったので、WSL2上のUbuntuにROS2をインストールしたときのメモです。 WSL2のおかげで、思った以上にすんなりROS2が動いている。GUIも動く。DockerとかUbuntuを入れたPCを用意した方がトラブルが少ないんだろうけど、気軽にサ…

Raspberry Pi Build HATでおしゃべりラジコンカーをつくってみた

前回作成した音声合成やら、レゴやら、何やらを組み合わせて「おしゃべりラジコンカー」を作成したときのメモです。 主な材料、環境 レゴ組み立て方メモ Build HATとモーターの接続 ゲームパッドでの動かし方 プログラム 反省点 主な材料、環境 ハード: Rasp…

Pythonで音声合成してみた (gTTSで2倍速バックグラウンド再生)

gTTSを使って自分の欲しい音声合成処理ができたので、その備忘録です。 ネットで探せば簡単にgTTSを使ったサンプルは見つかるけど、発話がゆっくり過ぎてツライ・・・なので2倍速にして再生。 あと、mp3データをファイルに保存したくないので、ファイル保存…

ラズパイで音声を再生してみた

ラズパイ上で音声を再生してみたので、その記録です。 再生方法はコマンドやPythonを使っています。 主な材料、環境 デバイスの確認と設定 デバイス確認 音声の出力先を設定 再生時の音量を調整 コマンドで音声を再生 WAV再生 MP3再生 pythonで音声を再生 py…

Raspberry Pi Build HATでラジコンカーを作ってみた

なんとなくRaspberry Pi Build HATを使ってラジコンカーを作りたくなったので、次はラジコンカーを作成。そのときの備忘録です。 作ったラジコンカー↓ まあまあシンプルに作れたので満足。 もっと部品点数を減らすことはできそうだけど、モーターをしっかり…

LEGO SPIKE、Raspberry Pi Build HAT関連のリンク集

Build HATとLEGO SPIKEの情報を自分向けにまとめたリンク集です。 LEGO SPIKEと類似したマインドストーム ロボットキットの情報も含んでいます。 (やっと日本で発売されたのに、もうすぐ廃盤で悲しい) Raspberry Pi Build HAT レゴ® エデュケーション SPIKE™…

Raspberry Pi Build HATでペンギン型(?)ロボットを作ってみた

Raspberry Pi Build HATでペンギン型(?)ロボットを作ったので、その備忘録です。 作ったロボット↓ 旋回後に直進や後進を指定してもなーんか真っ直ぐ進まないけど、ご愛敬。 原因は未調査。まっすぐ進むこともある。そんな問題を抱えつつ、オリジナルロボッ…

Raspberry Pi Build HATで遊んでみた

ずいぶんLEGOやラズパイの情報をチェックしてなかったけど、「Raspberry Pi Build HAT」という製品が発売されていたのを今更発見。 早速スイッチサイエンスさんで購入して遊んでみた。 Raspberry Pi Build HATSupTronicsAmazon とりあえずゲームパッドでレゴ…

ラズパイでLogicool ワイヤレスゲームパッド F710を使ってみた

久々のブログ更新。 ラズパイ上でゲームパッドの情報を取得してみたくなったので、その記録です。 ロジクール ワイヤレスゲームパッド F710Logicool(ロジクール)Amazon 環境 ハード: Raspberry Pi 3 model B、F710ワイヤレス ゲームパッド OS: Raspberry Pi …

【ROS】クラウド音声合成が利用できるtts-ros1パッケージを使ってみた

ROS

手軽にROSで音声合成がしたくてtts-ros1パッケージを使ってみたので、そのメモ。 音声合成にはAWSのクラウド音声合成サービスAmazon Pollyが利用される。クラウドなので、ネットワークが必須で、ちょっとだけお金もかかる。(日本語だと100万文字で4ドル。1年…

【ROS】音声再生パッケージsound_playを使ってみた

ROS

ROS上で音声合成を使ってみたくて、sound_playを動かしてみたので、そのメモ。音声合成は思ってた感じと違ってたものの、音声ファイル再生は便利そう。 動作確認環境 インストール ノード起動 テスト再生 音声ファイルの再生(WAV、OGG) 内蔵サウンドの再生 …

T265 Tracking Cameraを使ってみた

T265は2つのモノクロ魚眼カメラ、IMU、VPU(Vision Processing Unit)を内蔵していて、自己位置推定(自分の位置の推定)してくれるデバイス。 自己位置推定は実装したことが無いものの、資料を読む限り、とても面倒で難しそう。そんな自己位置推定をこんな小さ…

【ROS】rostopic list はできるのに rostopic echo ができない現象が解決できた

ROS

rostopic listでトピック一覧表示はできる、なのにrostopic echoでトピック内容は表示できない。 そんな現象にちょっと前から遭遇していた。 ネットで調べるとファイヤーウォール等の通信制限や、環境変数ROS_MASTER、ROS_IPの設定ミスというケースでも発生…