hotch-potch, Note to self

いろいろ作業記録

Elixirでロボット「カチャカ」とgRPC通信

1.はじめに

 自律移動ロボット「カチャカ」との通信にgRPCが使えるので、Elixirからの通信を試してみました。

kachaka.life

 今のところ、カチャカのステータスを取得するところまでできました。運転命令を送るところができていないので、次回の課題です。

  • 1.はじめに
  • 2.準備
    • (1)protobuf-elixirをインストール
  • 2.サンプルコード
  • 3.実行例
  • 4.参考
続きを読む

ロボット「カチャカ」をリモートPCのPythonから操作

1.はじめに

 自律移動ロボット「カチャカ」に触る機会*1があったので、 カチャカと同じネットワークにあるLinux PC (Ubuntu 22.04) のPythonから、カチャカに指令を出す手順をまとめました。

kachaka.life

  • 1.はじめに
  • 2.プログラムの準備
    • (1)カチャカ本体の設定
    • (2)Linux PCの準備
  • 3.プログラムの試行
    • (1)Pythonからカチャカに指令できること
    • (2)しゃべらせてみる
    • (2)登録した場所に移動する
    • (3)家具を運んで片付ける
  • 参考資料
続きを読む

VSCode を 64bit版Raspberry Pi OS, Ubuntu Linux にインストール

はじめに

Raspberry Pi OSや、Raspberry PiUbuntuなどARM64版のOSで、VSCodeをインストールします。

インストール

ダウンロードツールとしてcurlをインストールします。

$ sudo apt install curl

GPGキーをダウンロードします。

$ cd ~/Download

$ curl -L https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /usr/share/keyrings/microsoft-archive-keyring.gpg >/dev/null

VSCodeリポジトリを追加します。 アーキテクチャarm64とします。

$ echo "deb [arch=arm64 signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/repos/vscode stable main" | sudo tee  /etc/apt/sources.list.d/vscode.list

VSCodeをインストールします。

$ sudo apt update && sudo apt install code

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  code
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
88.4 MB のアーカイブを取得する必要があります。
この操作後に追加で 377 MB のディスク容量が消費されます。
取得:1 https://packages.microsoft.com/repos/vscode stable/main arm64 code arm64 1.82.0-1694038208 [88.4 MB]
88.4 MB を 14秒 で取得しました (6,110 kB/s)
・・・
desktop-file-utils (0.24-1ubuntu3) のトリガを処理しています ...

参考

起動エラー対策・ERROR: not connected to the gnome-3-38-2004 content interface

はじめに

Ubuntu Linux 22.04を使っていて、最近('23/9/8)のアップデート後にFirefoxが起動しなくなりました。

コマンドラインから立ち上げると、下記のエラーが出ます。

$ firefox
ERROR: not connected to the gnome-3-38-2004 content interface.

処置

firefoxをインストールし直します。

$ sudo snap remove firefox 
firefox removed

$ sudo snap install firefox 
firefox 117.0-2 from Mozilla✓ installed

注意

firefoxのプロファイルの引き継ぎはできなさそうです。

$ ll ~/snap/firefox
合計 27632
drwxr-xr-x 4 zxcv zxcv     4096  99 08:42 ./
drwx------ 6 zxcv zxcv     4096  316 23:28 ../
drwxr-xr-x 4 zxcv zxcv     4096  99 08:37 3068/
drwxr-xr-x 4 zxcv zxcv     4096  99 08:37 common/
lrwxrwxrwx 1 zxcv zxcv        4  99 08:42 current -> 3068/

直前まで入っていたfirefoxのプロファイルは、commonの方のようですが、シンボリックリンクcurrent -> 3068/の向け先をcommonに書き変えても、また向け先が元に戻ってしまいます。

リモートのsyslogにログを送信

1.はじめに

Elixirの動作ログをsyslogに送信します。

localhostに向けて送信するには、既存の下記ライブラリが使えます。

今回はリモートホストに送信する必要があったのですが、上記はリモートホストに対する設定がなかったり、そのほかリモートホスト対応のライブラリが見つからない(よくわからない)ので、syslogのプロトコルを自分で実装して、UDP送信するサンプルを作ってみました。

  • 1.はじめに
  • 2.環境
  • 3.rsyslogdの設定変更
    • (1)既存の設定をバックアップ
    • (2)設定を変更
    • (3)設定の反映
    • (4)送信テスト、受信内容の確認
  • 4.Elixirでの実装
    • (1)syslogプロトコル
      • 考え方
    • (2)実装例
      • プロジェクト
      • lib/rsyslog.ex
      • mix.exs
    • (3)送信テスト
  • 参考資料
続きを読む