Skip to content

Commit aeed298

Browse files
committed
merge release 1.5.1 from dev to main
1 parent 3f847a7 commit aeed298

File tree

5 files changed

+68
-7
lines changed

5 files changed

+68
-7
lines changed

docs/release_notes.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
Release Notes
22
=============
33

4+
1.5.1
5+
-----
6+
* Fix bug in IndustRealSim example - overwrite `generate_ctrl_signals`, `_set_dof_pos_target`, and `_set_dof_torque` in `industreal_base.py` to resolve `fingertip_midpoint` and `fingertip_centered` discrepancy
7+
48
1.5.0
59
-----
610

isaacgymenvs/cfg/task/IndustRealTaskGearsInsert.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,17 @@ rl:
5050
num_keypoints: 4 # number of keypoints used in reward
5151
keypoint_scale: 0.5 # length of line of keypoints
5252

53-
max_episode_length: 256
53+
max_episode_length: 128
5454

5555
# SAPU
5656
interpen_thresh: 0.001 # max allowed interpenetration between gear and shaft
5757

5858
# SDF-Based Reward
5959
sdf_reward_scale: 10.0
60-
sdf_reward_num_samples: 1000
60+
sdf_reward_num_samples: 5000
6161

6262
# SBC
63-
initial_max_disp: 0.015 # max initial downward displacement of gear at beginning of curriculum
63+
initial_max_disp: 0.01 # max initial downward displacement of gear at beginning of curriculum
6464
curriculum_success_thresh: 0.6 # success rate threshold for increasing curriculum difficulty
6565
curriculum_failure_thresh: 0.3 # success rate threshold for decreasing curriculum difficulty
6666
curriculum_height_step: [-0.005, 0.002] # how much to increase max initial downward displacement after hitting success or failure thresh
@@ -97,7 +97,7 @@ ctrl:
9797
joint_deriv_gains: [8, 8, 8, 8, 8, 8, 8]
9898
task_space_impedance:
9999
motion_ctrl_axes: [1, 1, 1, 1, 1, 1]
100-
task_prop_gains: [300, 300, 300, 50, 50, 50]
100+
task_prop_gains: [300, 300, 600, 50, 50, 50]
101101
task_deriv_gains: [34, 34, 34, 1.4, 1.4, 1.4]
102102
operational_space_motion:
103103
motion_ctrl_axes: [1, 1, 1, 1, 1, 1]

isaacgymenvs/tasks/industreal/industreal_algo_utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,8 @@ def get_sapu_reward_scale(
183183
)
184184

185185
# Determine if envs have low interpenetration or high interpenetration
186-
low_interpen_envs = torch.argwhere(max_interpen_dists <= interpen_thresh)
187-
high_interpen_envs = torch.argwhere(max_interpen_dists > interpen_thresh)
186+
low_interpen_envs = torch.nonzero(max_interpen_dists <= interpen_thresh)
187+
high_interpen_envs = torch.nonzero(max_interpen_dists > interpen_thresh)
188188

189189
# Compute reward scale
190190
reward_scale = 1 - torch.tanh(

isaacgymenvs/tasks/industreal/industreal_base.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,63 @@ def acquire_base_tensors(self):
350350
(self.num_envs, self.num_actions), device=self.device
351351
)
352352

353+
def generate_ctrl_signals(self):
354+
"""Get Jacobian. Set Franka DOF position targets or DOF torques."""
355+
# Get desired Jacobian
356+
if self.cfg_ctrl['jacobian_type'] == 'geometric':
357+
self.fingertip_midpoint_jacobian_tf = self.fingertip_centered_jacobian
358+
elif self.cfg_ctrl['jacobian_type'] == 'analytic':
359+
self.fingertip_midpoint_jacobian_tf = fc.get_analytic_jacobian(
360+
fingertip_quat=self.fingertip_quat,
361+
fingertip_jacobian=self.fingertip_centered_jacobian,
362+
num_envs=self.num_envs,
363+
device=self.device)
364+
# Set PD joint pos target or joint torque
365+
if self.cfg_ctrl['motor_ctrl_mode'] == 'gym':
366+
self._set_dof_pos_target()
367+
elif self.cfg_ctrl['motor_ctrl_mode'] == 'manual':
368+
self._set_dof_torque()
369+
370+
def _set_dof_pos_target(self):
371+
"""Set Franka DOF position target to move fingertips towards target pose."""
372+
self.ctrl_target_dof_pos = fc.compute_dof_pos_target(
373+
cfg_ctrl=self.cfg_ctrl,
374+
arm_dof_pos=self.arm_dof_pos,
375+
fingertip_midpoint_pos=self.fingertip_centered_pos,
376+
fingertip_midpoint_quat=self.fingertip_centered_quat,
377+
jacobian=self.fingertip_midpoint_jacobian_tf,
378+
ctrl_target_fingertip_midpoint_pos=self.ctrl_target_fingertip_centered_pos,
379+
ctrl_target_fingertip_midpoint_quat=self.ctrl_target_fingertip_centered_quat,
380+
ctrl_target_gripper_dof_pos=self.ctrl_target_gripper_dof_pos,
381+
device=self.device)
382+
self.gym.set_dof_position_target_tensor_indexed(self.sim,
383+
gymtorch.unwrap_tensor(self.ctrl_target_dof_pos),
384+
gymtorch.unwrap_tensor(self.franka_actor_ids_sim),
385+
len(self.franka_actor_ids_sim))
386+
def _set_dof_torque(self):
387+
"""Set Franka DOF torque to move fingertips towards target pose."""
388+
self.dof_torque = fc.compute_dof_torque(
389+
cfg_ctrl=self.cfg_ctrl,
390+
dof_pos=self.dof_pos,
391+
dof_vel=self.dof_vel,
392+
fingertip_midpoint_pos=self.fingertip_centered_pos,
393+
fingertip_midpoint_quat=self.fingertip_centered_quat,
394+
fingertip_midpoint_linvel=self.fingertip_centered_linvel,
395+
fingertip_midpoint_angvel=self.fingertip_centered_angvel,
396+
left_finger_force=self.left_finger_force,
397+
right_finger_force=self.right_finger_force,
398+
jacobian=self.fingertip_midpoint_jacobian_tf,
399+
arm_mass_matrix=self.arm_mass_matrix,
400+
ctrl_target_gripper_dof_pos=self.ctrl_target_gripper_dof_pos,
401+
ctrl_target_fingertip_midpoint_pos=self.ctrl_target_fingertip_centered_pos,
402+
ctrl_target_fingertip_midpoint_quat=self.ctrl_target_fingertip_centered_quat,
403+
ctrl_target_fingertip_contact_wrench=self.ctrl_target_fingertip_contact_wrench,
404+
device=self.device)
405+
self.gym.set_dof_actuation_force_tensor_indexed(self.sim,
406+
gymtorch.unwrap_tensor(self.dof_torque),
407+
gymtorch.unwrap_tensor(self.franka_actor_ids_sim),
408+
len(self.franka_actor_ids_sim))
409+
353410
def simulate_and_refresh(self):
354411
"""Simulate one step, refresh tensors, and render results."""
355412

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
setup(
3535
name="isaacgymenvs",
3636
author="NVIDIA",
37-
version="1.5.0",
37+
version="1.5.1",
3838
description="Benchmark environments for high-speed robot learning in NVIDIA IsaacGym.",
3939
keywords=["robotics", "rl"],
4040
include_package_data=True,

0 commit comments

Comments
 (0)