Skip to content

dora-mujoco simulation node with example for controlling any arm #1012

Merged
haixuanTao merged 15 commits intodora-rs:mainfrom
ShashwatPatil:franka
Jun 17, 2025
Merged

dora-mujoco simulation node with example for controlling any arm #1012
haixuanTao merged 15 commits intodora-rs:mainfrom
ShashwatPatil:franka

Conversation

@ShashwatPatil
Copy link
Copy Markdown
Contributor

This pull request introduces the initial setup for the dora-franka-mujoco project, including documentation, configuration files, and assets for simulating the Franka Emika Panda robot in MuJoCo. The most important changes include Defining a YAML configuration for nodes, adding robot assets and MuJoCo XML files, and creating a Python package structure for the project.

Documentation and Configuration:

  • TODO a README.md file with installation, formatting, linting, and testing instructions for the dora-franka-mujoco project.
  • Added demo.yml to define the configuration for nodes, including gamepad and mujoco_franka, with their inputs, outputs, and dependencies.

Robot Simulation Assets:

  • Added panda.xml to define the MuJoCo model for the Franka Emika Panda robot, including its joints, actuators, collision meshes, and visual meshes.
  • Added scene.xml to define the simulation environment, including a table, a movable box, and visual settings for the scene.
  • Added a list of asset files (names.txt) and corresponding 3D model files for the robot's components, such as links, fingers, and the hand.

@haixuanTao
Copy link
Copy Markdown
Collaborator

I think it's a good idea to store the meshes and exposes the xml. Making things slightly easier.

I probably missed it but how do you make sure that the file are going to be retrieved by mujoco?

@ShashwatPatil
Copy link
Copy Markdown
Contributor Author

I probably missed it but how do you make sure that the file are going to be retrieved by mujoco?

Currently the meshes are downloaded using huggungface repo, the mesh files are automatically discovered through MuJoCo's XML-based model definition system, you can see that inside the panda.xml file <compiler angle="radian" meshdir="assets" autolimits="true"/> and all the meshes are referenced after this to use in the <asset> tag

Sorry for the late reply

@haixuanTao
Copy link
Copy Markdown
Collaborator

@haixuanTao
Copy link
Copy Markdown
Collaborator

Can we rename dora-mujoco-sim to dora-mujoco?

@haixuanTao
Copy link
Copy Markdown
Collaborator

Can we also make Erika franks an example of dora-mujoco instead of a standalone node?

@ShashwatPatil
Copy link
Copy Markdown
Contributor Author

Yes the mujoco sim node uses that, but mujoco franka node still uses hugging face to get the assets, also i have modifed them a bit to include the table ans the small cube

Should have made a separate PR for that 😅

@ShashwatPatil
Copy link
Copy Markdown
Contributor Author

Can we also make Erika franks an example of dora-mujoco instead of a standalone node?

Ok will do that ☺️

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

It seems that this controller could work on any arm with an urdf right?

Maybe we could naming more apparent or directly use existing dora-pytorch-kinematics?

I wish this tutorial to have as many reusable component as possible.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

yes the controller should work with ant urdf, will try to make it reusable for any arm.

self.collision_influence_distance = 0.05

# Define which links can collide with each other (non-adjacent only)
self.collision_pairs = [
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

so it seems that every pair can collide with each other?

Can't we have a more automated way to compute this?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I had tried using PyTorch Volumetric to get this. It was having too much wobbly motion. And the collision avoidance part is not very reusable for any other arm

@ShashwatPatil ShashwatPatil changed the title added basic franka arm simulation with pose control dora-mujoco simulation node with example for controlling any arm Jun 14, 2025
@haixuanTao haixuanTao merged commit 0a5210b into dora-rs:main Jun 17, 2025
146 of 147 checks passed
@ShashwatPatil ShashwatPatil deleted the franka branch July 16, 2025 08:23
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.

2 participants