一、虚拟机搭建
从网上下载16版本的VMware-workstation-full-16.2.3-win10.win11,这里提供我的版本
链接: https://pan.baidu.com/s/1uACEk--ao_YVIzXhTNRVJg 提取码: 1234
二、ubuntu20.04搭建
下载链接:Ubuntu 20.04.6 LTS (Focal Fossa)
安装视频:八分钟完成VMware和ubuntu系统安装_哔哩哔哩_bilibili
虚拟机最好设置硬盘大点,至少100GB,内存12GB以上,不然后续安装OCS2容易编译失败
一些常见问题:
主机有vpn,虚拟机没有:VMware Ubuntu虚拟机 使用主机VPN 配置(简单、可行)-CSDN博客
ubuntu分辨率不能自适应:要么设置分辨率,要么重新下载vmtools,我是两种都试了,vmtools下载后只能恢复一下子,重新开机就不行了,所以结合分辨率方法,当vmtools重新下载好后,分辨率会留下历史痕迹,直接设置固定分辨率就行。
vmtools重新下载参考链接:vmware14Pro中ubuntu系统界面太小的问题解决_ubuntu虚拟机界面小-CSDN博客
ubuntu与主机之间不能进行复制粘贴:要进行open-vm-tools下载
sudo apt-get install open-vm-tools
sudo apt-get install open-vm-tools-desktop
如果遇到上面这个下载问题,先运行下面代码,再重新下载
sudo apt-get update
下载成功后,重启就可以复制粘贴了。(注意:Ubuntu中的复制粘贴是ctrl+shift+c, ctrl+shift+v)
三、ros-neotic
亲测有效的流程,全程ctrl+C就行:ROS环境搭建 – 阿波的博客
若有小白看不懂在哪复制,可以搭配视频看,操作是一模一样的:机器人操作系统ROS的安装心得以及rosdep问题的处理_哔哩哔哩_bilibili
四、ocs2安装流程(注意:先装ROS,再装ocs2)
这里的坑太多了,自己目前找的博主给的都有些问题,所以这里会有比较详细的过程。
安装步骤就是:下载库的依赖,下载ocs2的文件,最后编译。
别看很简单的过程,硬是花了我4,5天的时间,问题就出现最后编译,总是容易失败。
编译失败问题总结:库的安装依赖不全,ocs2文件都是github 克隆复制下来的,需要翻墙也容易失败,并且哪怕有翻墙了,因为hpp和pin两个文件都是有子文件夹,子文件夹下也是调用别的网站的下载链接,所以容易clone过程文件缺少,而且根本看不出来,但最后编译就是会失败,实测只能编译11~14个文件就会报错,所以为了粉丝方便,我把自己成功下载好的文件放在百度网盘
链接: https://pan.baidu.com/s/1BItr5AuoYx4sMESTJUIgwQ 提取码: 1234,只需要windows下载压缩包,然后拖到ubuntu对应位置解压即可,ubuntu解压就是提取,接下来就是具体的安装过程。
①创建ocs2工作空间与下载ocs2文件
打开命令行:在桌面右键即可看到终端
然后输入:
mkdir -p ~/ocs2_ws
然后再主目录下会看到一个ocs2_ws文件,打开它,将windows下载好的压缩包托在里面,进行解压,注意src里面还有压缩包,要把hpp和pin也解压了。
注意,build,devel,logs都是后续编译才出现的文件,解压后没有是正常的。
②安装相关ocs2文件、依赖库与进行部分编译(一行一行复制,成功后再继续,确保库装成功)
首先进入src文件,在src文件里打开终端,接着输入下面指令。
Eigen (v3.3)
sudo apt-get update
sudo apt-get install libeigen3-dev
继续下载其他ocs2文件
git clone https://github.com/leggedrobotics/ocs2_robotic_assets.git
git clone --depth 1 https://github.com/raisimTech/raisimLib.git -b v1.1.01
git clone https://github.com/leggedrobotics/elevation_mapping_cupy.git
git clone https://github.com/ANYbotics/grid_map.git
git clone https://github.com/leggedrobotics/ocs2.git
Boost C++ (v1.71)
进入src文件,将boost文件解压后,继续在src文件下进入终端,进行boost文件安装
cd boost_1_71_0
./bootstrap.sh
sudo ./b2 install
安装剩余依赖
sudo apt install ros-noetic-catkin
sudo apt install libglpk-dev libglfw3-dev
sudo apt install ros-noetic-pybind11-catkin
sudo apt install python3-catkin-tools
sudo apt install doxygen doxygen-latex
sudo apt install liburdfdom-dev liboctomap-dev libassimp-dev
sudo apt-get install ros-noetic-rqt-multiplot
sudo apt install ros-noetic-grid-map-msgs
sudo apt install ros-noetic-octomap-msgs
sudo apt install libreadline-dev
sudo apt install libcgal-dev
sudo apt update && sudo apt install checkinstall
编译安装Raisim
cd ~/ocs2_ws/src/raisimLib
mkdir build
cd build
cmake .. -DRAISIM_EXAMPLE=ON -DRAISIM_PY=ON -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")
make -j4 && sudo checkinstall
后续onnxruntime的安装配置
cd /tmp
wget https://github.com/microsoft/onnxruntime/releases/download/v1.7.0/onnxruntime-linux-x64-1.7.0.tgz
tar xf onnxruntime-linux-x64-1.7.0.tgz
mkdir -p ~/.local/bin ~/.local/include/onnxruntime ~/.local/lib ~/.local/share/cmake/onnxruntime
rsync -a /tmp/onnxruntime-linux-x64-1.7.0/include/ ~/.local/include/onnxruntime
rsync -a /tmp/onnxruntime-linux-x64-1.7.0/lib/ ~/.local/lib
rsync -a ~/ocs2_ws/src/ocs2/ocs2_mpcnet/ocs2_mpcnet_core/misc/onnxruntime/cmake/ ~/.local/share/cmake/onnxruntime
mkdir -p ~/.local/share/onnxruntime/cmake/
rsync -a ~/ocs2_ws/src/ocs2/ocs2_mpcnet/ocs2_mpcnet_core/misc/onnxruntime/cmake/ ~/.local/share/onnxruntime/cmake/
这个包的虽然很容易安装,但后续安装ocs2时,容易找不到该软件包,在.bash可以手动设置如下环境变量:
export onnxruntime_DIR=~/.local/
export LD_LIBRARY_PATH=/home/lgf/.local/lib:${LD_LIBRARY_PATH}
配置MPC-Net(很重要,这个包不能失败,因为这个包会因为网络问题会容易失败,失败了就继续下直到全部下载好,大概3~4次就可以成功,每次下载都会继承前面已经下载好的,所以会越来越快)
cd ~
sudo apt-get install python3-venv
mkdir venvs && cd venvs
python3 -m venv mpcnet
source ~/venvs/mpcnet/bin/activate
python3 -m pip install -r ~/ocs2_ws/src/ocs2/ocs2_mpcnet/ocs2_mpcnet_core/requirements.txt
pip3 install torch==1.10.2+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
编译elevation_mapping_cupy
cd ~/ocs2_ws/
catkin init
catkin build elevation_mapping_cupy
编译成功会显示下图
③进行最后编译:
cd ~/ocs2_ws
catkin init
catkin config --extend /opt/ros/noetic
catkin config -DCMAKE_BUILD_TYPE=RelWithDebInfo
catkin build ocs2
若成功会出现下面这个图
若失败了,查看失败问题,是文件问题,还是库的依赖没装好,或者时虚拟运行内存不够,实践下来就是这几个问题比较常见。如果看不出什么问题,则再次编译,有时候一些莫名失败再次编译就会好,除非编译两次都是同个问题,编译数量一直是那么几个,那就得看看原因了。
实测下来,hpp和pin文件有问题时,编译11~14个就有问题,库的安装不全,44个时就会有问题,虚拟内存不足时会爆C++ : fatal error: Killed signal terminated program cc1plus,在54左右,实测扩到12g就可以了(笔者电脑只有16g运行内存)。
失败要进行重新编译:
cd ~/ocs2_ws
catkin clean #然后输入y
catkin init #再次编译elevation_mapping_cupy
catkin build elevation_mapping_cupy
catkin init #再次安装ocs2
catkin config --extend /opt/ros/noetic
catkin config -DCMAKE_BUILD_TYPE=RelWithDebInfo
catkin build ocs2
编译成功后修改.bashrc文件,添加
source ~/ocs2_ws/devel/setup.bash
至此OCS2安装成功。
五、安装hunter
cd ~/ocs2_ws/src
git clone https://github.com/bridgedp/hunter_bipedal_control.git
cd ~/ocs2_ws
catkin init
catkin config --no-install -DCMAKE_BUILD_TYPE=RelWithDebInfo
编译
catkin build legged_controllers legged_hunter_description legged_gazebo
安装完成后开启环境,该环境可以写入~/.bashrc
source ~/ocs2_ws/devel/setup.bash
然后就可以执行如下命令开始模拟了,如果执行后报错,重新执行一遍
roslaunch legged_controllers one_start_gazebo.launch
参考文章:
0-1双足机器人仿真环境搭建记录_ocs2双足机器人-CSDN博客