风之万里

刚看完十二国记,名字取自那里。留存作为我在这儿学习的记录.

  1. 平台robosuite
    1. 优点:有不少成果,比较全面
    2. 缺点:太古老了
  2. 平台genesis
    1. 。。。
  3. 数据集 https://kaldir.vc.in.tum.de/scannetpp/ 需要油箱和签字,麻烦
  4. https://github.com/apple/ml-hypersim?tab=readme-ov-file 数据集,感觉全市图像数据,能用?

genesis

  1. 在测试它的quat
    1. franka定义的quat
      1. (1,0,0,0) 面向(1,0,0)
      2. none 面向(1,0,0)
      3. (0,0,0,1) 面向(-1,0,0) 绕z轴旋转180度
    2. 那link呢
      1. (-0.7,0,0.7,0)能实现头绕y轴逆时针旋转270度
      2. 感觉我现在倒是能转了,就是有点奇怪,问题还是示例教程里面那两个(0,1,0,0),得搞清楚
  2. quat能搞定,接下来是velocity
    1. 为什么它会有那么大的转动速度
    2. 确定它只能沿着一个方向旋转,逆时针270度
    3. 那我就看不懂一开始的旋转了,不管怎么样也不是旋转180度吧
    4. 必须搞清楚计算ik的时候quat是什么
      1. 一开始运行(1,0,0,0)不认
      2. (0,1,0,0)和(0,0,)
      3. 居然是位置的问题,
  3. 虽然还不是很理解quat,但是大概懂了(吧)
  4. quat怎么计算的

装载物体模型

  1. 支持什么格式? urdf、mjcf
  2. github benchmark上有一些抓取的代码,学习一下看怎么引入文件、增强稳定性。
    1. Grasping with path following这部分的效果不错,没我的那么生硬:就是control_dofs_position的时候用
      1
      2
      3
      4
      for i in range(500):
      if i % 2 == 0: # match maniskill's 50hz control freq
      franka.control_dofs_position(init_qpos + (target_qpos - init_qpos) * i / 500, motors_dof)
      scene.step()
    2. 引入文件:大部分都是urdf
  3. 找场景/物体模型
    1. scannet获取不方便,而且不是urdf格式的,感觉很奇怪
    2. urdf object 有urdf格式的数据集,但是没有任务
  4. 先写一个再说吧,写一个举起物体的
    1. git@github.com:c-yiting/pybullet-URDF-models.git 获得urdf格式
    2. 物体有奇怪的碰撞:collision的问题,物体位置高一点

怎么抓着一个东西移动? 我受不了了,它一开始居然是向上的,怪不得要(0,1,0,0) 好麻烦,今天必须要写完至少一个任务。

不能用panda hand,用灵巧手,dex hand?掏出我以前看过的BI-DEXHands

不知道又没有用

shadow hand

  1. 怎么获取不麻烦,可以shaow hand company找或者网上一堆资源orz
  2. 如何控制dof
    1. 初始dof可以知道
    2. 中间的怎么运算 motion_plan应该可以吧
    3. 什么样的指令能转换成期望的dof
  3. 找资源ing
    1. Shadow-Hand-Controller
      1. 最后的要求:只有7个动作
      2. 通过行为克隆和强化学习让机器人最后支持7个特定的指令
      3. mujoco的
      4. 那它的dof数据从哪来?我是说输入指令后模型会给出control序列(20个)

安装ompl出问题,OMPL wheels are built only for glibc >=2.28

不能升级系统,试试自己编译吧

OMPL编译过程,用1.16.0版本

  1. 下载source code:wget https://github.com/ompl/ompl/archive/refs/tags/1.6.0.tar.gz
  2. tar -xzvf 1.6.0.tar.gz
  3. cd ompl-1.6.0
  4. 安装dependency
    1. Boost (version 1.68 or higher)
      1. 安装目录/application mkdir boost cd boost
      2. 下载tar.gz格式 wget https://archives.boost.io/release/1.70.0/source/boost_1_70_0.tar.gz
      3. tar -xvzf boost_1_70_0.tar.gz
      4. cd boost_1_70_0
      5. ./bootstrap.sh --prefix=/data/zly/application/boost
      6. ./b2 install --prefix=/data/zly/application/boost -j$(nproc)
      7. echo 'export BOOST_ROOT=/data/zly/application/boost' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=$BOOST_ROOT/lib:$LD_LIBRARY_PATH' >> ~/.bashrc echo 'export CPATH=$BOOST_ROOT/include:$CPATH' >> ~/.bashrc echo 'export LIBRARY_PATH=$BOOST_ROOT/lib:$LIBRARY_PATH' >> ~/.bashrc
      8. source ~/.bashrc
      9. echo $BOOST_ROOT 出现/data/zly/application/boost 即成功
    2. CMake (version 3.12 or higher)
      1. cmake --version 输出版本不够,还得安装高级的
      2. mkdir cmake(还在/application目录下)
      3. wget https://cmake.org/files/v3.18/cmake-3.18.0.tar.gz
      4. tar -zxvf cmake-3.18.0.tar.gz
      5. cd cmake-3.18.0
      6. ./bootstrap --prefix=/data/zly/application/cmake
      7. make -j$(nproc) # 使用所有可用的 CPU 核心进行并行编译,加速编译过程
      8. make install
    3. Eigen (version 3.3 or higher)
      1. emm一看就没安装
      2. 继续在/application/eigen目录下安装
      3. tar -xzvf eigen-3.3.9.tar.gz
      4. cd eigen-3.3.9
      5. 因为Eigen 是一个头文件库,不需要像其他库那样进行编译和链接,只需要将头文件放到合适的位置即可。你可以直接将其安装到 /data/zly/application/eigen 目录下:
        1. mkdir -p /data/zly/application/eigen/include
        2. cp -r Eigen /data/zly/application/eigen/include/
      6. echo 'export EIGEN3_INCLUDE_DIR=/data/zly/application/eigen/include' >> ~/.bashrc
      7. source ~/.bashrc