Things this PR does:
- Makes BehaviorRobot inherit BaseRobot (and use all related functionality)
- Makes BehaviorRobot use the general AG / grasping mechanisms rather than a custom one
- Makes BehaviorRobot use existing control schemes, and to do that:
- Creates "virtual" joints that can be driven via existing control mechanism that can apply custom behavior using callback function
- The joints are controlled through JointControllers.
- Joint limits and speed limits are now enforced using the controllers' limits.
- Parallel gripper controller is renamed to MultiFingerGripperController, with support for 2+ fingers added
- Improves the better activation functionality by preventing it from repeatedly enabling/disabling (hold the two buttons pressed together for 1+ seconds). To get this to work, the VRMeshRenderer is updated to expose the button's pressed state rather than just press/release events.
- Some small improvements to the single-robot camera rendering mechanism.
- A new collision filtering mechanism is introduced, where groups are assigned to objects we want to filter out, and collision masks are used to disable collisions with those groups.