class_docstr: A wrapper for reward shaping, note this wrapper must be the first wrapper 
class_docstr_tok: ["A","wrapper","for","reward","shaping",",","note","this","wrapper","must","be","the","first","wrapper"]
code: def reset(self, **kwargs):
      self.step_count = 0
      self.last_target_vel = None
      self.last_target_change_step = 0
      self.target_change_times = 0
      obs = self.env.reset(**kwargs)
      self.pre_state_desc = obs
      return obs
  
imports: import abc
  import gym
  import math
  import numpy
  import random
  from collections import OrderedDict
  from osim.env import ProstheticsEnv
  from parl.utils import logger
  from tqdm import tqdm
label_desc: Use image node_id 4 for calling the RewardShaping obj's underlying member method code with example usage: obj.reset() and returns: obs