Download runtime_extensions/native_controller_policy.py from Songyuan666/TGCC-P: direct link, hf CLI and curl.
- Browser
- Download file 4.87 kB
-
https://huggingface.co/Songyuan666/TGCC-P/resolve/main/runtime_extensions/native_controller_policy.py
- Command line
-
hf download hf://Songyuan666/TGCC-P/runtime_extensions/native_controller_policy.py
-
curl -L -o native_controller_policy.py https://huggingface.co/Songyuan666/TGCC-P/resolve/main/runtime_extensions/native_controller_policy.py
4.87 kB
| """Leave finite raw commands intact and retain native simulator limit handling. | |
| This removes only TGCC's extra all-or-nothing chunk range veto. Actual | |
| controller input clipping, joint target clipping and physics limits are not | |
| changed. Callers must attest the live native controller configuration. | |
| """ | |
| import ast,functools,inspect,textwrap | |
| import numpy as np | |
| import torch | |
| def range_diagnostics(native,spec): | |
| values=torch.as_tensor(native).detach().float().cpu().numpy() | |
| if values.shape!=(32,23) or not np.isfinite(values).all():raise ValueError('Finite native32x23 command required') | |
| lo=np.asarray(spec.lower,np.float32);hi=np.asarray(spec.upper,np.float32) | |
| excess=np.maximum(np.maximum(lo-values,values-hi),0);bad=excess>0 | |
| return dict(raw_commands_within_nominal_ranges=not bool(bad.any()), | |
| violating_values=int(bad.sum()),max_excess=float(excess.max()), | |
| dimensions=[dict(index=i,name=spec.names[i],count=int(bad[:,i].sum()),max_excess=float(excess[:,i].max())) | |
| for i in range(23) if bad[:,i].any()], | |
| enforcement='unchanged_simulator_native_controller_clipping_and_joint_limits', | |
| application_chunk_range_veto=False,application_clipping=False) | |
| def install(controller_class): | |
| if getattr(controller_class,'_native_controller_policy_installed',False):return | |
| def finite_native(self,actions): | |
| native=self.normalizer.inverse(actions[...,:23]) | |
| if native.shape!=(1,32,23) or not bool(torch.isfinite(native).all()): | |
| raise ValueError('Nonfinite or malformed native action chunk') | |
| self.trace.setdefault('raw_command_range_diagnostics',[]).append(range_diagnostics(native[0],self.checker.spec)) | |
| return native,True | |
| def commit(self,native_actions): | |
| actions=np.asarray(native_actions,np.float32) | |
| if self.previous is None or actions.shape!=(32,23) or not np.isfinite(actions).all(): | |
| raise ValueError('Official dispatched action chunk mismatch') | |
| self.trace['dispatched_raw_command_ranges']=range_diagnostics(actions,self.checker.spec) | |
| self.previous['native_actions']=actions.copy() | |
| original_prepare=getattr(controller_class,'prepare',None) | |
| if original_prepare is not None: | |
| def prepare(self,raw,conditions,*,enforce_assistance_budget=True): | |
| # Distribution deviation is advisory. Keep per-request generation | |
| # bounded, but do not turn repeated advice into a physical failure. | |
| result=original_prepare(self,raw,conditions,enforce_assistance_budget=False) | |
| self.trace['statistical_feedback_budget_exceeded']=self.consecutive_feedback>self.max_consecutive_feedback | |
| self.trace['statistical_feedback_is_task_terminal']=False | |
| return result | |
| controller_class.prepare=prepare | |
| original=controller_class.sample_actions | |
| if controller_class.__name__=='DistributionController': | |
| tree=ast.parse(textwrap.dedent(inspect.getsource(original)));replaced=[] | |
| class AdvisoryPlanning(ast.NodeTransformer): | |
| def visit_Raise(self,node): | |
| if any(isinstance(n,ast.Constant) and n.value=='No legal demonstrated-order subtask remains' for n in ast.walk(node)): | |
| replaced.append(1) | |
| return ast.parse("legal=conditions.legal\nself.trace['planning_support_empty_fallback']='retain_original_legal_skills; density_OOD_is_not_physical_infeasibility'").body | |
| return node | |
| tree=AdvisoryPlanning().visit(tree) | |
| if len(replaced)!=1:raise ValueError('Frozen planning advisory branch changed') | |
| namespace=dict(inspect.unwrap(original).__globals__) | |
| exec(compile(ast.fix_missing_locations(tree),__file__,'exec'),namespace) | |
| original=namespace['sample_actions'] | |
| def sample(self,*args,**kwargs): | |
| def rename(value): | |
| if isinstance(value,dict): | |
| if 'native_constraints_satisfied' in value:value['finite_native_commands']=value.pop('native_constraints_satisfied') | |
| if value.get('selection_scope')=='lowest_conditional_nll_among_safe_original_and_one_reference_draw': | |
| value['selection_scope']='lowest_conditional_nll_among_finite_candidates; native_controller_limits_retained' | |
| for v in value.values():rename(v) | |
| elif isinstance(value,list): | |
| for v in value:rename(v) | |
| try:return original(self,*args,**kwargs) | |
| finally: | |
| rename(self.trace) | |
| self.trace['native_control_policy']='simulator_native_limits; no_extra_chunk_range_veto' | |
| controller_class._safe=finite_native;controller_class.commit_dispatched=commit | |
| controller_class.sample_actions=sample;controller_class._native_controller_policy_installed=True | |