Learning Material:

  1. https://choreonoid.org/ja/choreograph-tutorial
  2. https://choreonoid.org/ja/tutorial-videos.html
  3. YouTube: Humanoid Virtual Athletics Challenge 2024
  4. HUMANOID VIRTUAL ATHLETICS CHALLENGE 解説ブログ
  5. Humanoid Virtual Athletics Challenge
    1. vnoid
  6. Documentation

Design of the Framework

  • plugin system
  • view system
  • item tree system
  • signal system

Build with

  • fmt 7.1.3! (ubuntu_22.04)
  • After fmt v10+, enum or enum class must have their own specialization1
    • solution: cast the argument by fmt::underlying()
./build/bin/choreonoid sample/PoseSeq/GR001.cnoid
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_POSE_SEQ_PLUGIN=ON -DBUILD_BALANCER_PLUGIN=ON

URDF Model convert to Body Model

Check BodyItem > Right Click > Save as

Export Motion

Choose motion of PoseSeq > File > Save Selected Items As

create videos

View > Show Toolbar > MovieRecorderBar

enable media plugin

install libs:

sudo apt install libunwind-dev
sudo apt install gstreamer1.0-libav

rebuild:

cmake -Bbuild -DBUILD_MEDIA_PLUGIN=ON

追加情報の記述

standardPose: [ 
  0, 0,  20, -40, -20, 0,
  0, 0, -20,  40,  20, 0,
  0, 0,
  20, 0, -20,
  -20, 0,  20 ]

linkGroup: 
  - name: UPPER-BODY
    links: 
      - name: NECK
        links: [ NECK_Y ]
      - name: ARMS
        links:
          - name: R-ARM
            links: [ R_SHOULDER_P, R_SHOULDER_R, R_ELBOW_P ]
          - name: L-ARM
            links: [ L_SHOULDER_P, L_SHOULDER_R, L_ELBOW_P ]
      - name: CHEST
        links: [ CHEST_P ]
  - WAIST
  - name: LOWER-BODY
    links:
      - name: LEGS
        links:
        - name: R-LEG
          links: [ R_HIP_Y, R_HIP_R, R_HIP_P, R_KNEE_P, R_ANKLE_P, R_ANKLE_R ]
        - name: L-LEG
          links: [ L_HIP_Y, L_HIP_R, L_HIP_P, L_KNEE_P, L_ANKLE_P, L_ANKLE_R ]

possibleIkInterpolationLinks: [ WAIST, R_ANKLE_R, L_ANKLE_R ]
defaultIkInterpolationLinks: [ WAIST, R_ANKLE_R, L_ANKLE_R ]

defaultIKsetup:
  WAIST: [ R_ANKLE_R, L_ANKLE_R ]
  R_ANKLE_R: [ WAIST ]
  L_ANKLE_R: [ WAIST ]

foot_links:
  - link: L_ANKLE_R
    sole_center: [ -0.005,  0.01, -0.022 ]
  - link: R_ANKLE_R
    sole_center: [ -0.005, -0.01, -0.022 ]

symmetricJoints:
  - [ NECK_Y ]
  - [ L_SHOULDER_P, R_SHOULDER_P, -1 ]
  - [ L_SHOULDER_R, R_SHOULDER_R, -1 ]
  - [ L_ELBOW_P,    R_ELBOW_P,    -1 ]
  - [ L_HIP_Y,      R_HIP_Y,      -1 ]
  - [ L_HIP_R,      R_HIP_R,      -1 ]
  - [ L_HIP_P,      R_HIP_P,      -1 ]
  - [ L_KNEE_P,     R_KNEE_P,     -1 ]
  - [ L_ANKLE_P,    R_ANKLE_P,    -1 ]
  - [ L_ANKLE_R,    R_ANKLE_R,    -1 ]

symmetricIkLinks:
  - [ WAIST ]
  - [ L_ANKLE_R, R_ANKLE_R ]

collision_detection_rules:
  - disabled_link_chain_level: 2