具身智能移动操作
Habitat-Challenge是2022年Meta发起的具身智能挑战赛之一,主要是重拍任务。具体细节可以参见以下两篇论文:
1、Habitat 2.0: Training Home Assistants to Rearrange their Habitat,这篇论文中提出了任务细节,以及对应的Baseline方法MonolithicRL和TP-SRL,其中MonolithicRL是采用端到端RL的方法,TP-SRL是采用分层的方法,上层任务规划下层子技能;
对应github官网
2、Multi-skill mobile manipulation for object rearrangement,这篇论文是目前成功率最高的方法,后续简称M3;
对应gibhub官网
具体实现细节参照论文后续只描述代码复现过程中遇到的一些坑,可能可以帮助后续学者节省时间。
环境安装:
1.安装habitat-sim:
如果直接采用官网给的conda install habitat-sim withbullet -c conda-forge -c aihabitat命令,很有可能由于网络问题导致配置失败。
有两种替代的安装方式:
方式一:直接去Habitat-sim Conda官网下载对应的包。
采用命令:
conda activate habitat
conda install --use-local habitat-sim-0.2.4-py3.9_bullet_linux_f179b584bcd713c5a2a998132211e2cae881d6d1.tar.bz2
方式二:可以直接下载对应的Habitat-sim包,采用如下命令安装:
cd habitat-sim
pip install -r requirements.txt
python setup.py install --bullet --headless
cd ..
选择Habitat-sim时需要注意一是要与Habitat的版本相匹配。一般要选择withbullet版本,而headless参数取决于是否需要显示,如没有显示器可以安装headless的版本。最好根据github界面中对应的readme指示来,如withbullet和headless就要下载conda对应的版本。
特别注意如果安装的是headless版本,如果要显示图片时会报错。
2.安装Habitat-lab
这里需要特别注意的是因为habitat-lab不是一个库,所以一个conda环境可能就对应了一个habitat-lab环境。直接在安装包里下载即可。
git clone --branch stable https://github.com/facebookresearch/habitat-lab.git
cd habitat-lab
pip install -e habitat-lab # install habitat_lab
或者
python -m pip install -e .
3.安装成功结果:
可以看到二者对应的版本其实是不一样的,
我这里hab-mm对应的是M3的conda环境,对应的habitat和habitat-sim版本都是0.2.1;
而在habitat对应的是habitat-challenge官方环境,对应的habitat和habitat-sim版本都是0.2.2;
habitat仿真器对于环境要求较为严格,因此如果不对应可能会出现意向不到的错误。
habitat-challenge仿真踩坑
安装环境后可能出现的问题:
安装环境时可能出现的小问题:
OSError: /home/lu/.conda/envs/habitat/lib/python3.7/site-packages/nvidia/cublas/lib/libcublas.so.11: undefined symbol: cublasLtHSHMatmulAlgoInit, version libcublasLt.so.11
需要在~/.bashrc文件里加上一句:这里需要对应自己的环境路径。
只需要替换lib前面部分即可。
export LD_LIBRARY_PATH=/home/lu/.conda/envs/habitat/lib/python3.7/site-packages/nvidia/cublas/lib/:$LD_LIBRARY_PATH
命令一:执行MonolithicRL时:
执行命令:
#/bin/bash
export MAGNUM_LOG=quiet
export HABITAT_SIM_LOG=quiet
set -x
python habitat-lab/habitat_baselines/run.py