Skip to content

Commit

Permalink
Add openXR module configuration files for iCubGenova09
Browse files Browse the repository at this point in the history
  • Loading branch information
GiulioRomualdi committed Sep 30, 2021
1 parent 8c58dc1 commit 5d61cda
Show file tree
Hide file tree
Showing 6 changed files with 121 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
remote_control_boards ("head")
# Notice the order of the joint list is not wrong.
# Indeed they are written according to the joint order of the icub-neck
joints_list ("neck_pitch", "neck_roll", "neck_yaw")

smoothingTime 1.0
PreparationSmoothingTime 3.0
PreparationJointReferenceValues (0.0 , 0.0 , 0.0)
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
remote_control_boards ("left_arm")
joints_list ("l_thumb_proximal", "l_thumb_distal", "l_index_proximal", "l_index-distal", "l_middle-proximal", "l_middle-distal", "l_little-fingers")

useVelocity 1

fingersScaling (1, 3.5, 2, 3.5, 1, 3.5, 5)
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# additional rotations
# the following rotation map the hand oculus frame and the hand robot frame
handOculusFrame_R_handRobotFrame ((0.0 0.0 -1.0), (-1.0 0.0 0.0), (0.0 1.0 0.0))

# the following rotation map the teleoperation frame and the teleoperation robot
# frame the Teleoperation robot frame chosen is "imu_frame" and according to iCub
# CAD has:
# The z-axis is parallel to gravity but pointing upwards.
# The x-axis points behind the robot.
# The y-axis points laterally and is chosen according to the right-hand rule.
# the Teleoperation frame is attached to the virtualizer and the origin is the
# same oculus inertial frame. In other words:
# The z-axis is parallel to gravity but pointing upwards
# The x-axis points forward
# The y-axis points laterally and is chosen according to the right-hand rule.
# So the rotation matrix is simply given by Rotz(pi)
teleoperationRobotFrame_R_teleoperationFrame ((1.0 0.0 0.0), (0.0 1.0 0.0), (0.0 0.0 1.0))
67 changes: 67 additions & 0 deletions modules/OpenXR_module/config/robots/iCubGenova09/openXRConfig.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name openXRRetargeting

# ports
leftHandPosePort /leftHandPose:o
rightHandPosePort /rightHandPose:o
rpcWalkingPort_name /walkingRpc

[GENERAL]
samplingTime 0.01
robot icub
enableMoveRobot 1
# the following value is a threshold used to update the teleoperation frame position
# when the human rotates inside the virtualizer
playerOrientationThreshold 0.2

# For kinematic scaling for task-space retargeting
humanHeight 1.76
# The robot arm span is the distance between the left and right index fingertips when the arms are aligned, i.e. T pose.
robotArmSpan 1.0
# If resetCameras !=0, the module will attempt to reset the cameras during the initialization phase.
resetCameras 0
# The leftCameraPort and rightCameraPort are needed only if resetCameras is 1
leftCameraPort /icub/cam/left
rightCameraPort /icub/cam/right


# include head parameters
[include HEAD_RETARGETING "headRetargetingParams.ini"]

# include fingers parameters
[include LEFT_FINGERS_RETARGETING "leftFingersRetargetingParams.ini"]
[include RIGHT_FINGERS_RETARGETING "rightFingersRetargetingParams.ini"]

# include hand parameters
[include LEFT_HAND_RETARGETING "leftHandRetargetingParams.ini"]
[include RIGHT_HAND_RETARGETING "rightHandRetargetingParams.ini"]

[OPENXR]
root_frame_name openxr_origin
left_hand_frame_name openxr_left_hand
right_hand_frame_name openxr_right_hand
head_frame_name openxr_head
oculusOrientationPort /oculusOrientation:i
oculusPositionPort /oculusPosition:i

move_icub_using_joypad 1
deadzone 0.3
fullscale 1.0
scale_X 5.0
scale_Y 5.0


# {"/user/hand/left/input/menu/click", "vive_left_menu"},
# {"/user/hand/left/input/trigger/click", "vive_left_trigger_click"},
# {"/user/hand/left/input/squeeze/click", "vive_left_squeeze_click"},
# {"/user/hand/left/input/trackpad/click", "vive_left_trackpad_click"},
# {"/user/hand/right/input/menu/click", "vive_right_menu"},
# {"/user/hand/right/input/trigger/click", "vive_right_trigger_click"},
# {"/user/hand/right/input/squeeze/click", "vive_right_squeeze_click"},
# {"/user/hand/right/input/trackpad/click", "vive_right_trackpad_click"}

prepare_walking_buttons_map (0, 0, 0, 0, 1, 0, 0, 0)
start_walking_buttons_map (1, 0, 0, 0, 0, 0, 0, 0)
left_fingers_squeeze_buttons_map (0, 0, 0, 0, 0, 0, 0, 0)
left_fingers_release_buttons_map (0, 1, 0, 0, 0, 0, 0, 0)
right_fingers_squeeze_buttons_map (0, 0, 0, 0, 0, 0, 0, 0)
right_fingers_release_buttons_map (0, 0, 0, 0, 0, 1, 0, 0)
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
remote_control_boards ("right_arm")
joints_list ("r_thumb_proximal", "r_thumb_distal", "r_index_proximal", "r_index-distal", "r_middle-proximal", "r_middle-distal", "r_little-fingers")

useVelocity 1

fingersScaling (1, 3.5, 2, 3.5, 1, 3.5, 5)
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# additional rotations
# the following rotation map the hand oculus frame and the hand robot frame
handOculusFrame_R_handRobotFrame ((0.0 0.0 -1.0), (-1.0 0.0 0.0), (0.0 1.0 0.0))

# the following rotation map the teleoperation frame and the teleoperation robot
# frame the Teleoperation robot frame chosen is "imu_frame" and according to iCub
# CAD has:
# The z-axis is parallel to gravity but pointing upwards.
# The x-axis points behind the robot.
# The y-axis points laterally and is chosen according to the right-hand rule.
# the Teleoperation frame is attached to the virtualizer and the origin is the
# same oculus inertial frame. In other words:
# The z-axis is parallel to gravity but pointing upwards
# The x-axis points forward
# The y-axis points laterally and is chosen according to the right-hand rule.
# So the rotation matrix is simply given by Rotz(pi)
teleoperationRobotFrame_R_teleoperationFrame ((1.0 0.0 0.0), (0.0 1.0 0.0), (0.0 0.0 1.0))

0 comments on commit 5d61cda

Please sign in to comment.