2025-01-01から1年間の記事一覧
ロボット業界で話題になっている基盤モデルとロボットの融合を読みました。 www.kspub.co.jp 内容は、AIの専門家じゃない人向けに、ロボットで使われるAI技術をわかりやすく解説しています。今、ロボットのAIに取り組んでいる人、これから取り組む人全員にお…
型システムのしくみ TypeScriptで実装しながら学ぶ型とプログラミング言語を読みました。 型システムのしくみ ― TypeScriptで実装しながら学ぶ型とプログラミング言語www.lambdanote.com この本は型システムの実装を見ながら、TAPL(型システム入門 プログラ…
www.php.co.jp 筆者が詐欺と脱税で実刑判決を受けたので、もしかしたら本屋から消えるかもと思い、急いで購入して今年まで積んでいた。ようやく読めたので簡単に感想を。 内容はスーパーコンピュータが実現し、シンギュラリティ、その手前段階が来たときに世…
自分のブログを見ていると、一年前の8月に動かそうとしているので、大体一年かかってようやく動く所まで来た。 去年の8月の記事 natsutan.hatenablog.com いろいろと気になったところをまとめてみる。 全体の感想。 一年かけてこの程度しかできなかったか・…
とりあえず動いたのでまとめた。 環境構築 ここを参考に。uv使おう。 gym周りが鬼門。 natsutan.hatenablog.com データの準備 ここを参考に。 natsutan.hatenablog.com データはactionとstate, episode_endsだけでOK。 次のステップで読み込むときになんとで…
とりあえずDiffusion Policyが動いた。 これの続き natsutan.hatenablog.com observationにend effectorとtargetの相対位置を入れてみた。 これは一つ目のtry。今までobservationにはend effectorの位置とtarget(箱)の位置を入れてみたが、さらにタスクの…
これの続き。 natsutan.hatenablog.com Endeffectorの向きがおかしいので、角度表現をクオータニオンからrxryrzに変更した。 今まではGenesisに合わせてEndeffectorのクオータニオンがobservation、Policyから出力されるactionはクオータニオンの変化量とし…
これの続き。 natsutan.hatenablog.com とりあえずデータを作って学習し、その結果を確認するところまで来た。これができれば後は気になるところを一つずつ確認していくだけで先に進められる。 直したところ データのフォーマット 学習用のlogをCSVで出して…
ここの実装を動かそうとしている。 github.com なんとかGenesisで学習データの生成、学習、学習結果の確認まで進める事ができた。 結果はこれで駄目である。 三連休のDiffsion Policyの結果です。これが今の限界。 pic.twitter.com/ij9RR2fhsN— natsutan (@n…
空調の関係でdiffusion policyの開発環境を移動させた。 せっかくなのでuvでできるようにした。 gym=0.21.0がuvでは上手く入らず、これだけはpipで手で入れる。 qiita.com ChatGPTにgym=0.21.0をどうしても入れたいって聞いても教えてくれる。 pyproject.tom…
Genesisで物体同士をくっつける処理のやり方。吸着のシミュレーション等では必須の機能です。 これはドキュメントがあるので簡単 genesis-world.readthedocs.io add_weld_constraint()を使うことで実現できます。 今回はロボットのgripperのうち2つの指先が…
Genesisの衝突判定を調べました。 衝突判定に使うAPIはget_contacts()です。 ソースコードはここ。 github.com 箱を取る瞬間にget_contacts()が返す戻り値を調べました。 ソースコードはこうなっていて、ロボットと箱を指定してget_contacts()を呼び出してい…
もう一度ピッキングに戻ってきたが上手く行かくなっていたのでメモ。 2箇所でおかしくなっていたが、なんとか取れるようになった。 箱を固定していた natsutan.hatenablog.com これの試行錯誤をしていたとき、箱が転がって目標位置が変わるのが嫌だったので…
これの続き natsutan.hatenablog.com 箱の場所をランダムにしてみた。 箱の場所は、なぜか分かっていることにします。本来は、カメラの画像から推論して欲しいが、順を踏みたい。 observationに箱のx,y,zを追加します。大事な変更はこれくらい。 self.obs_bu…
これの続き natsutan.hatenablog.com まあまあ動くようになった。 改善点 EEの姿勢でクオータニオンを使っていて、Δθを求めるとき、Degに直してアクションの値を加算したいた。この時の係数がクオータニオンのままで、一回のアクションで1degも変わってなか…
これの続き natsutan.hatenablog.com 始めの状態 スタート地点はここ。とりあえず箱の近くにEEを持っていてほしい。アルゴリズムはとりあえずPPO、この程度なら十分だと思ったが上手く行かない。 最初の頃まあまあ良かったのに、途中からどんどん駄目になっ…
ピッキングのシミュレーションをしたくて、少し調べてみた。 以前作ったRoboGenの勉強会資料。 natsutan.hatenablog.com Genesis RobogenのリポジトリがGenesisと同じ所にあったり、RobogenはGenesisを使っているという話をXで聞いたりしたのでリポジトリを…
Genesisで強化学習1 Genesisで強化学習に挑戦してみた。まだちゃんと動いてないけど、作業の途中経過メモ。 examples/locomotionのgo2_evn.pyからUR用の環境を作っていく。 元はこういうサンプルです。 Genesis強化学習のサンプル動いた。 pic.twitter.com/K…
技術評論社の機械学習を解釈する技術を読みました gihyo.jp 簡単な線形回帰の機械学習の解釈から入って、ブラックボックスモデルに拡張していきます。 Jupyter Notebookがあるので実際に動かしながら効果を確認できます。 そんなに古い本のイメージはないの…
RobogenのリポジトリにUR5のURDFがあったので、それを動かせるようにしました。 robogen-ai.github.io 使ったのはこのファイルです。 github.com 以前のUR5のSimulationから変更したのは三箇所です EndEffectorのクオータニオン サンプルのロボットや以前使…
ロボットビジネスを読みました。 book.cm-marketing.jp サブタイトルにユーザーからメーカーまで楽しめるロボットの教養とあるように、ロボットの事例を紹介しながら、筆者のロボットへの思いがあふれ出る本でした。 日経ロボティクスを年単位で毎月チェック…
やったこと GenesisでMeshのSimulationをするとき、入力データが各点に色を持っているときSimulationで色がつかず単色になってしまいます。生成AIで3Dモデルを作ったときや、元々点群のデータにありがちです。そういったデータを変換してカラーで表示できる…
やりたいこと obj形式の3DモデルをGenesisで読み込んだときに、色情報が無くなって単色になってしまうときがあります。原因は同じobj拡張子でもmtlで色情報を持っているケースと、obj形式単体で色情報を持っているケースがあるからです。前者の場合は、Genes…
Pythonで学ぶ画像生成読みました。 良い本だったので紹介します。 book.impress.co.jp 最初は手を動かして仕組みを理解しよう系の本だと思って写経をしていましたが、どちらかというとコードはgithubの物を見れば良くて写経する本では無かったです。前半で基…
Genesisのバージョンを上げたら色々おかしくなった場所の解決方法 これの解決策 natsutan.hatenablog.com ロボの色がおかしい件 ロボットを追加するときのvis_mode='collision'を無くす。これで表示は元に戻る。 ur = scene.add_entity( gs.morphs.MJCF(file…
線形代数セミナーを読みました。多分JDLAのE資格の勉強で買ったまま積まれてた本です。もっと早く読めば良かった。 www.kyoritsu-pub.co.jp コンピュータビジョンをやっていて、UΣVとか、固有値を大きい順にならべるとかで、何をしているのかわからない人に…
とりあえずGenesisを最新にしたら、動いていた物が動かなくなった。 2025/04/12追記: vis_mode='collision' の指定を無くし、set_dofs_force_rangeを追加したら元に戻りました。 Genesis最新版にしたら、Sim開始までめっちゃ時間かかるし、ロボットの色はお…
社内でRoboGenの勉強会をしたので資料を公開します。 RoboGen: Towards Unleashing Infinite Data for Automated Robot Learning via Generative Simulation arxiv.org speakerdeck.com 正確な3Dのモデルよりも、Webに大量にある2次元画像の方が良いというの…
箱のピッキングが成功したので、次は布と箱の両方をGenesis内で動かしたい。 natsutan.hatenablog.com 布のサンプルを見ながらシーンに追加してみるが駄目。 cloth_2 = scene.add_entity( material=gs.materials.PBD.Cloth(), morph=gs.morphs.Mesh( file='m…
ピッキングが成功したので、手先にカメラを付けてみた。 なんとなくは動いているのだが、ちょっと違う。 カメラの追加 場所は後で変更するので適当で良い。 解像度とfovが指定できる。 hand_camera = scene.add_camera( res=(640, 480), pos=(0.65, 0.0, 0.4…