Skip to content

Commit 8c3d90a

Browse files
authored
[MISC] Various minor bug fixes. (#1967)
1 parent 1ccd623 commit 8c3d90a

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

.github/workflows/production.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ env:
1919
# Note that secrets are not passed to workflows that are triggered by a pull request from a fork
2020
HF_TOKEN: ${{ secrets.HF_TOKEN }}
2121
HF_HUB_DOWNLOAD_TIMEOUT: 60
22-
GENESIS_IMAGE_VER: "1_10"
22+
GENESIS_IMAGE_VER: "1_14"
2323
TIMEOUT_MINUTES: 60
2424
FORCE_COLOR: 1
2525
PY_COLORS: 1
@@ -64,7 +64,7 @@ jobs:
6464
"${{ github.workspace }}":/root/workspace \
6565
--no-container-mount-home --container-workdir=/root/workspace \
6666
--export=NVIDIA_DRIVER_CAPABILITIES=all,BASH_ENV=/root/.bashrc,HF_TOKEN,GS_ENABLE_NDARRAY=${GS_ENABLE_NDARRAY} \
67-
--partition=hpc-mid --exclusive --nodes=1 --time="${TIMEOUT_MINUTES}" \
67+
--partition=hpc-mid --nodes=1 --gpus=8 --exclusive --time="${TIMEOUT_MINUTES}" \
6868
--job-name=${SLURM_JOB_NAME} \
6969
bash -e -s << 'EOF'
7070
if test -n "$(find /root/.venv -maxdepth 0 -empty)"; then
@@ -127,7 +127,7 @@ jobs:
127127
"${{ github.workspace }}":/root/workspace \
128128
--no-container-mount-home --container-workdir=/root/workspace \
129129
--export=${SLURM_ENV_VARS} \
130-
--partition=hpc-mid --exclusive --nodes=1 --time="${TIMEOUT_MINUTES}" \
130+
--partition=hpc-mid --nodes=1 --gpus=8 --exclusive --time="${TIMEOUT_MINUTES}" \
131131
--job-name=${SLURM_JOB_NAME} \
132132
bash -e -s << 'EOF'
133133
# sudo apt update

genesis/engine/solvers/rigid/constraint_solver_decomp.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,14 @@ def __init__(self, rigid_solver: "RigidSolver"):
3131
self.ls_tolerance = rigid_solver._options.ls_tolerance
3232
self.sparse_solve = rigid_solver._options.sparse_solve
3333

34-
# 4 constraints per contact, 1 constraints per joint limit (upper and lower, if not inf), and 3 constraints per equality
35-
self.len_constraints = (
36-
5 * rigid_solver.collider._collider_info.max_contact_pairs[None]
37-
+ np.logical_not(np.isinf(self._solver.dofs_info.limit.to_numpy()[:, 0])).sum()
34+
# * 4 constraints per contact
35+
# * 1 constraint per joint limit (upper and lower, if not inf)
36+
# * 1 constraint per dof frictionloss
37+
# * up to 6 constraints per equality (weld)
38+
self.len_constraints = int(
39+
4 * rigid_solver.collider._collider_info.max_contact_pairs[None]
40+
+ (self._solver.dofs_info.frictionloss.to_numpy() > gs.EPS).sum()
41+
+ (~np.isinf(self._solver.dofs_info.limit.to_numpy()).any(axis=-1)).sum()
3842
+ self._solver.n_equalities_candidate * 6
3943
)
4044
self.len_constraints_ = max(1, self.len_constraints)

genesis/engine/solvers/rigid/constraint_solver_decomp_island.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ def __init__(self, rigid_solver: "RigidSolver"):
3232
self.sparse_solve: bool = True
3333

3434
# 4 constraints per contact and 1 constraints per joint limit (upper and lower, if not inf)
35-
self.len_constraints = (
36-
5 * self._collider._collider_info.max_contact_pairs[None]
35+
self.len_constraints = int(
36+
4 * self._collider._collider_info.max_contact_pairs[None]
3737
+ np.logical_not(np.isinf(self._solver.dofs_info.limit.to_numpy()[:, 0])).sum()
3838
)
3939
self.len_constraints_ = max(1, self.len_constraints)

0 commit comments

Comments
 (0)