DavidPL1 / assembly_example

Example code for interaction with our assembly simulation ICRA 2023 challenge
7 stars 1 forks source link

Where to access the object meshes? #12

Closed Director-of-G closed 1 year ago

Director-of-G commented 1 year ago

Hi, it is declared in the competition webpage that

Screwing...For this task, a screw, a nut, and a fixture are placed on the workspace table – their object meshes will be available...

and

Plugging...For this task, a peg-like plug and its counterpart, a frame with a hole, are placed randomly on the workspace table. The object meshes will be available to participants again...

However, we failed to access the object meshes via ROS, and there seems to be no description about possible interfaces in wiki. Could you please explain more clearly how we could access the meshes, i.e., will they be launched via ROS, or via local files in the docker image? Thanks a lot!

DavidPL1 commented 1 year ago

First of all make sure to use the 2.1 docker image I've just updated today (the official release notification and notes will be sent tomorrow), it contains updated meshes.

To access the meshes directly you can copy them out of the Docker container by running the following commands:

# Create a docker container using the latest server image (presuming you imported the image as s4dx/assembly_server:latest otherwise insert the corresponding name)
docker create --name mesh_extract s4dx/assembly_server:latest

# Copy the assembly_server install space to your local machine
docker cp mesh_extract:/home/assembly_server/share/assembly_demo/assets/meshes ${HOME}/assembly_meshes

# Delete container
docker rm mesh_extract

the directory stutzmontage contains the screwing task meshes. Mind that these meshes might be scaled differently according to the chosen difficulty levels due to the randomized parameters.

Director-of-G commented 1 year ago

First of all make sure to use the 2.1 docker image I've just updated today (the official release notification and notes will be sent tomorrow), it contains updated meshes.

To access the meshes directly you can copy them out of the Docker container by running the following commands:

# Create a docker container using the latest server image (presuming you imported the image as s4dx/assembly_server:latest otherwise insert the corresponding name)
docker create --name mesh_extract s4dx/assembly_server:latest

# Copy the assembly_server install space to your local machine
docker cp mesh_extract:/home/assembly_server/share/assembly_demo/assets/meshes ${HOME}/assembly_meshes

# Delete container
docker rm mesh_extract

the directory stutzmontage contains the screwing task meshes. Mind that these meshes might be scaled differently according to the chosen difficulty levels due to the randomized parameters.

Thanks for your reply. Now we can access the mesh of the screw, nut and all plugs.

Director-of-G commented 1 year ago

Hi @DavidPL1, we are still confused with the object meshes. As you described

the directory stutzmontage contains the screwing task meshes. Mind that these meshes might be scaled differently according to the chosen difficulty levels due to the randomized parameters.

we guess that the stutzmontage and plugging directories contain meshes for screwing and plugging tasks respectively. The files in stutzmontage are clear. However, the files in plugging are quite confusing.

Specifically, we are concerned with the following:

  1. The meshes in plugging are of various shapes, some even have irregular polygon-shaped cross sections. However, we only observed symmetrical cylindrical, triangular and cuboid plugs in simulation. Will those irregular shaped plugs be included in the competition?
  2. The plugs in simulation seem to be invariant in size. Besides, there is no description about possible scaling in your Wiki. Will the plugs be scaled in the plugging task, just like the screwing task? If the answer is yes, will their geometric parameters be provided, i.e., radius or height?
  3. Possibly some meshes in plugging directory are already deprecated, could you please clarify which meshes are being used?
DavidPL1 commented 1 year ago

we guess that the stutzmontage and plugging directories contain meshes for screwing and plugging tasks respectively.

That is correct.

@balandbal, can you respond to 1, 2 and 3?

balandbal commented 1 year ago

I have just updated the wiki page for the plugging task explaining the geometries and their structure.

The meshes in plugging are of various shapes, some even have irregular polygon-shaped cross sections. However, we only observed symmetrical cylindrical, triangular and cuboid plugs in simulation. Will those irregular shaped plugs be included in the competition?

The meshes had to be split into convex sub-meshes due to the simulator's collision-checking algorithm. These sub-meshes were exported with the same origin, so re-composing them should be possible by only importing them into the same project/environment (e.g. via Blender).

For the plugs, the parts that belong together follow the naming convention 2023_icra_challenge_<GEOMETRY TYPE>_plug_<NUM>.STL, where <GEOMETRY TYPE> is either cylindrical, cuboid or triangular, and <NUM> is an integer ID for the sub-mesh.

For the fixtures, the parts that belong together follow the naming convention 2023_icra_challenge_<GEOMETRY TYPE>_<ID>.STL, where is the same as above, and is

The plugs in simulation seem to be invariant in size. Besides, there is no description about possible scaling in your Wiki. Will the plugs be scaled in the plugging task, just like the screwing task? If the answer is yes, will their geometric parameters be provided, i.e., radius or height?

No, only the geometry is varied. Dimensions stay the same.

Possibly some meshes in plugging directory are already deprecated, could you please clarify which meshes are being used?

None of the meshes currently there should be deprecated -- they are convex parts of the whole geometries.