Conversation
…s/utils. Rename robot wrapper files.
…er. added wrappers to habitat_sim module
erikwijmans
left a comment
There was a problem hiding this comment.
Just some quick comments
|
Looks like any |
|
I think that is because there is no They are also definitely needed for installation to work as the installer uses |
😆 Apparently I forgot to |
|
|
||
|
|
||
| @attr.s(auto_attribs=True, slots=True) | ||
| class MobileManipulatorParams: |
There was a problem hiding this comment.
In follow up PRs make sense to use config node instead to hold this parameters.
There was a problem hiding this comment.
Completely agree. Config makes sense here.
| self._limit_robo_joints = limit_robo_joints | ||
|
|
||
| self._arm_sensor_names = [ | ||
| s for s in self._sim._sensors if s.startswith("robot_arm_") |
There was a problem hiding this comment.
Hardcoded names of the sensors may not play well with several robots. Need follow up PRs.
| def reconfigure(self) -> None: | ||
| super().reconfigure() | ||
| # remove any default damping motors | ||
| for motor_id in self._robot.existing_joint_motor_ids: |
There was a problem hiding this comment.
If this all isn't specific for the Fetch robot only we can move it to Mobile Manipulator reconfigure.
There was a problem hiding this comment.
Depends on whether we want to use the default damping motors from URDF or clear them for custom settings. This seemed like a top level decision so we could call super methods. 🤔
Let's see how we feel once we try a couple more robots.
| @property | ||
| def arm_joint_limits(self) -> Tuple[np.ndarray, np.ndarray]: | ||
| """Get the arm joint limits in radians""" | ||
| arm_pos_indices = list( |
There was a problem hiding this comment.
This probably would have been a bit faster using a dedicated getter and a list comprehension. apologies for not getting to this pr in time*
| map(lambda x: self.joint_pos_indices[x], self.params.arm_joints) | ||
| ) | ||
|
|
||
| lower_lims = [self.joint_limits[0][i] for i in arm_pos_indices] |
There was a problem hiding this comment.
| lower_lims = [self.joint_limits[0][i] for i in arm_pos_indices] | |
| lower_lims, upper_lims = self.joint_limits[:, arm_pos_indices] |
Will be, much, much faster.
Motivation and Context
End goal is to provide an extensible convenience interface for common robot functionality. This PR addresses immediate need for wheeled mobile manipulator and specifically Fetch robot interface.
Migrated from @ASzot's implementation.
Some open questions are listed TODO in the code for future consideration.
Secondary:
"hab_fetch"option todatasets_download.py,How Has This Been Tested
Added a pytest.
Output:
test_fetch_robot_wrapper.mp4
Types of changes
Checklist