# Using omni.isaac.lula and plan\_to\_task\_space\_target()

**URL:** <https://forums.developer.nvidia.com/t/using-omni-isaac-lula-and-plan-to-task-space-target/218984>\
**Category:** Isaac Sim\
**Created:** [June 28, 2022, 1:10am UTC](https://forums.developer.nvidia.com/t/using-omni-isaac-lula-and-plan-to-task-space-target/218984 "2022-06-28T01:10:20Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![rubend55](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@rubend55](https://forums.developer.nvidia.com/u/rubend55)\
**Post date:** [June 28, 2022, 1:10am UTC](https://forums.developer.nvidia.com/t/using-omni-isaac-lula-and-plan-to-task-space-target/218984/1 "2022-06-28T01:10:20Z")

</div>

Hi,

**Goal:**  
To set a cspace target (set of joint angles for the Panda robot arm) and have the arm move to that position while avoiding collisions (self and external).

**What I’ve tried:**  
I’ve tried slightly modifying the `follow_target_with_rmpflow.py` example code to use the following: `my_controller.get_motion_policy().set_cspace_target(np.array([joint1, joint2, joint3, joint4, joint5, joint6, joint7]))` instead of setting a `target_end_effector_position()` and `target_end_effector_orientation()`. This works in simple cases, but if the arm is “twisted” up, the arm get’s stuck in some local-minima solution and fails to ever reach the `set_cspace_target`.

**What I’m trying to figureout:**  
While browsing through the Isaac sim documentation, I found this [Lula [omni.isaac.lula] — isaac\_sim 2022.1.1-release.1 documentation](https://docs.omniverse.nvidia.com/py/isaacsim/source/extensions/omni.isaac.lula/docs/index.html#lula.MotionPlanner.plan_to_task_space_target)  
It seems like this actually plans a global solution, but it’s unclear how to actually configure the plan\_to\_task\_space\_target()

Question:

1. Does `omni.isaac.lula.plan_to_task_space_target()` actually plan a global solution?
2. Is `omni.isaac.lula.plan_to_task_space_target()` any different from using `set_cspace_target()` from RMPflow?

---

<div class="post-metadata">

**Author:** ![rubend55](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@rubend55](https://forums.developer.nvidia.com/u/rubend55)\
**Post date:** [June 29, 2022, 3:10pm UTC](https://forums.developer.nvidia.com/t/using-omni-isaac-lula-and-plan-to-task-space-target/218984/2 "2022-06-29T15:10:22Z")

</div>

Any thoughts around this? Still stuck…

---

<div class="post-metadata">

**Author:** ![arudich](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arudich](https://forums.developer.nvidia.com/u/arudich)\
**Post date:** [September 1, 2022, 3:10pm UTC](https://forums.developer.nvidia.com/t/using-omni-isaac-lula-and-plan-to-task-space-target/218984/5 "2022-09-01T15:10:48Z")

</div>

@rubend55 The `omni.isaac.lula` extension can be used directly, but it is not intended for that purpose. The `omni.isaac.motion_generation` extension is where we wrap the functionality of `omni.isaac.lula` in order to ensure ease of use and thorough documentation.  
To answer your question, RMPflow is a local motion policy. It is very good at choosing a locally optimal motion that will lead the robot around most obstacles, but it can get stuck in local optima as you say. `omni.isaac.lula.plan_to_tasks_space_target()` is not using RMPflow. It is uses RRT to generate a global plan. In our latest release [2022.1.1] we support using Lula’s RRT planner in the `motion_generation` extension. See a tutorial here [Motion Generation RRT Tutorial](https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/tutorial_motion_generation_rrt.html)  
And an explanation of the `motion_generation` extension here: [Motion Generation Extension](https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/ext_omni_isaac_motion_generation.html#isaac-sim-motion-generation)

---

<div class="post-metadata">

**Author:** ![rubend55](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@rubend55](https://forums.developer.nvidia.com/u/rubend55)\
**Post date:** [September 10, 2022, 10:03pm UTC](https://forums.developer.nvidia.com/t/using-omni-isaac-lula-and-plan-to-task-space-target/218984/6 "2022-09-10T22:03:28Z")

</div>

Hi arudich, thanks so much for sharing this! Is the RRT solve being performed on GPU or CPU? Is there any plan to implement PRM for repeated joint space query solves? (similar to what we find in OMPL)

---

<div class="post-metadata">

**Author:** ![arudich](https://developer.download.nvidia.com/images/forums/profile-default-devtalk-84.png) [@arudich](https://forums.developer.nvidia.com/u/arudich)\
**Post date:** [September 13, 2022, 3:09pm UTC](https://forums.developer.nvidia.com/t/using-omni-isaac-lula-and-plan-to-task-space-target/218984/7 "2022-09-13T15:09:07Z")

</div>

@rubend55 RRT is currently being performed on CPU, but we have a GPU implementation that will likely eventually get brought into Isaac Sim. It’s hard to give a timeline on other planners being integrated into Isaac Sim at the moment, but we have multiple internal developers working on various planning methods such as OMPL for research purposes. The long-term plan for Isaac Sim includes easy-to-use global planners that work in the vast majority of use-cases, but I cannot currently give an estimate about what will become available at what time.

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/nvidia/user_avatar/forums.developer.nvidia.com/system/32/68080_2.png) [@system](https://forums.developer.nvidia.com/u/system)\
**Post date:** [January 12, 2023, 2:56pm UTC](https://forums.developer.nvidia.com/t/using-omni-isaac-lula-and-plan-to-task-space-target/218984/8 "2023-01-12T14:56:44Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
