# Offset custom plane in PolyscopeX

**URL:** <https://forum.universal-robots.com/t/offset-custom-plane-in-polyscopex/38645>\
**Category:** Technical Questions\
**Created:** [February 19, 2025, 2:20am UTC](https://forum.universal-robots.com/t/offset-custom-plane-in-polyscopex/38645 "2025-02-19T02:20:36Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![HungNguyen.HopLong](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/hungnguyen.hoplong/32/6617_2.png) [@HungNguyen.HopLong](https://forum.universal-robots.com/u/HungNguyen.HopLong)\
**Post date:** [February 19, 2025, 2:20am UTC](https://forum.universal-robots.com/t/offset-custom-plane-in-polyscopex/38645/1 "2025-02-19T02:20:36Z")

</div>

Hi everyone. I am acquainted with programming on PolyscopeX. It has many changes compared to Polyscope5 so I could not find what function/command could offset plane. I tried use urscript but it return: Type error: Must be a pose, not ‘Const String’. Please help me.

 ![z6331136817573_63beaddcb36285cc9552f55468810061](https://us1.discourse-cdn.com/flex020/uploads/universal_robots/original/2X/2/2f77a780f0edda124d59ed9f595c150645ac2194.jpeg)  
 ![z6331136821869_294c8a2319fc14dcfc3584e01415d64f](https://us1.discourse-cdn.com/flex020/uploads/universal_robots/original/2X/5/51337556cb6d0da7b9a5802eb9b4d4b6f5466529.jpeg)

---

<div class="post-metadata">

**Author:** ![efn](https://avatars.discourse-cdn.com/v4/letter/e/35a633/32.png) [@efn](https://forum.universal-robots.com/u/efn)\
**Post date:** [February 19, 2025, 6:10am UTC](https://forum.universal-robots.com/t/offset-custom-plane-in-polyscopex/38645/2 "2025-02-19T06:10:33Z")

</div>

The only thing I can think of is your camera variable. It is a pose, right? p[x,y,z,rx,ry,rz].

---

<div class="post-metadata">

**Author:** ![HungNguyen.HopLong](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/hungnguyen.hoplong/32/6617_2.png) [@HungNguyen.HopLong](https://forum.universal-robots.com/u/HungNguyen.HopLong)\
**Post date:** [February 19, 2025, 6:23am UTC](https://forum.universal-robots.com/t/offset-custom-plane-in-polyscopex/38645/3 "2025-02-19T06:23:31Z")

</div>

> [@efn](#):
>
> It is a pose, right? p[x,y,z,rx,ry,rz].

Yes, It is a plane that was created by wizard and named ‘Camera’.

---

<div class="post-metadata">

**Author:** ![kato](https://avatars.discourse-cdn.com/v4/letter/k/439d5e/32.png) [@kato](https://forum.universal-robots.com/u/kato)\
**Post date:** [February 19, 2025, 6:59am UTC](https://forum.universal-robots.com/t/offset-custom-plane-in-polyscopex/38645/4 "2025-02-19T06:59:55Z")

</div>

If ‘Camera’ is created by a wizard, I assume you made a frame.  
If you then want to move the frame you can use this move\_frame function. You will then have to compute the offset yourself first using the get\_pose and some pose math to get the new pose.  
Or you might be able to just offset the frame using only the move\_frame, but having the frame it self as ref\_frame.

### move\_frame(name, pose, ref\_name)

**Arguments:**

**name:** the name of the frame to move

**pose** _:_ the new placement

**ref\_name:** the coordinate frame that _pose_ is expressed in. The default value is the robot’s “base” frame.

**Example Commands:**

_move\_frame(“frame1”, p[0.2, 0.3, 0.1, 0, 0, 3.14])_

_move\_frame(“frame1”, p[0.2, 0.3, 0.1, 0, 0, 3.14], ref\_name=“frame2”)_

### get\_pose(name, rel\_frame=“base”, ref\_frame=rel\_frame)

Get the pose of the _name_ frame relative to the _rel\_frame_ frame but expressed in the coordinates of the _ref\_frame_ frame. If _ref\_frame_ is not provided, then this returns the pose of the _name_ frame relative to and expressed in the same frame as _rel\_frame_.

This will fail if any arguments are not an existing frame.

If being used with the part positioner product, all three arguments can also be the names of external axes or axis groups.

**Arguments**

**name:** name of the frame to query.

**rel\_frame:** short for “relative frame” is the frame where the pose is computed relative to

**ref\_frame:** short for “reference frame” is the frame to express the coordinates of resulting relative pose in. If this is not provided, then it will default to match the value of _rel\_frame_.

**Return**

The pose of the frame expressed in the _ref\_frame_ coordinates.

---

<div class="post-metadata">

**Author:** ![HungNguyen.HopLong](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/hungnguyen.hoplong/32/6617_2.png) [@HungNguyen.HopLong](https://forum.universal-robots.com/u/HungNguyen.HopLong)\
**Post date:** [February 19, 2025, 7:07am UTC](https://forum.universal-robots.com/t/offset-custom-plane-in-polyscopex/38645/5 "2025-02-19T07:07:20Z")

</div>

It work! Thank you so much. Can you tell me what document have these function? I searched in the Script Manual for Polyscopex but didn’t see it.

---

<div class="post-metadata">

**Author:** ![mmi](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/mmi/32/691_2.png) [@mmi](https://forum.universal-robots.com/u/mmi)\
**Post date:** [February 21, 2025, 1:49pm UTC](https://forum.universal-robots.com/t/offset-custom-plane-in-polyscopex/38645/6 "2025-02-21T13:49:22Z")

</div>

move\_frame() is part of the “world model” API that is currently documented on a separate page:  
[https://docs.universal-robots.com/motionplus/mp1.2/worldmodel/worldmodel-urscript-intro.html#move-frame](https://docs.universal-robots.com/motionplus/mp1.2/worldmodel/worldmodel-urscript-intro.html#move-frame)  
“world model” is only available on PolyscopeX.

Intention is to bring it together in one script manual in the future.
