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"]
docstr: define your own reward computation function
  Args:
      state_desc(dict): state description for current model
      reward(scalar): generic reward generated by env
      done(bool): generic done flag generated by env
docstr_tok: ["define","your","own","reward","computation","function","Args",":","state_desc","(","dict",")",":","state","description","for","current","model","reward","(","scalar",")",":","generic","reward","generated","by","env","done","(","bool",")",":","generic","done","flag","generated","by","env"]
code: def reward_shaping(self, state_desc, reward, done, action):
      """define your own reward computation function
      Args:
          state_desc(dict): state description for current model
          reward(scalar): generic reward generated by env
          done(bool): generic done flag generated by env
      """
      pass
  
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 2 for calling the RewardShaping obj's underlying member method code with example usage: obj.reward_shaping(state_desc, reward, done, action) without return types