Skip to content

Commit b74b233

Browse files
committed
addressed code review changes
1 parent 32a3c45 commit b74b233

File tree

9 files changed

+1278
-1290
lines changed

9 files changed

+1278
-1290
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import build_torso
2+
import build_neck
3+
import add_markers
4+
import build_tail
5+
import create_skin
6+
import build_front_legs
7+
import build_back_legs
8+
import add_muscles
9+
import add_wrapping_geoms
10+
import add_torque_actuators
11+
12+
build_torso = build_torso.create_torso
13+
build_neck = build_neck.create_neck
14+
add_markers = add_markers.add_markers
15+
build_tail = build_tail.create_tail
16+
create_skin = create_skin.create
17+
build_back_legs = build_back_legs.create_back_legs
18+
build_front_legs = build_front_legs.create_front_legs
19+
add_muscles = add_muscles.add_muscles
20+
add_wrapping_geoms = add_wrapping_geoms.add_wrapping_geoms
21+
add_torque_actuators = add_torque_actuators.add_motors

dm_control/locomotion/walkers/assets/dog_v2/add_muscles.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,8 @@ def add_muscles(
271271
)
272272

273273
paths = slices2paths(mtu, slices, muscle_length)
274-
spatial = model.tendon.add("spatial", name=f"{mtu}_tendon", dclass="muscle")
274+
spatial = model.tendon.add(
275+
"spatial", name=f"{mtu}_tendon", dclass="muscle")
275276
spatials.append(spatial)
276277
used_muscles.append(mtu)
277278

@@ -453,13 +454,13 @@ def add_muscles(
453454
if muscle_dynamics == "Millard":
454455
muscle.dynprm = prms
455456
else:
456-
prms[2] = 0.001
457+
prms[2] = 2.0
457458
muscle.dynprm = prms
458459

459460
if spatial.name[: -len("_tendon")] in muscles_constants.NECK:
460461
scale = 1500
461462
else:
462-
scale = 3000
463+
scale = 8000
463464

464465
# range(2), force, scale, lmin, lmax, vmax, fpmax, fvmax
465466
gainprm = [0.75, 1.05, -1, scale, 0.5, 1.6, 1.5, 1.3, 1.2, 0]

dm_control/locomotion/walkers/assets/dog_v2/add_wrapping_geoms.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@
1515

1616

1717
def add_wrapping_geoms(model):
18-
"""
19-
Adds wrapping geometries and sites to the specified model.
18+
""" Adds wrapping geometries and sites to the specified model.
2019
2120
Args:
2221
model: The model to which the wrapping geometries and sites will be added.

dm_control/locomotion/walkers/assets/dog_v2/build_dog.py

+32-39
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,7 @@
2222
from lxml import etree
2323

2424
from dm_control import mjcf
25-
from dm_control.locomotion.walkers.assets.dog_v2 import add_markers as add_markers_func
26-
from dm_control.locomotion.walkers.assets.dog_v2 import (
27-
add_muscles,
28-
add_torque_actuators,
29-
add_wrapping_geoms,
30-
build_back_legs,
31-
build_front_legs,
32-
build_neck,
33-
build_tail,
34-
build_torso,
35-
create_skin,
36-
)
25+
from dm_control.locomotion.walkers.assets import dog_v2
3726
from dm_control.utils import io as resources
3827

3928
flags.DEFINE_boolean("make_skin", True, "Whether to make a new dog_skin.skn")
@@ -78,14 +67,18 @@
7867
False,
7968
"Make slight adjustments to the model to make it compatible for the composer.",
8069
)
81-
70+
flags.DEFINE_string(
71+
"output_dir",
72+
os.path.dirname(__file__),
73+
"Output directory for the created dog model"
74+
)
8275

8376
FLAGS = flags.FLAGS
8477

8578
BASE_MODEL = "dog_base.xml"
8679
ASSET_RELPATH = "../../../../suite/dog_assets"
8780
CURRENT_DIR = os.path.dirname(__file__)
88-
ASSET_DIR = CURRENT_DIR + "/" + ASSET_RELPATH
81+
ASSET_DIR = os.path.join(CURRENT_DIR, ASSET_RELPATH)
8982

9083

9184
def exclude_contacts(model):
@@ -181,6 +174,7 @@ def main(argv):
181174
add_markers = FLAGS.add_markers
182175
lengthrange_from_joints = FLAGS.lengthrange_from_joints
183176
composer = FLAGS.composer
177+
output_dir = FLAGS.output_dir
184178
else:
185179
lumbar_dofs_per_vert = FLAGS["lumbar_dofs_per_vertebra"].default
186180
cervical_dofs_per_vertebra = FLAGS["cervical_dofs_per_vertebra"].default
@@ -193,24 +187,24 @@ def main(argv):
193187
add_markers = FLAGS["add_markers"].default
194188
lengthrange_from_joints = FLAGS["lengthrange_from_joints"].default
195189
composer = FLAGS["composer"].default
190+
output_dir = FLAGS["output_dir"].default
196191

197192
print("Load base model.")
198193
with open(os.path.join(CURRENT_DIR, BASE_MODEL), "r") as f:
199194
model = mjcf.from_file(f)
200195

201-
202196
if not composer:
203197
floor = model.worldbody.add(
204-
"body", name="floor", pos=(0, 0, 0)
205-
)
198+
"body", name="floor", pos=(0, 0, 0)
199+
)
206200
floor.add(
207-
"geom",
208-
name="floor",
209-
type="plane",
210-
conaffinity=1,
211-
size=[10, 10, 0.1],
212-
material="grid"
213-
)
201+
"geom",
202+
name="floor",
203+
type="plane",
204+
conaffinity=1,
205+
size=[10, 10, 0.1],
206+
material="grid"
207+
)
214208
# Helper constants:
215209
side_sign = {
216210
"_L": np.array((1.0, -1.0, 1.0)),
@@ -267,7 +261,7 @@ def main(argv):
267261

268262
# Torso
269263
print("Torso, lumbar spine, pelvis.")
270-
pelvic_bones, lumbar_joints = build_torso.create_torso(
264+
pelvic_bones, lumbar_joints = dog_v2.build_torso(
271265
model,
272266
bones,
273267
bone_position,
@@ -279,7 +273,7 @@ def main(argv):
279273

280274
print("Neck, skull, jaw.")
281275
# Cervical spine (neck) bodies:
282-
cervical_joints = build_neck.create_neck(
276+
cervical_joints = dog_v2.build_neck(
283277
model,
284278
bone_position,
285279
cervical_dofs_per_vertebra,
@@ -290,7 +284,7 @@ def main(argv):
290284
)
291285

292286
print("Back legs.")
293-
nails, sole_sites = build_back_legs.create_back_legs(
287+
nails, sole_sites = dog_v2.build_back_legs(
294288
model,
295289
primary_axis,
296290
bone_position,
@@ -302,7 +296,7 @@ def main(argv):
302296
)
303297

304298
print("Shoulders, front legs.")
305-
palm_sites = build_front_legs.create_front_legs(
299+
palm_sites = dog_v2.build_front_legs(
306300
nails,
307301
model,
308302
primary_axis,
@@ -312,7 +306,7 @@ def main(argv):
312306
)
313307

314308
print("Tail.")
315-
caudal_joints = build_tail.create_tail(
309+
caudal_joints = dog_v2.build_tail(
316310
caudal_dofs_per_vertebra,
317311
bone_size,
318312
model,
@@ -365,9 +359,8 @@ def main(argv):
365359
exclude_contacts(model)
366360

367361
if make_skin:
368-
create_skin.create(
369-
model=model, mesh_file=skin_msh, asset_dir=ASSET_DIR, mesh_name="dog_skin", composer=composer
370-
)
362+
dog_v2.create_skin(model=model, mesh_file=skin_msh,
363+
asset_dir=ASSET_DIR, mesh_name="dog_skin", composer=composer)
371364

372365
# Add skin from .skn
373366
print("Adding Skin.")
@@ -397,7 +390,7 @@ def main(argv):
397390
muscle_msh = model.asset.add(
398391
"mesh", name=filename[:-4], file=ASSET_DIR + "/muscles/" + filename
399392
)
400-
create_skin.create(
393+
dog_v2.create_skin(
401394
model=model,
402395
asset_dir=ASSET_DIR,
403396
mesh_file=muscle_msh,
@@ -426,22 +419,22 @@ def main(argv):
426419

427420
if add_markers:
428421
print("Add Markers")
429-
add_markers_func.add_markers(model)
422+
dog_v2.add_markers(model)
430423

431424
print("Add Actuators")
432425
if use_muscles:
433426
# Add wrapping geometries
434-
add_wrapping_geoms.add_wrapping_geoms(model)
427+
dog_v2.add_wrapping_geoms(model)
435428
# Add muscles
436-
add_muscles.add_muscles(
429+
dog_v2.add_muscles(
437430
model,
438431
muscle_strength_scale,
439432
muscle_dynamics,
440433
ASSET_DIR,
441434
lengthrange_from_joints,
442435
)
443436
else:
444-
actuated_joints = add_torque_actuators.add_motors(
437+
actuated_joints = dog_v2.add_torque_actuators(
445438
physics, model, lumbar_joints, cervical_joints, caudal_joints
446439
)
447440

@@ -499,7 +492,7 @@ def main(argv):
499492
if composer:
500493
torso = model.find("body", "torso")
501494
torso.pos = np.zeros(3)
502-
495+
503496
print("Finalising and saving model.")
504497
xml_string = model.to_xml_string("float", precision=4, zero_threshold=1e-7)
505498
root = etree.XML(xml_string, etree.XMLParser(remove_blank_text=True))
@@ -548,7 +541,7 @@ def main(argv):
548541
name = name_prefix + "dog_muscles_{}_{}.xml".format(
549542
muscle_strength_scale, muscle_dynamics)
550543

551-
f = open(os.path.join(CURRENT_DIR, name), "wb")
544+
f = open(os.path.join(output_dir, name), "wb")
552545
f.write(xml_string)
553546
f.close()
554547

0 commit comments

Comments
 (0)