Skip to content

Fix atomic tutorial startup and obstacle recovery - #618

Merged
yuecideng merged 1 commit into
mainfrom
codex/fix-atomic-tutorial-startup
Sep 12, 2026
Merged

Fix atomic tutorial startup and obstacle recovery#618
yuecideng merged 1 commit into
mainfrom
codex/fix-atomic-tutorial-startup

Conversation

@yuecideng

Copy link
Copy Markdown
Contributor

Description

This PR fixes the atomic-action tutorial startup and dynamic-obstacle recovery behavior.

  • Clear both current and target articulation velocities during reset.
  • Keep tutorial robot gravity enabled and preserve the configured initial joint positions.
  • Reduce the tutorial sun intensity from 30.0 to 5.0.
  • Scale the obstacle trigger to the planned path length so short paths still exercise replanning.
  • Keep the animated obstacle in the cuRobo collision world while disabling its native physics contact, preventing the moving kinematic obstacle from physically knocking the robot over before replanning observes the scene change.

No external dependencies are required. No issue number was provided for linking.

Type of change

  • Bug fix (non-breaking change which fixes an existing issue)
  • Enhancement
  • New feature
  • Breaking change
  • Documentation update

Validation

  • Targeted pytest: 83 passed.
  • black .: all 939 files unchanged.
  • API docs: 1925/1925 exports documented.
  • Full tutorial command: clean exit, 12 accepted commands, final EEF error 0.0112 m.
  • Manual frame-by-frame review confirmed the robot remains upright while the obstacle moves and replanning still triggers.

Preview video generated at outputs/videos/dynamic_obstacle_recovery_auto_play_2026-09-12-08-02-24.mp4.

Checklist

  • I have run the black . command to format the code base.
  • I have made corresponding changes to the documentation.
  • Public API documentation coverage was checked; no missing exports were reported.
  • I have added tests that prove the fix is effective.
  • Dependencies have not been changed.,

Clear current articulation velocities during resets, reduce tutorial sun intensity, and prevent the animated planning obstacle from physically knocking the robot over while preserving planner collision geometry. Adjust short-path triggering and add focused regression coverage.
@yuecideng yuecideng added bug Something isn't working physics Things related to physics robot Module related to robot atomic action atomic action related functionality labels Sep 12, 2026
@yuecideng
yuecideng merged commit 00db5c3 into main Sep 12, 2026
2 checks passed
@yuecideng
yuecideng deleted the codex/fix-atomic-tutorial-startup branch September 12, 2026 08:08
@greptile-apps

greptile-apps Bot commented Sep 12, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 4/5

The PR appears safe to merge, with a non-blocking request to strengthen automated coverage of the obstacle’s dual physics/planner behavior.

Fix All in CodexFindings

  1. P2 Collision Behavior Is Untested
Fix with agent prompt
### Issue 1
tests/sim/atomic_actions/test_tutorial_utils.py:1060
This test only checks that `main` contains the literal `RigidBodyAttributesCfg(enable_collision=False)`. It will still pass if collision-disabled objects later stop contributing geometry to cuRobo or stop producing scene revisions, even though the fix depends on both behaviors. Add a functional test that constructs a collision-disabled obstacle and verifies its inclusion in the cuRobo world and its pose-update/replanning path.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

  • Clears both measured and target articulation velocities during reset.
  • Keeps the animated obstacle in cuRobo while disabling its native physics contact.
  • Derives obstacle timing from path length and adjusts tutorial lighting and clearance diagnostics.
  • Adds focused tests, although the collision-world behavior is currently guarded only through source-text inspection.

Diagram

sequenceDiagram
    participant R as Execution runner
    participant S as Simulator
    participant O as Kinematic obstacle
    participant C as cuRobo world
    R->>S: Dispatch initial trajectory commands
    R->>O: Animate obstacle after scaled trigger
    Note over O,S: Native contact remains disabled
    O-->>C: Updated pose and scene revision
    R->>C: Observe changed collision world
    C-->>R: Replan around obstacle
    R->>S: Execute recovered trajectory
Loading

Reviews (1) · Last reviewed commit: "fix(atomic-action): stabilize tutorial o..."

assert "fit_type=" not in main_source
assert "sphere_density=COLLISION_SPHERE_FIT_DENSITY" in main_source
assert "collision_sphere_buffer=ROBOT_COLLISION_BUFFER" in main_source
assert "RigidBodyAttributesCfg(enable_collision=False)" in main_source

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Collision Behavior Is Untested

This test only checks that main contains the literal RigidBodyAttributesCfg(enable_collision=False). It will still pass if collision-disabled objects later stop contributing geometry to cuRobo or stop producing scene revisions, even though the fix depends on both behaviors. Add a functional test that constructs a collision-disabled obstacle and verifies its inclusion in the cuRobo world and its pose-update/replanning path.

Knowledge Base Used:

Prompt To Fix With AI
This is a comment left during a code review.
Path: tests/sim/atomic_actions/test_tutorial_utils.py
Line: 1060

Comment:
**Collision Behavior Is Untested**

This test only checks that `main` contains the literal `RigidBodyAttributesCfg(enable_collision=False)`. It will still pass if collision-disabled objects later stop contributing geometry to cuRobo or stop producing scene revisions, even though the fix depends on both behaviors. Add a functional test that constructs a collision-disabled obstacle and verifies its inclusion in the cuRobo world and its pose-update/replanning path.

**Knowledge Base Used:**
- [Simulation lab](https://app.greptile.com/dexforce/-/custom-context/knowledge-base/dexforce/embodichain/-/docs/simulation-lab.md)
- [Motion planning and kinematics](https://app.greptile.com/dexforce/-/custom-context/knowledge-base/dexforce/embodichain/-/docs/motion-planning-and-kinematics.md)

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Codex Fix in Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

atomic action atomic action related functionality bug Something isn't working physics Things related to physics robot Module related to robot

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant