THU-VCLab / Part-Guided-3D-RL-for-Sim2Real-Articulated-Object-Manipulation

Implementation of the RA-L2023 paper: Part-Guided 3D RL for Sim2Real Articulated Object Manipulation
MIT License
21 stars 0 forks source link

关于自定义关节物体的训练 #4

Closed haicaoha closed 5 months ago

haicaoha commented 5 months ago

您好! 如果我想训练除door,drawer,faucet之外的自定义关节物体的训练,请问数据集制作过程是怎样的?

xspkwy commented 5 months ago

请具体描述一下你的问题,比如自定义关节物体指的是什么?以及你的训练是指分割模型还是强化学习策略模型呢?如果是说分割模型的数据集的话,大概过程如下:

Data Processing

The following gif presents the process. (from left to right: RGB, stereo depth, segmentation groundtruth.) door_cap_data_crop

haicaoha commented 5 months ago

谢谢你的回答,我说的自定义物体类似方向盘这种关节物体,自己制作urdf好像就能制作分割数据集了;但是我在训练RL时遇到了BrokenPipeError: [Errno 32] 的问题,即G:/project/Part-Guided-3D-RL-for-Sim2Real-Articulated-Object-Manipulation/arti_mani/algorithms/rl_iam/sac/sac_train_segpts_PNfeat.py时报错如下:Traceback (most recent call last): File "/home/user/za/Part-Guided-3D-RL-for-Sim2Real-Articulated-Object-Manipulation/arti_mani/algorithms/rl_iam/sac/sac_train_segpts_PNfeat.py", line 181, in model.learn( File "/home/user/anaconda3/envs/arti-mani/lib/python3.8/site-packages/stable_baselines3/sac/sac.py", line 298, in learn return super().learn( File "/home/user/anaconda3/envs/arti-mani/lib/python3.8/site-packages/stable_baselines3/common/off_policy_algorithm.py", line 332, in learn total_timesteps, callback = self._setup_learn( File "/home/user/anaconda3/envs/arti-mani/lib/python3.8/site-packages/stable_baselines3/common/off_policy_algorithm.py", line 308, in _setup_learn return super()._setup_learn( File "/home/user/anaconda3/envs/arti-mani/lib/python3.8/site-packages/stable_baselines3/common/base_class.py", line 446, in _setup_learn self._last_obs = self.env.reset() # pytype: disable=annotation-type-mismatch File "/home/user/anaconda3/envs/arti-mani/lib/python3.8/site-packages/stable_baselines3/common/vec_env/vec_monitor.py", line 70, in reset obs = self.venv.reset() File "/home/user/anaconda3/envs/arti-mani/lib/python3.8/site-packages/stable_baselines3/common/vec_env/subproc_vec_env.py", line 134, in reset remote.send(("reset", None)) File "/home/user/anaconda3/envs/arti-mani/lib/python3.8/multiprocessing/connection.py", line 206, in send self._send_bytes(_ForkingPickler.dumps(obj)) File "/home/user/anaconda3/envs/arti-mani/lib/python3.8/multiprocessing/connection.py", line 411, in _send_bytes self._send(header + buf) File "/home/user/anaconda3/envs/arti-mani/lib/python3.8/multiprocessing/connection.py", line 368, in _send n = write(self._handle, buf) BrokenPipeError: [Errno 32] 断开的管道,请问作者这该怎么解决,我尝试将sac_train_segpts_PNfeat.py中的buffer_size或者batch_size调小都没有解决这个问题

xspkwy commented 5 months ago

你好,你描述的这个问题很难定位,建议先通过 render 可视化确认 env.step() 执行没问题; 进行 RL 训练时,建议先尝试 SAC 的单线程训练,如无问题再尝试多线程

haicaoha commented 5 months ago

请问docker文件夹中的arti_mani.yaml真的是在ubuntu20.04上部署的吗,我在20.04部署显示包的版本不兼容,但是在18.04却没有这个问题

xspkwy commented 5 months ago

我本地测试的系统都是 ubuntu20.04。如果出现部分包版本不兼容的问题,或许可以单独安装,或者替换其他版本,大部分情况下不影响结果。

The systems I tested locally are all Ubuntu 20.04. If some packages have incompatible versions, you may be able to install them separately or replace them with other versions. In most cases, the results will not be impacted.