佐藤さとる

佐藤さとる

梶研 [mocopi センシング]

2023年11月14日

mocopi センシング

スケジュール

短期的な予定

長期的な予定

進捗

"地図は意外とウソつき" を読んだ

Twitter X で気になっていたものが梶研にあったから読んだ。

ジュニア会員のなり方がわからない

前に情報処理学会で "学生会員" で申し込んで、放置してたら金曜日に請求がきた。

ジュニア会員に変更したいが分からない

bvhをパースするパッケージを作った

これから簡単にmocopiの動作をとれるようにする

PYPI に登録した

インストール

$ pip install mcp_persor

インポート

from mcp_persor import BVHparser

BVHファイルから取得

bvhp = BVHparser('bvh/mocopi-move.bvh')
motion_df = bvhp.get_motion_df()

前回からの進捗

関節名やファイル構造を知っている前提で、パースしていたが、

全ての情報をBVHファイルから取得するようにした

骨格情報を変更できるようにする

offset = bvhp.get_joint_offset('r_hand')
offset[0] += 10
bvhp.set_joint_offset('r_hand', offset)

人の体に合わせて変更でき、より正確な動作になる

bvhファイルをパースして Dataframe として扱えるようにする

相対的(接続する関節が基準)

relative_motion_df = bvhp.get_joint_motion_df(joint_name, mode='relative')
relative_rot.png (51.7 kB)

絶対的(世界座標が基準)

relative_motion_df = bvhp.get_joint_motion_df(joint_name, mode='absolute')
absolute_pos.png (62.2 kB)
absolute_rot.png (61.8 kB)

初期位置/回転量を変更できるようにする

init_pos = bvhp.get_initial_position()
init_rot = bvhp.get_initial_rotation()

bvhp.set_initial_position([0, 0, 0])
bvhp.set_initial_rotation([0, 0, 0])

動いてからデータの取得を開始しても補正できる。

複数人での絡みをとった場合に補正できる。

モーションデータを変更できるようにする

# 取得
relative_motion_df = bvhp.get_joint_motion_df(joint_name, mode='relative')

# 変更
relative_motion_df['Xposition'] += 10

# セット
bvhp.set_joint_motion_df(joint_name, relative_motion_df, mode='relative')

csv に書き出せるようにする

bvhp.to_csv('mocopi-move.csv')

dataframe を扱っているから要らないけど、csv に書き出せるようにした

Dataframe から bvhファイルに書き出せるようにする

bvhp.to_bvh('mocopi-move.bvh')

調整等をしたあとに、bvhで書き出して確認をしたりできる

余談

Emacs を入れてみた

emacs.png (590.2 kB)

キーバインドが気に入ってVScodeのキーバインドをEmacs風にした

最終的に更にVScodeに依存することになった

Open Street Map を編集してみた

思ったより面白くなかった

スクリーンショット 2023-11-10 16.31.22.png (2.2 MB)
スクリーンショット 2023-11-10 16.31.48.png (2.2 MB)

毎日の草で進化する猿人 API

kusa evolution

ハッカソンに出る友達にAPIの作り方を教えてたら作りたくなった。

コントリビューションが前日以上であれば進化し、 前日未満であれば退化する

readme.png (508.3 kB)

供養のつもりでポストしたら、思いの外好評だった。

ハッカソンのネタ潰してごめんなさい

x.png (95.1 kB)