Skip to content

Commit 2c9b667

Browse files
committed
Merge remote-tracking branch 'fork/jichuanh/fix-newton-shape-margin' into jichuanh/rough-terrain-clean
2 parents 07265de + 5a20ed3 commit 2c9b667

33 files changed

Lines changed: 127 additions & 76 deletions

File tree

.github/workflows/license-check.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
- name: Set up Python
5353
uses: actions/setup-python@v5
5454
with:
55-
python-version: '3.11' # Adjust as needed
55+
python-version: '3.12'
5656

5757
- name: Install dependencies using ./isaaclab.sh -i
5858
env:
@@ -63,7 +63,7 @@ jobs:
6363
run: |
6464
# first install isaac sim
6565
pip install --upgrade pip
66-
pip install 'isaacsim[all,extscache]==${{ vars.ISAACSIM_BASE_VERSION || '5.1.0' }}' --extra-index-url https://pypi.nvidia.com
66+
pip install 'isaacsim[all,extscache]==${{ vars.ISAACSIM_BASE_VERSION || '6.0.0' }}' --extra-index-url https://pypi.nvidia.com
6767
chmod +x ./isaaclab.sh # Make sure the script is executable
6868
# install all lab dependencies
6969
./isaaclab.sh -i

.github/workflows/license-exceptions.json

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323
"package": "isaaclab_tasks",
2424
"license": null
2525
},
26+
{
27+
"package": "isaaclab_tasks_experimental",
28+
"license": null
29+
},
2630
{
2731
"package": "isaaclab_teleop",
2832
"license": null
@@ -187,6 +191,11 @@
187191
"package": "omniverse-kit",
188192
"license": null
189193
},
194+
{
195+
"package": "osqp",
196+
"license": "UNKNOWN",
197+
"comment": "Apache 2.0"
198+
},
190199
{
191200
"package": "warp-lang",
192201
"license": null
@@ -321,7 +330,7 @@
321330
},
322331
{
323332
"package": "usd-core",
324-
"license": "Other/Proprietary License",
333+
"license": "LicenseRef-TOST-1.0",
325334
"comment": "TOST / OSRB"
326335
},
327336
{
@@ -421,7 +430,7 @@
421430
},
422431
{
423432
"package": "aiohappyeyeballs",
424-
"license": "Other/Proprietary License; Python Software Foundation License",
433+
"license": "Python Software Foundation License",
425434
"comment": "PSFL / OSRB"
426435
},
427436
{
@@ -461,7 +470,7 @@
461470
},
462471
{
463472
"package": "typing_extensions",
464-
"license": "Python Software Foundation License",
473+
"license": "PSF-2.0",
465474
"comment": "PSF-2.0 / OSRB"
466475
},
467476
{

docker/Dockerfile.base

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,13 @@ RUN ${ISAACLAB_PATH}/isaaclab.sh -p -m pip uninstall -y quadprog
109109
ENV PYTHONPATH="${ISAACSIM_ROOT_PATH}/exts/isaacsim.robot_motion.pink/pip_prebundle:${ISAACSIM_ROOT_PATH}/exts/isaacsim.robot_motion.pink/pip_prebundle/cmeel.prefix/lib/python3.12/site-packages:${PYTHONPATH}"
110110
ENV LD_LIBRARY_PATH="${ISAACSIM_ROOT_PATH}/exts/isaacsim.robot_motion.pink/pip_prebundle/cmeel.prefix/lib:${LD_LIBRARY_PATH}"
111111

112-
# HACK: Expose nvidia.srl from Kit python into the ml_archive nvidia namespace
113-
RUN ln -s ${ISAACSIM_ROOT_PATH}/kit/python/lib/python3.12/site-packages/nvidia/srl \
114-
${ISAACSIM_ROOT_PATH}/exts/omni.isaac.ml_archive/pip_prebundle/nvidia/srl
112+
# HACK: nvidia-srl-usd-to-urdf was previously bundled in the Isaac Sim image but has
113+
# been removed. Install with --no-deps to avoid lxml<5 conflict with dex-retargeting.
114+
# Then symlink nvidia.srl into the ml_archive nvidia namespace so Python can find it
115+
# (the deprecated ml_archive prebundle shadows site-packages for the nvidia namespace).
116+
RUN ${ISAACLAB_PATH}/isaaclab.sh -p -m pip install --no-deps nvidia-srl-usd-to-urdf \
117+
&& ln -s ${ISAACSIM_ROOT_PATH}/kit/python/lib/python3.12/site-packages/nvidia/srl \
118+
${ISAACSIM_ROOT_PATH}/extsDeprecated/omni.isaac.ml_archive/pip_prebundle/nvidia/srl
115119

116120
# aliasing isaaclab.sh and python for convenience
117121
RUN echo "export ISAACLAB_PATH=${ISAACLAB_PATH}" >> ${HOME}/.bashrc && \

docker/Dockerfile.curobo

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,13 @@ RUN ${ISAACLAB_PATH}/isaaclab.sh -p -m pip uninstall -y quadprog
157157
ENV PYTHONPATH="${ISAACSIM_ROOT_PATH}/exts/isaacsim.robot_motion.pink/pip_prebundle:${ISAACSIM_ROOT_PATH}/exts/isaacsim.robot_motion.pink/pip_prebundle/cmeel.prefix/lib/python3.12/site-packages:${PYTHONPATH}"
158158
ENV LD_LIBRARY_PATH="${ISAACSIM_ROOT_PATH}/exts/isaacsim.robot_motion.pink/pip_prebundle/cmeel.prefix/lib:${LD_LIBRARY_PATH}"
159159

160-
# HACK: Expose nvidia.srl from Kit python into the ml_archive nvidia namespace
161-
RUN ln -s ${ISAACSIM_ROOT_PATH}/kit/python/lib/python3.12/site-packages/nvidia/srl \
162-
${ISAACSIM_ROOT_PATH}/exts/omni.isaac.ml_archive/pip_prebundle/nvidia/srl
160+
# HACK: nvidia-srl-usd-to-urdf was previously bundled in the Isaac Sim image but has
161+
# been removed. Install with --no-deps to avoid lxml<5 conflict with dex-retargeting.
162+
# Then symlink nvidia.srl into the ml_archive nvidia namespace so Python can find it
163+
# (the deprecated ml_archive prebundle shadows site-packages for the nvidia namespace).
164+
RUN ${ISAACLAB_PATH}/isaaclab.sh -p -m pip install --no-deps nvidia-srl-usd-to-urdf \
165+
&& ln -s ${ISAACSIM_ROOT_PATH}/kit/python/lib/python3.12/site-packages/nvidia/srl \
166+
${ISAACSIM_ROOT_PATH}/extsDeprecated/omni.isaac.ml_archive/pip_prebundle/nvidia/srl
163167

164168
# Install cuRobo from source (pinned commit); needs CUDA env and Torch
165169
RUN ${ISAACLAB_PATH}/isaaclab.sh -p -m pip install --no-build-isolation \

docs/source/how-to/haply_teleoperation.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ Software Requirements
7070

7171
* Isaac Lab (follow the :ref:`installation guide <isaaclab-installation-root>`)
7272
* Haply SDK (provided by Haply Robotics)
73-
* Python 3.10+
73+
* Python 3.12+
7474
* ``websockets`` Python package (automatically installed with Isaac Lab)
7575

7676

source/isaaclab/config/extension.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22

33
# Note: Semantic Versioning is used: https://semver.org/
4-
version = "4.6.0"
4+
version = "4.6.1"
55

66
# Description
77
title = "Isaac Lab framework for Robot Learning"

source/isaaclab/docs/CHANGELOG.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
Changelog
22
---------
33

4+
4.6.1 (2026-04-14)
5+
~~~~~~~~~~~~~~~~~~
6+
7+
Added
8+
^^^^^
9+
10+
* Added :attr:`~isaaclab.sim.schemas.JointDrivePropertiesCfg.ensure_drives_exist`
11+
flag to :class:`~isaaclab.sim.schemas.JointDrivePropertiesCfg`. When enabled,
12+
joints with zero stiffness and damping receive a minimal stiffness so that
13+
backends like Newton recognise the drive as active.
14+
15+
416
4.6.0 (2026-04-13)
517
~~~~~~~~~~~~~~~~~~
618

source/isaaclab/isaaclab/sim/schemas/schemas.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,16 @@ def modify_joint_drive_properties(
685685
# convert to dict
686686
cfg = cfg.to_dict()
687687

688+
# ensure_drives_exist: if both stiffness and damping are zero on the authored drive,
689+
# set a minimal stiffness so that backends like Newton recognise the drive as active.
690+
ensure_drives = cfg.pop("ensure_drives_exist", False)
691+
if ensure_drives and cfg["stiffness"] is None and cfg["damping"] is None:
692+
# read the current values from the drive
693+
cur_stiffness = usd_drive_api.GetStiffnessAttr().Get()
694+
cur_damping = usd_drive_api.GetDampingAttr().Get()
695+
if (cur_stiffness is None or cur_stiffness == 0.0) and (cur_damping is None or cur_damping == 0.0):
696+
cfg["stiffness"] = 1e-3
697+
688698
# check if linear drive
689699
is_linear_drive = prim.IsA(UsdPhysics.PrismaticJoint)
690700
# convert values for angular drives from radians to degrees units

source/isaaclab/isaaclab/sim/schemas/schemas_cfg.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,18 @@ class JointDrivePropertiesCfg:
231231
* For angular joints, the unit is kg-m^2/s/rad (N-m-s/rad).
232232
"""
233233

234+
ensure_drives_exist: bool = False
235+
"""If True, ensure every joint has a non-zero drive so that physics backends
236+
(e.g. Newton) create proper actuators for it.
237+
238+
When a USD asset defines ``PhysicsDriveAPI`` with ``stiffness=0`` and
239+
``damping=0``, some backends treat the joint as passive (no PD control).
240+
Enabling this flag writes a minimal stiffness (``1e-3``) to any drive whose
241+
stiffness *and* damping are both zero, guaranteeing that the backend
242+
recognises the drive as active. The actual gains are expected to be
243+
overridden later by the actuator model.
244+
"""
245+
234246

235247
@configclass
236248
class FixedTendonPropertiesCfg:

source/isaaclab/setup.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,16 +130,13 @@
130130
license="BSD-3-Clause",
131131
include_package_data=True,
132132
package_data={"": ["*.pyi"]},
133-
python_requires=">=3.10",
133+
python_requires=">=3.12",
134134
install_requires=INSTALL_REQUIRES,
135135
extras_require=EXTRAS_REQUIRE,
136136
dependency_links=PYTORCH_INDEX_URL,
137137
packages=["isaaclab"],
138138
classifiers=[
139-
"Programming Language :: Python :: 3.11",
140139
"Programming Language :: Python :: 3.12",
141-
"Isaac Sim :: 5.0.0",
142-
"Isaac Sim :: 5.1.0",
143140
"Isaac Sim :: 6.0.0",
144141
],
145142
zip_safe=False,

0 commit comments

Comments
 (0)