hotch-potch, Note to self

いろいろ作業記録

PDDL入門(ROS2・PlanSys2 チュートリアルチャレンジ番外編)

1.はじめに

前回記事に引き続き、 ROS2のPlanSys2の試行に関連する気づきをまとめました。

回数 シリーズ「ROS2・PlanSys2 チュートリアルチャレンジ」・概要
1 PlanSys2のインストールと基本操作
2 プランニング
2.1 プランの調製
3 rvizで視覚化
4 Behavior Trees
番外編 (今回)PDDL入門

今回は、Planning Domain Definition Language(PDDL言語)そのものについて、知見を深めていきます。

  • 1.はじめに
  • 2.PDDL入門
    • (1)自動計画とプランナー
    • (2)PDDLとは
    • (3)PDDLによるモデル化の考え方
    • (4)主要なキーワード
    • (5)PDDLの構文
  • 3.チュートリアルPDDLの読み解き
    • simple_example.pddl
      • types
      • predicates
      • functions
      • durative-action
    • commands:problemの記述ファイル
  • 4.PlanSys2 designの読み解き
  • 参考資料
続きを読む

Zephyr・RaspberryPi PICO2 チュートリアルチャレンジ

1.はじめに

リアルタイムOSのひとつであるZephyrの試行として、RaspberryPi PICO 2(RP2350)を対象に試してみます。

  • 1.はじめに
  • 2.ビルド環境の準備
    • (1)実行環境
    • (2)開発ツールのインストール
  • 3.ビルド・RaspberryPi PICO2で実行
  • 4.補足・失敗ケース
    • Windows上での開発は避けた方が良さそう
    • CMake Error ... Board qualifiers /rp2350a for board rpi_pico2 not found
  • 参考資料
続きを読む

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

1.はじめに

前回の記事では、Elixirからカチャカへの通信を確立させて、カチャカのステータスを取得するまでを試行しました。

次のステップとして、カチャカに対して指示を送って、動かすまでを試行しました。

結論

結論としては、「未解決」です。

  1. Elixir→カチャカへの運転指令は出せた
  2. カチャカは受理するも、コマンドを解釈できない

ここからは現時点の考察です。

  1. kachaka-api.protoから生成する、Elixir側のrpcクライアントのコードに不具合がありそう
  2. 具体的には、 protoファイルoneof構文の解釈がうまくできていない
  3. Elixir側でマップCommandにkeyとなるatomを渡しても、oneofで定義されているもののうち、意図する型のメンバーを引いてこられない
  4. protoファイルを直接いじってElixir側で上記を解決(2パターン試行)するも、protoの構造が変わってるので、カチャカでコマンドを受け取れない

といったところで、以下に今回の顛末を整理します。

  • 1.はじめに
    • 結論
  • 2.試行おぼえ
    • (1)環境構築
    • (2)カチャカのprotoファイルからrpcクライアントを生成
    • (3)まずは基本の形から
    • (4)試行1:生のprotoファイルで生成したkachaka-api.pb.exのうち、oneofが効かないところを手直し
      • 修正前
      • 修正後
    • (5)試行2:他のprotoファイルの書き方をまねる
  • 3.まとめ
続きを読む

ROS2・PlanSys2 チュートリアルチャレンジ(4)

1.はじめに

回数 シリーズ「ROS2・PlanSys2 チュートリアルチャレンジ」・概要
1 PlanSys2のインストールと基本操作
2 プランニング
2.1 プランの調製
3 rvizで視覚化
4 (今回)Behavior Trees
番外編 PDDL入門

前回記事 に引き続き、 ROS2のPlanSys2の試行と、それに関連する気づきをまとめました。

ROS2 Planning System — ROS2 Planning System 2 1.0.0 documentation

今回も、ドキュメントを翻訳しながら、 チュートリアル4番目を進めていきます。

■注意■:このチュートリアルが書かれたのは2020年ごろで、2024年現在のhumble版とは、サンプルプログラムの内容が変わっていました。そのため、チュートリアルの手順通りにサンプルプログラムを実行しても、期待通りの動作はしない模様です。

  • 1.はじめに
  • 2.Implement actions as Behavior Trees
    • 概要
    • (0)Requisites
    • (1)Running the example
    • (2)Using Behavior Trees
      • 2.1 PDDL Action move
        • 2.2 PDDL Action transport
        • 2.3 BT Nodes
続きを読む

Python on Windows, Note to self

1.はじめに

Windows上でのPython開発における、細々としたことの覚え書きです。

  • 1.はじめに
  • 2.開発環境構築
    • (1)Pythonインストール
    • (2)複数のPythonバージョンを切り替え
    • (3)仮想環境の準備
    • (4)作り直した仮想環境に、パッケージを復元
    • (5)pipのライブラリのアップデート
    • (9)その他テクニック
  • 3.開発手法
    • (1)traceback出力の文字をカラーにする
    • (2)ソースのヘッダーの書き方
    • (9)その他テクニック
  • 4.streamlit
    • (1)poetryを使う
    • (2)VSCodeのデバッガー連携
    • (3)VSCodeデバッグ実行でブラウザを開かせないようにする
      • コンフィグファイルに指定
      • 実行時引数に指定
    • (9)コーディングテクニック
続きを読む