乐聚机器人开源程序kuavo-rl-opensource/kuavo-robot-deploy配置流程(成功编译但未成功运行)
deploy是为了在仿真环境中部署训练好的模型,先构建docker环境,然后在docker环境中部署总体部署流程参考官网的readme:建议仔细阅读每一部分的reademe和附录11了解docker文件夹下各文件的作用。
deploy是为了在仿真环境中部署训练好的模型,先构建docker环境,然后在docker环境中部署
总体部署流程参考官网的readme:
https://gitee.com/leju-robot/kuavo-rl-opensource/blob/master/kuavo-robot-deploy/
建议仔细阅读每一部分的reademe和附录11了解docker文件夹下各文件的作用
目录
3、下载readme中的镜像文件kuavo_mpc_wbc_img:0.3
4、创建容器kuavo_container并编译humanoid_controllers
9、warning暂且搁置(不影响编译但不确定是否对之后的程序有影响)
1、安装docker
参考我的上一篇博客:https://blog.csdn.net/zhangxr2020/article/details/154729984?spm=1001.2014.3001.5501
2、拉取镜像
docker pull osrf/ros:noetic-desktop-full

拉取中断,检查自己的镜像源(见参考链接),并打开代理(我的clash verge用的tun模式)重新拉取:

拉取成功,进行下一步,构建镜像文件
3、下载readme中的镜像文件kuavo_mpc_wbc_img:0.3

下载在deploy目录中,可以新建一个,也可以放到docker文件夹下,load到docker中
sudo docker load -i kuavo_mpc_wbc_img.tar

查看目前已存镜像(如果缺少权限,前面加sudo)
docker images

此时完成镜像kuavo_mpc_wbc_img:0.3,但是这个可能不是关于rl的镜像,但是下载链接中没有rl的镜像,查看文件后打算构建一个用于强化学习的镜像文件,见下节
4、创建容器kuavo_container并编译humanoid_controllers
运行命令创建docker容器:
./run_rl_container.sh
进入容器之后进入主目录 cd ~/kuabo_ws
export ROBOT_VERSION=42
source installed/setup.zsh
catkin build humanoid_controllers
报错及解决:
1)c和cxx路径设置问题

# 检查 gcc 是否安装
which gcc
#/usr/bin/gcc
# 检查 g++ 是否安装
which g++
#/usr/bin/g++
unset CC
unset CXX
rm -rf build devel
catkin build humanoid_controllers
2)glfw3Config.camke找不到

apt-get install -y libglfw3-dev
rm -rf build devel
catkin build humanoid_controllers
3)liblcm.so找不到

# 手动配置lcm
cd /tmp
git clone https://github.com/lcm-proj/lcm.git
cd lcm
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
make -j$(nproc)
make install
cmake报错:

........有兴趣的同学继续摸索吧,我到这儿累了,全是bug服了
5、构建镜像kuavo_rl_img:0.1(及报错解决)
./build_rl_img.sh


解决:打开Dockerfile.RL,将报错的107行,https:改为http:

同理:打开Dockerfile.RL,将报错的178行,https:改为http:
检查过程:检查网络vpn是否存在问题--vpn没问题




构建kuavo_rl_img:0.1 成功!

检查镜像文件:成功!

6、创建kuavo_rl_container容器
chmod +x run_rl_container.sh
./run_rl_container.sh

解决:确保 Docker 能识别 GPU
# 添加 NVIDIA 仓库密钥和源
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
# 安装工具包
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
# 重启 Docker 服务使配置生效
sudo systemctl restart docker

安装并重启docker服务之后重新运行,容器创建成功!

7、按照教程在容器内部进行编译(及报错解决)
export ROBOT_VERSION=42
source installed/setup.zsh
catkin build humanoid_controllers
提示报错:
解决报错:
1、使用apt包管理器安装jsoncpp
sudo apt-get install -y libjsoncpp-dev
2、查找系统中是否存在json.h

打开/root/kuavo_ws/src/mujoco_cpp/CMakeLists.txt文件,搜索 include_directories
将/usr/include/jsoncpp 加进去

然后编译,注意在~/kuavo_ws下编译
catkin build mujoco_cpp

然后重新编译 catkin build humanoid_controllers
catkin build humanoid_controllers
又报错:

功能包 humanoid_interface 在其配置文件中,指定了一个不存在的头文件包含目录
打开/installed/share/humanoid_interface/cmake/humanoid_interfaceConfig.camke
找到94和96行,删掉/opt/ros/noetic/lib/x86_64-linux-gpu/......../include


同理,打开/installed/share/humanoid_wbc/cmake/humanoid_wbcConfig.camke
找到94和96行,删掉/opt/ros/noetic/lib/x86_64-linux-gpu/......../include

重新编译,编译成功!

9、warning暂且搁置(不影响编译但不确定是否对之后的程序有影响)

10、编译成功之后试运行(失败)
source devel/setup.zsh #或者source devel/setup.bash
```仿真
roslaunch humanoid_controllers load_kuavo_mujoco_sim.launch # 启动rl控制器、wbc、仿真器
```实物
roslaunch humanoid_controllers load_kuavo_real.launch cali:=true cali_arm:=true # 可以选择cali:=true 进行标定,cali_arm:=true 进行机械臂标定。
ok,很好失败了

这个问题,找了很久的,最后发现是动态链接库中的程序报错,没办法解决,踩雷经验就到这里,如果有人解决了,非常真诚的恳求解决方法
11附、deploy/docker中各文件的作用









更多推荐
所有评论(0)