```
ompl的segment fault的问题,解决方案,已解决:
运行genesis,直接ompl-1.6.0-cp310-cp310-manylinux_2_28_x86_64.whl,运行grasp_bottle程序出现ompl的segment fault的问题,需要源码安装ompl库,解决步骤如下:
(重点:注意查看/media/diskb1/zab2025/genesis_code/Genesis/ompl/build/lib中没有编译出来的4个包的报错log,如/media/diskb1/zab2025/genesis_code/Genesis/ompl/build/pyplusplus_util.log(_base.so _control.so _geometric.so _util.so,(_base.so _control.so _geometric.so _util.so),然后对应去解决)
用python=3.10的conda环境:
conda create genesis0106 python=3.10
conda activate genesis0106
pip install torch==2.5.1 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
sudo apt-get -y install g++ cmake pkg-config libboost-serialization-dev libboost-filesystem-dev libboost-system-dev libboost-program-options-dev libboost-test-dev libeigen3-dev libode-dev wget libyaml-cpp-dev
export CXX=g++
export MAKEFLAGS="-j `nproc`"
pip install -vU https://github.com/CastXML/pygccxml/archive/develop.zip pyplusplus
sudo apt-get -y install castxml libboost-python-dev libboost-numpy-dev pypy3
git clone --recurse-submodules https://github.com/ompl/ompl.git -b 1.6.0
mkdir -p ompl/build
cd ompl/build
cmake .. -DPYTHON_EXEC=$(which python) -DCMAKE_INSTALL_PREFIX="$CONDA_PREFIX" -DBOOST_ROOT="$CONDA_PREFIX" -DPYTHONPATH=$CONDA_PREFIX/lib/python3.10/site-packages
注意查看/media/diskb1/zab2025/genesis_code/Genesis/ompl/build/lib中没有编译出来的4个包的报错log(_base.so _control.so _geometric.so _util.so),然后对应去解决:
如/media/diskb1/zab2025/genesis_code/Genesis/ompl/build/pyplusplus_util.log
如果出现cannot import name 'Protocol' from 'typing'错误:
找到对应的行,然后注释掉typing,替换加入from typing_extensions import Protocol
pip install typing_extensions==4.5.0
pip install pygccxml==2.1.0
修改注释/media/diskb1/zab2025/genesis_code/Genesis/ompl/py-bindings/generate_bindings.py中194行的:
# self.ompl_ns.class_(f'SpecificParam< {self.string_decl} >').rename('SpecificParamString')
try:
self.ompl_ns.class_(f'SpecificParam< std::string >').rename('SpecificParamString')
except:
self.ompl_ns.class_(f'SpecificParam< std::basic_string< char > >').rename('SpecificParamString')
然后执行:
make update_bindings
(如果出现No rule for update_bindings报错,执行conda install -c conda-forge boost boost-cpp)
再执行:
make -j8
sudo make install
欢迎交流
```