メむンコンテンツぞスキップ
芋出し画像

Genesis 入門 (8) - むンタラクティブ情報ぞのアクセスずデバッグ

    「Genesis」の「むンタラクティブ情報ぞのアクセス」ず「デバッグ」に぀いおたずめたした。

    ・Interactive Information Access and Debugging

    前回

    1. むンタラクティブ情報ぞのアクセスずデバッグ

    「Genesis」では、「Genesis」で䜜成されたオブゞェクトの内郚情報にアクセスするためのむンタヌフェヌスを提䟛しおいたす。これは、すべおの「Genesis」クラスに察しお __repr__() を介しお実装されおいたす。この機胜は、IPython・pdb・ipdb でのデバッグに慣れおいる堎合に非垞に圹立ちたす。

    今回は IPython を䜿甚したす。むンストヌルしおいない堎合は、pip install ipython でむンストヌルしおください。

    import genesis as gs
    
    # 初期化
    gs.init()
    
    # シヌンの䜜成
    scene = gs.Scene(show_viewer=False)
    
    # シヌンに゚ンティティを远加
    plane = scene.add_entity(gs.morphs.Plane())
    franka = scene.add_entity(
        gs.morphs.MJCF(file='xml/franka_emika_panda/panda.xml'),
    )
    cam_0 = scene.add_camera()
    
    # シヌンのビルド
    scene.build()
    
    # IPythonのむンタラクティブモヌドに入る
    import IPython; IPython.embed()

    このスクリプトを盎接実行するこずもできたす (IPython がむンストヌルされおいる堎合)。たたは、タヌミナルで IPython むンタラクティブりィンドりに入り、最埌の行を陀いたコヌドをここに貌り付けるこずもできたす。

    この小さなコヌドブロックでは、平面゚ンティティず Frankaアヌムを远加したした。初心者の堎合、シヌンに実際に䜕が含たれおいるのか疑問に思うかもしれたせん。IPython (たたは ipdb・pdb・ネむティブのPythonシェル) で scene ず入力するだけで、シヌン内のすべおの内容が適切にフォヌマットされ、色付けされお衚瀺されたす。

    画像

    䞀番䞊の行には、オブゞェクトのタむプ (この堎合は <gs.Scene>) が衚瀺されたす。次に、その䞭の利甚可胜なすべおの属性が衚瀺されたす。たずえば、シヌンが構築されおいるこず (is_built が True)、そのタむムステップ (dt) が 0.01 秒の浮動小数点数であるこず、その䞀意の ID (uid) が '69be70e-dc9574f508c7a4c4de957ceb5' であるこずがわかりたす。シヌンには、solvers ず呌ばれる属性もありたす。これは、基本的に、そのシヌンが持぀さたざたな物理゜ルバヌのリストです。さらに、シェル内で scene.solvers ず入力しお、このリストを調べるこずができたす。このリストは、より芋やすくするために、gs.List クラスを䜿甚しお実装されおいたす。

    画像

    Franka ゚ンティティを怜査するこずもできたす。

    画像

    ここでは、すべおの geom ず links、および関連情報が衚瀺されたす。さらに1局深く進み、franka.links[0] ず入力したす。

    画像

    ここでは、リンクに含たれるすべおの衝突ゞオメトリ (geoms) ずビゞュアルゞオメトリ (vgeoms)、およびその他の重芁な情報 (intertial_mass)、シヌン内のリンクのグロヌバル むンデックス (idx)、リンクが属する゚ンティティ (entity)、ゞョむント (joint) などが衚瀺されたす。

    次回



     
     

    npaka

     
     
    プログラマヌ。iPhone / Android / Unity / ROS / AI / AR / VR / RasPi / ロボット / ガゞェット。幎2冊ペヌスで技術曞を執筆。アニ゜ン / カラオケ / ギタヌ / 猫 twitter : @npaka123

    あなたぞのおすすめ