def _set_body()

in robosumo/envs/agents.py [0:0]


    def _set_body(self):
        self.body_names = list(filter(
            lambda x: self._in_scope(x), self._env.model.body_names
        ))
        self.body_ids = [
            self._env.model.body_names.index(name) for name in self.body_names
        ]
        self.body_name_idx = {
            name.split('/')[-1]: idx
            for name, idx in zip(self.body_names, self.body_ids)
        }
        # Determine body params
        self.body_dofnum = self._env.model.body_dofnum[self.body_ids]
        self.body_dofadr = self._env.model.body_dofadr[self.body_ids]
        self.nv = self.body_dofnum.sum()
        # Determine qvel_start_idx and qvel_end_idx
        dof = list(filter(lambda x: x >= 0, self.body_dofadr))
        self.qvel_start_idx = int(dof[0])
        last_dof_body_id = self.body_dofnum.shape[0] - 1
        while self.body_dofnum[last_dof_body_id] == 0:
            last_dof_body_id -= 1
        self.qvel_end_idx = int(dof[-1] + self.body_dofnum[last_dof_body_id])