无法控制灵巧手实现“抓取”

我先是按照比赛README中的方法,对action中的pick赋值"left_hand"或者"right_hand",并未成功使灵巧手执行动作。
  1. <blockquote>action = {
复制代码
obs = {'Kuavo': {'body_state': {'world_position': array([     4.3838,      9.0099,      0.4985], dtype=float32), 'world_orient': array([   0.095883,   -0.023685,   0.0024538,     0.99511], dtype=float32), 'root_linear_velocity': array([   0.010874,  -0.0018713,   0.0037899], dtype=float32), 'root_angular_velocity': array([-0.00039027,  0.00030474,  0.00039159], dtype=float32)}, 'joint_state': {'arms': {'positions': array([   0.013564,    0.013524,  -0.0023743,   0.0023065, -0.00028167,  0.00027352,   -0.089057,    -0.08912,  2.0938e-06, -1.7153e-06, -0.00036261,  0.00035351,   7.503e-05,  7.5662e-05], dtype=float32), 'velocities': array([   0.015696,    0.016391,  -0.0028918,   0.0026318,  -0.0010808,  0.00034319,   -0.097502,   -0.098571, -0.00034853,   0.0003949,   0.0052347,  -0.0057614,   0.0014454,   0.0013926], dtype=float32), 'applied_effort': array([          0,           0,           0,           0,           0,           0,           0,           0,           0,           0,           0,           0,           0,           0], dtype=float32), 'stiffness': array([        200,         200,         200,         200,         200,         200,         200,         200,         200,         200,         200,         200,         200,         200], dtype=float32), 'dampings': array([       20.2,        20.2,        20.5,        20.5,        10.2,        10.2,        20.1,        20.1,        10.1,        10.1,        10.1,        10.1,        10.1,        10.1], dtype=float32)}, 'legs': {'positions': array([   0.019958,   -0.018487,  0.00026956, -4.3708e-05,    -0.42012,    -0.41968,     0.83777,     0.83898,    -0.46528,    -0.46693,    -0.02029,    0.018124], dtype=float32), 'velocities': array([  0.0022735,   0.0037872,    0.020031,   -0.004135, -0.00055093,   0.0099796,   -0.032576,   -0.039103,    0.032908,   0.0088247,    -0.12909,    0.097027], dtype=float32), 'applied_effort': array([    -2.6149,      2.3503,    -0.16872,     0.15137,      1.4549,      1.4162,     -20.497,     -20.843,      17.405,      17.564,     0.02879,    0.030847], dtype=float32), 'stiffness': array([          0,           0,           0,           0,           0,           0,           0,           0,           0,           0,           0,           0], dtype=float32), 'dampings': array([          0,           0,           0,           0,           0,           0,           0,           0,           0,           0,           0,           0], dtype=float32)}, 'head': {'positions': array([-3.5783e-05,    0.016182], dtype=float32), 'velocities': array([ 0.00038533,   -0.023152], dtype=float32), 'applied_effort': array([          0,           0], dtype=float32), 'stiffness': array([         20,          20], dtype=float32), 'dampings': array([          3,           3], dtype=float32)}}}, 'camera': {'rgb': array([[[ 95,  74,  50],
        [ 95,  75,  50],
        [ 95,  74,  49],
        ...,
        [ 32,  35,  33],
        [ 33,  36,  33],
        [ 33,  36,  33]]], dtype=uint8), 'depth': array([[     6.6156,        6.62,      6.6244, ...,      1.6948,      1.6853,      1.6759],
       [     6.6275,      6.6319,      6.6363, ...,      1.6958,      1.6863,      1.6769],
       [     6.6394,      6.6438,      6.6483, ...,      1.6968,      1.6873,      1.6778],
       ...,
       [     1.5793,      1.5793,      1.5793, ...,      1.5787,      1.5787,      1.5787],
       [     1.5735,      1.5735,      1.5735, ...,      1.5729,      1.5729,      1.5729],
       [     1.5677,      1.5677,      1.5677, ...,      1.5671,      1.5671,      1.5671]], dtype=float32), 'world_pose': (array([     4.2851,      9.0293,      1.2137], dtype=float32), array([   0.092251,    -0.27146,    0.026323,     0.95766]))}, 'imu_data': {'imu_time': 0.7280000448226929, 'linear_acceleration': [-0.5492033362388611, 0.012098033912479877, 9.742753028869629], 'angular_velocity': [0.0005633133696392179, -0.0006000091088935733, 0.00022891524713486433], 'orientation': [0.09588371962308884, -0.02368648536503315, 0.0024514351971447468, 0.9951076507568359]}, 'extras': {'Current_Task_ID': 'TaskTwo', 'time(minutes)': 7.27233, 'TaskOne': {'score': 30, 'details': ['Stair Climb Complete! +10 pts', 'Downhill Complete, +10 pts', 'Uneven Terrain Complete, +10 pts']}, 'TaskTwo': {'score': 0, 'details': ['Placed 0 correct and 0 incorrect objects into the container. +0 points.']}, 'TaskThree': {'score': 0, 'details': []}}, 'pick': False}
之后使用运动控制API中描述的/humanoid_change_arm_ctrl_mode更改了手臂控制模式为外部控制,通过发布/control_robot_hand_position话题来控制手指,仍未成功。
  1. header:
  2.   seq: 628802
  3.   stamp:
  4.     secs: 0
  5.     nsecs:         0
  6.   frame_id: ''
  7. left_hand_position: [100, 100, 80, 75, 75, 75]
  8. right_hand_position: [0, 100, 0, 0, 0, 0]
复制代码
请问手指的控制是否可以使用以上两种方法控制,如果可以的话,有什么注意事项可能是我没有遵循才导致的失败?
回复

使用道具 评分 举报

大神点评1

 楼主| shine 昨天 15:37 显示全部楼层
  1. action = {'arms': {'ctrl_mode': 'position', 'joint_values': array([ 0.018204, 0.01817, -0.0022679, 0.0022084, -0.00026712, 0.00026106, -0.099033, -0.09909, 1.2966e-08, -5.2288e-09, 4.1816e-08, -3.0195e-08, 9.0184e-08, 9.1642e-08]), 'stiffness': [200.0, 200.0, 200.0, 200.0, 200.0, 200.0, 200.0, 200.0, 200.0, 200.0, 200.0, 200.0, 200.0, 200.0], 'dampings': [20.2, 20.2, 20.5, 20.5, 10.2, 10.2, 20.1, 20.1, 10.1, 10.1, 10.1, 10.1, 10.1, 10.1]}, 'legs': {'ctrl_mode': 'effort', 'joint_values': array([ -2.6151, 2.3501, -0.16883, 0.15139, 1.4568, 1.4183, -20.495, -20.841, 17.408, 17.567, 0.028793, 0.030852]), 'stiffness': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'dampings': [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]}, 'head': {'ctrl_mode': 'position', 'joint_values': array([ 0, 0]), 'stiffness': None, 'dampings': None}, 'pick': 'left_hand'}
复制代码
回复

使用道具 评分 举报

您需要登录后才可以回帖 登录 | 立即注册

  • 0 关注
  • 1 粉丝
  • 1 帖子