I build the action graph, the camera and the xforms manually with the GUI and I save the stage.
Then, when I want to use the action graph inside an extension, I just open the stage with omni.isaac.core.utils.stage.open_stage(‘path/to/stage.usd’) inside an extension first and work from there (adding terrains, prims, changing xforms positions).
The open_stage() command is critical in this case because if you first create the stage via an extension and use the add_reference_to_stage() inside your code to add the action graph, all the nodes’ targets and attributes of the action graph will be reset due to being initially saved in a different root path I suppose. As a result, there won’t be any trajectory and the camera will not move.