Skip to content

Add two dynamic task scenes: catching and throwing#43

Merged
kou merged 3 commits into
enactic:masterfrom
Manas-arumalla:task-scenes-3
Jul 17, 2026
Merged

Add two dynamic task scenes: catching and throwing#43
kou merged 3 commits into
enactic:masterfrom
Manas-arumalla:task-scenes-3

Conversation

@Manas-arumalla

Copy link
Copy Markdown
Contributor
  • catch_scene.xml — a ball is thrown through the air toward the right
    arm: a controller sets the ball's launch pose and velocity at reset, and
    it flies a parabola. Two RGB-D cameras face the flight corridor for
    vision-based tracking. The ball is caught in flight. Grasp weld
    on the ball, same convention as the balance scene:
    the catch is weld-based and velocity-matched at the grab, not a
    simulated impact.
  • throw_scene.xml — the arm picks a ball off a small side table and
    throws it into a bin on the floor beyond its reach. The bin sits on the
    floor, which is why this scene keeps a small side table instead of the
    shared cell table.

dynamic tasks need the arm already in position, catching leaves no time
to move after launch.

The baked pose pinned the joint 0.25 mrad from the limit -- fragile to any
retuning. 0.78 rad keeps the same throw (validated: same in-bin landing,
deterministic) with 5.4 mrad of margin.
@k1000dai

Copy link
Copy Markdown
Contributor

@Manas-arumalla Thanks for adding a new scene! I will check soon! (Sorry for waiting)

Comment thread v2/catch_scene.xml
Comment on lines +94 to +99
<key name="catch_ready"
qpos="0 0 0 0 0 0 0 0 0
1.63955 0.67234 -0.68604 1.32130 -0.69509 0.33258 0.43927 -0.7854 -0.7854
1.05 -0.25 0.95 1 0 0 0"
ctrl="0 0 0 0 0 0 0 0
1.63955 0.67234 -0.68604 1.32130 -0.69509 0.33258 0.43927 -0.7854"/>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<key name="catch_ready"
qpos="0 0 0 0 0 0 0 0 0
1.63955 0.67234 -0.68604 1.32130 -0.69509 0.33258 0.43927 -0.7854 -0.7854
1.05 -0.25 0.95 1 0 0 0"
ctrl="0 0 0 0 0 0 0 0
1.63955 0.67234 -0.68604 1.32130 -0.69509 0.33258 0.43927 -0.7854"/>
<key name="catch_ready"
qpos="0 0 0 0 0 0 0 0 0
1.63955 0.67234 -0.68604 1.32130 -0.69509 0.33258 0.43927 -0.7854 -0.7854
1.05 -0.25 0.95 1 0 0 0"
qvel="0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
-1.701 0.067 2.052 0 0 0"
ctrl="0 0 0 0 0 0 0 0
1.63955 0.67234 -0.68604 1.32130 -0.69509 0.33258 0.43927 -0.7854"/>

@k1000dai

Copy link
Copy Markdown
Contributor
  1. How about adding some default qvel value into catch_scene.xml

Both work well on my side and looks good!

Review suggestion: the keyframe now carries the ball's launch velocity, so
loading it in the viewer immediately shows a throw toward the arm -- no
controller needed. The default arc is catchable (verified: the reference
controller takes it cleanly).
@Manas-arumalla

Copy link
Copy Markdown
Contributor Author

Good idea. Applied your suggestions. Thanks for testing both!

@k1000dai

Copy link
Copy Markdown
Contributor

@kou Looks good to me

@kou
kou merged commit 6e55238 into enactic:master Jul 17, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants