Why Is My WheelRobot Not Moving Smoothly in Isaac Sim Using controller_drive.forward()?

Isaac Sim Version

4.5.0

Operating System

Windows 11

GPU Information

  • Model: RTX 2070 super

Topic Description

2025-04-16 21-13-58

class HH7(BehaviorScript):
    def on_init(self):
        self._robot = None
        self._controller_drive = None   # 전진/후진용
        self._controller_steer = None   # 방향 조절용
        self._wheel_dof_drive = ["left_wheel_joint", "right_wheel_joint"]
        self._wheel_dof_steer = ["left_caster_joint", "right_caster_joint"]

        # 로봇 추가
        asset_path = get_assets_root_path() + "/Isaac/Robots/Idealworks/iw_hub.usd"
        self._robot = WheeledRobot(
            prim_path="/World/iw_hub",
            name="iw_hub",
            wheel_dof_names=self._wheel_dof_drive,
            create_robot=True,
            usd_path=asset_path,
            position=np.array([0, 0, 0])
        )

        # 로봇 생성 확인 출력
        if self._robot.prim.IsValid():
            carb.log_info("[iw_hub] 로봇 프림이 정상적으로 생성되었습니다.")
        else:
            carb.log_error("[iw_hub] 로봇 프림 생성 실패!")

        # 전진/후진 바퀴 controller
        self._controller_drive = DifferentialController(name="iw_drive", wheel_radius=0.05, wheel_base=0.3)

        # 방향 조절 바퀴 controller (각도 회전, 단순 제어 목적)
        self._steering_action = ArticulationAction()```

def setup(self):
    self._robot.initialize()
    carb.log_info("[iw_hub] 초기화 완료. 조인트 정보:")
    for i in range(self._robot.num_dof):
        joint_name = self._robot.get_dof_name(i)
        carb.log_info(f"  - {i}: {joint_name}")
        
def on_play(self):
    self._robot.initialize()
  def on_update(self, current_time: float, delta_time: float):
      # 시간에 따라 모드 결정
      phase = int(current_time) % 10

      # 기본값
      forward_speed = 10.0
      steer_angle = -1.4
      angular_velocity = 10.0
      drive_action = self._controller_drive.forward(command=[forward_speed, 0.0])
      self._robot.apply_wheel_actions(drive_action)

Hello,

I’m currently working on modeling and controlling my own AGV or AMR in Isaac Sim. As practice, I’m using the built-in iw_hub robot asset and trying to control its movement using the WheelRobot class.

Specifically, I’m using the following command to apply forward motion:

python

복사편집

drive_action = self._controller_drive.forward(command=[forward_speed, 0.0])

However, the wheels don’t rotate smoothly — the robot only “jerks” forward intermittently. It looks like it’s trying to move but ends up trembling or twitching instead of rolling smoothly.

I’m wondering what might be causing this issue and what the best practices are for ensuring smooth and continuous wheel motion in this setup.

I would appreciate any suggestions on:

  • Proper usage of controller_drive commands in a continuous simulation loop
  • Correct physical configuration (e.g., drive stiffness, damping, max_force)
  • Common pitfalls with DOF assignments or friction settings
  • Ensuring the command is applied every frame

Thank you in advance for your help!