Custom Standalone application

C:\\Users\\( )\\AppData\\Local\\ov\\pkg\\isaac_sim-2022.1.1\\standalone_examples\\api\\omni.isaac.( )

위치 폴더에서 스크립트(.py) 작성

폴더는 상관 없는 듯 함

C:/Users/kimhj/AppData/Local/ov/pkg/isaac_sim-2022.1.1 위치에서

python standalone_examples/api/omni.isaac.( )/(파일 이름).py

명령어를 돌리면 실행 (윈도우 cmd 기준)

from omni.isaac.kit import SimulationApp

simulation_app = SimulationApp({"headless": False})

from omni.isaac.core import World
from tasks.follow_target import FollowTarget
import numpy as np
from ik_solver import KinematicsSolver
import carb

my_world = World(stage_units_in_meters=1.0)
#Initialize the Follow Target task with a target location for the cube to be followed by the end effector
my_task = FollowTarget(name="denso_follow_target", target_position=np.array([0.5, 0.4, 1.4]))
my_world.add_task(my_task)
my_world.reset()

task_params = my_world.get_task("denso_follow_target").get_params()
target_name = task_params["target_name"]["value"]
denso_name = task_params["robot_name"]["value"]
my_denso = my_world.scene.get_object(denso_name)
#initialize the controller
my_controller = KinematicsSolver(my_denso)
articulation_controller = my_denso.get_articulation_controller()

while simulation_app.is_running():
    my_world.step(render=True)
    if my_world.is_playing():
        if my_world.current_time_step_index == 0:
            my_world.reset()
        observations = my_world.get_observations()
        actions, succ = my_controller.compute_inverse_kinematics(
            target_position=observations[target_name]["position"],
            target_orientation=observations[target_name]["orientation"],
        )
        if succ:
            articulation_controller.apply_action(actions)
        else:
            carb.log_warn("IK did not converge to a solution.  No action is being taken.")
simulation_app.close()

앱이 실행되는 동안 while 함수가 끊임없이 수행