rewrote URDF generation

This commit is contained in:
IDONTSUDO 2023-07-13 19:58:07 +03:00
parent 502e7a8d76
commit c1e7882cbb
2 changed files with 5 additions and 25 deletions

View file

@ -2,14 +2,12 @@ import argparse
import shutil
from helper.fs import FS
from src.usecases.urdf_sub_assembly_usecase import UrdfSubAssemblyUseCase
# from src.usecases.sdf_generate_world_usecase import SdfGenerateWorldUseCase
from src.model.sdf_geometry import GeometryModel
from src.usecases.sdf_sub_assembly_usecase import SdfSubAssemblyUseCase
import os
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('--generationFolder', help='FreeCad generation folder')

View file

@ -8,8 +8,7 @@ import json
import re
def toUrdf(el: GeometryModel):
return el.toUrdf()
URDF_FILE_FORMAT = '.urdf'
@ -17,26 +16,9 @@ URDF_GENERATOR_FILE = 'urdf-generation' + '.json'
class UrdfSubAssemblyUseCase(Assembly):
def call(self, geometryModels: list[GeometryModel], assembly: list[str], outPath: str, generationFolder: str, world: bool):
dirPath = outPath + Enum.folderPath
dirPath = generationFolder + Enum.folderPath
asm = {}
generateSubAssemblyModels = self.generateSubAssembly(assembly)
inc = 0
for key, value in generateSubAssemblyModels.items():
keyAsm = int(re.findall(r'\d', key)[0])
inc += 1
if value['assembly'].__len__() != 0:
model: Optional[GeometryModel] = listGetFirstValue(
geometryModels, None, lambda x: x.name == value['assembly'][0])
if model != None:
urdfs = list(map(toUrdf, filterModels(
geometryModels, value['assembly'])))
urdfs.append(listGetFirstValue(
geometryModels, None, lambda x: x.name == value['part']) .toUrdf())
asm[keyAsm] = urdfs
self.copy(generationFolder=generationFolder,
format='/sdf', outPath=outPath)
FS.writeFile(data=json.dumps(asm),
for el in geometryModels:
asm[el.name] = el.toUrdf()
FS.writeFile(data=json.dumps(asm,indent=4),
fileName=URDF_GENERATOR_FILE, filePath=dirPath)