Isaac Sim Version
4.5.0
Operating System
Windows 11
GPU Information
- Model: RTX 2070 super
Topic Description
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!