Skip to content

Conversation

@ayushgnv
Copy link
Member

@ayushgnv ayushgnv commented Oct 21, 2025

Warehouse Simulation Interfaces Demo Overview

  • Setup: Initializes ROS2 and connects to simulation backend (IsaacSim/O3DE/Gazebo)
  • Load world: Loads warehouse environment with table and colored cubes
  • Spawn robots: Places Dingo mobile robot and UR10 arm in the scene
  • Iteration 0: Spawns 3 cardboard boxes, Dingo pushes obstacle_box_0_1 in -X direction
  • Iteration 1: Spawns 3 new cardboard boxes, Dingo pushes obstacle_box_1_1 in +Y direction
  • Iteration 2: Spawns 3 new cardboard boxes, Dingo pushes obstacle_box_2_0 in +X direction
  • Each iteration: UR10 arm moves to different joint positions while box pushing occurs
  • Box pushing: Dingo positions behind target box and pushes 0.5 meters with continuous monitoring
  • Robot repositioning: Moves Dingo to final location after each pushing task completes
  • Cleanup: Stops simulation and unloads world when all iterations finish

@iche033 @jhanca-robotecai @adamdbrw to check

ayushgnv and others added 11 commits October 15, 2025 22:18
Signed-off-by: Jan Hanca <jan.hanca@robotec.ai>
Signed-off-by: Jan Hanca <jan.hanca@robotec.ai>
Signed-off-by: Jan Hanca <jan.hanca@robotec.ai>
Add error logs; fix spawning position
…g states and stepping sim

Signed-off-by: Ian Chen <ichen@openrobotics.org>
Rotate robotic arm; add action client
Add code to demo setting entity state and stepping simulation
@ayushgnv ayushgnv requested a review from adamdbrw October 21, 2025 09:56
Copy link
Contributor

@jhanca-robotecai jhanca-robotecai left a comment

Choose a reason for hiding this comment

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

The script works correctly on O3DE (I did not test it with other simulators). The content of the script was reviewed independently in other PRs. The code might need some polishing, but it should be done in separate PRs.

The only problem I face is that O3DE sets the UR10 arm in 0 position (for all joints) when the simulation is in other state than "playing:. The method move_cubes_and_step_sim moves small cubes above the robotic arm. When the simulation starts, the cubes are bounced away from the scene by the robotic arm:
image

image

This problem should be fixed in a separate PR if we decide to fix it. I believe it is a good demonstration of the differences between simulators that are independent from interfaces.


Run the script:

`python3 warehouse_simulation_script.py`
Copy link
Contributor

Choose a reason for hiding this comment

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

You might want to add a comment about the command line arguments:

--sim-backend isaacsim
--sim-backend o3de
--sim-backend gazebo

time.sleep(2.0)

# Move box and set entity state
move_cubes_and_step_sim(node, set_state_client, set_entity_state_client, step_sim_client, table_x, table_y, table_z, args.sim_backend)
Copy link
Contributor

Choose a reason for hiding this comment

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

This part of your script is not described in your PR description.

Btw. the PR description could go to the README file to explain what can be done with the script.

@adamdbrw
Copy link
Contributor

I think it is an interesting difference which we don't necessarily need to fix for the talk. Not covered by the standard but important for portability / co-sim.

@iche033
Copy link
Contributor

iche033 commented Oct 22, 2025

The method move_cubes_and_step_sim moves small cubes above the robotic arm. When the simulation starts, the cubes are bounced away from the scene by the robotic arm

I added this function to show case setting entity state. I noticed the difference in behavior afterwards. The UR10 initial joint configuration is different between the simulators. I've now changed the UR10 configuration in Gazebo to match O3DE and Issac Sim. In Gazebo, the cubes now gently bounce off the arm

@jhanca-robotecai
Copy link
Contributor

This PR might be closed after #3 was merged

@adamdbrw adamdbrw closed this Nov 3, 2025
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.

4 participants