首页 > 其他分享 >EPSILON环境配置和本地测试

EPSILON环境配置和本地测试

时间:2024-09-19 21:21:03浏览次数:9  
标签:本地 -- EPSILON apt 拉取 install 测试 ros 安装

文章目录

一、环境配置

  • 宿主机基础环境
    • 系统:ubuntu22.04
    • CPU: Intel® Core™ i9-14900K
    • GPU: NVIDIA GeForce RTX 4090
    • Docker version 26.0.0, build 2ae903e
    • Driver Version: 535.171.04
    • CUDA Version: 12.2

1.1 拉取镜像构建容器

拉取合适的ros版本镜像创建容器,这里拉取ros-melodic

docker run --gpus all --name EPSILON --net=host -v /home/kemove/dockerShareFile/EPSILON:/workspace/data -it ros:melodic-ros-base-bionic bash

dockrhub上,ros官方提供的镜像有几种命名方式,这里简要说明说一下,方便大家拉取合适的镜像

  • melodic-ros-core-bionic:基于Ubuntu18.04(Bionic Beaver)的melodic版本
  • molodic-ros-core-stretch:基于Debian Stretch操作系统的melodic版本
  • ros-core和ros-base:ros-core仅包含ROS核心包(通信、节点管理等最基本的功能),适合最小化安装,用户根据需求手动安装其他包;ros-base在 ros-core 的基础上,包含了更多常用的ROS包,但不包含GUI工具,如rviz、gazebo等。适合需要非图形化的ROS功能开发。
  • melodic-robot-bionic:主要用于部署在机器人系统中,不需要图形化界面但包含机器人运行时所需的核心功能包,适合资源有限的环境(如嵌入式设备)或只需要核心机器人功能的系统
  • melodic-perception:适用于需要处理感知任务的系统,比如机器人视觉、环境建模、图像和视频数据处理等,适合在需要复杂传感器数据处理、识别和分析的应用场景中使用

1.2 在容器中安装常用的包

# 获取最新软件包
apt-get update
# 安装vim
apt-get install vim
# 安装ping命令
apt-get install iputils-ping
# 安装wget
apt-get install wget
# 安装ps
apt-get install procps
# 安装git
apt-get install git
# 安装pip
apt-get install python3-pip

一条命令安装

apt-get update &&
apt-get install vim iputils-ping wget procps git python3-pip

1.3 安装依赖

sudo apt-get install libgoogle-glog-dev libdw-dev libopenblas-dev gfortran
pip install empy pygame

1.4 安装OOQP

OOQP 是一个面向对象的 C++ 包,基于原对偶内点方法,用于解决凸二次规划问题 (QP)。它包含可“开箱即用”解决各种结构化 QP 的代码,包括一般稀疏 QP、支持向量机产生的 QP、Huber 回归问题以及具有边界约束的 QP。
OOQP 还可以用作一个框架,用于为新类型的结构化 QP 设计高效的求解器。其设计允许轻松替换线性代数模块,从而允许尝试不同的标准线性代数包。
EPSILON使用OOQP求解二次规划问题。

1.4.1 安装blas

#创建目录
mkdir /workspace/myLib
# 进入指定目录
cd /workspace/myLib
# 拉取压缩包
wget http://www.netlib.org/blas/blas.tgz
# 解压压缩包
tar zxf blas.tgz
# 进入解压后的路径
cd BLAS-3.12.0/
# 使用gfortran编译器编译fortran源码
gfortran -O3 -std=legacy -m64 -fno-second-underscore -fPIC -c *.f
# 创建静态库
ar r libfblas.a *.o
# 为静态库libfblas.a生成符号表
ranlib libfblas.a
# 删除编译产生的巍峨间
rm -rf *.o     
# 更新环境变量
vim ~/.bashrc
## 在文件最后一行添加
export BLAS=/workspace/myLib/BLAS-3.12.0/libfblas.a 
# 保存并退出编辑器,刷新环境变量
source ~/.bashrc

1.4.2 安装ma27

cd /workspace/myLib
git clone https://github.com/HITSZ-LeggedRobotics/ma27.git
cd ma27/ma27-1.0.0
# 执行配置脚本
bash ./configure CPPFLAGS="-fPIC" CFLAGS="-fPIC" FFLAGS="-fPIC"
# 将生成的可执行文件、库文件安装到系统目录
sudo make install

1.4.3 安装OOQP

  • 拉取ooqp源码
cd /workspace/myLib
git clone https://github.com/emgertz/OOQP.git
  • 将libma27.a文件复制到ooqp文件夹下
cd /workspace/myLib/ma27/ma27-1.0.0/src
cp -r libma27.a /workspace/myLib/OOQP/lib
  • 编译安装
cd /workspace/myLib/OOQP
./configure
make
sudo make install

1.5 安装Protobuf

  • 安装依赖
sudo apt update
sudo apt install autoconf automake libtool curl make g++ unzip
  • 拉取源码编译安装
# 进入指定目录
cd /workspace/myLib
# 下载压缩包
wget https://github.com/protocolbuffers/protobuf/releases/download/v21.12/protobuf-all-21.12.zip
# 进入目录
cd protobuf-21.12
# 配置编译选项
./configure
# 编译
make 
# 安装
sudo make install
# 更新动态库缓存
sudo ldconfig
  • 验证安装
protoc --version

二、本地编译测试

2.1 拉取源码并编译

  • 进入到root目录下,拉取EPSILON源码,这里我拉取的是我fork的仓库,方便后续修改存档,大家可以根据源项目的链接拉取
cd /root
mkdir ./epsilon_planner/src
cd ./epsilon_planner/src
git clone https://github.com/zf-account/EPSILON.git
  • 编译
catkin_make
  • 刷新环境变量
	source ~/epsilon_planner/devel/setup.bash

2.2 X11转发docker图形化界面

关于如何显示docker中的图形化界面,请参考我的这个博客:docker中图形化界面的转发
这里选用X11转发docker图形化界面,X11转发需要在构建容器时即挂载文件,因此我们先从之前构建的容器中提取镜像出来,再根据提取出来的镜像构建容器同时挂载目录

  • 从容器中提取镜像
docker commit EPSILON epsilon:v1.0
  • 在宿主机上新开终端,允许X11接受来自Docker容器的连接
xhost +local:docker
  • 运行Docker容器并设置DISPLAY变量,在运行容器时,需要将宿主机的X11 socket目录映射到容器内,并设置DISPLAY变量,指定宿主机的X显示服务。
docker run --name epsilon_planner --gpus all -e NVIDIA_DRIVER_CAPABILITIES=all -v /etc/localtime:/etc/localtime:ro   -v /tmp/.X11-unix:/tmp/.X11-unix   -e DISPLAY=unix$DISPLAY   -e GDK_SCALE   -e GDK_DPI_SCALE --network="host" --privileged -v /dev/bus/usb:/dev/bus/usb -it epsilon_planner:v1.0 /bin/bash

2.3 测试一个小例子

  • 新建终端启动roscore
roscore
  • 新建终端启动rviz
roscd phy_simulator/rviz/
rviz -d phy_simulator_planning.rviz
  • 新建终端启动planner节点和AI节点
roslaunch planning_integrated test_ssc_with_eudm_ros.launch
roslaunch ai_agent_planner onlane_ai_agent.launch
  • 启动仿真器
roslaunch phy_simulator phy_simulator_planning.launch

此时,在宿主机上会显示仿真动画

三、镜像

上述环境配置过程均在docker中完成,配置完成后,我提取出了镜像上传到了dockerhub,大家可以跳过繁琐的环境配置过程,直接使用以下链接拉取我配置好的镜像使用,后续会更新对EPSILON代码的解读

  • 拉取镜像
docker pull aitotra/epsilon-planner:v1.0
  • 运行容器
docker run --name epsilon_planner --gpus all -e NVIDIA_DRIVER_CAPABILITIES=all -v /etc/localtime:/etc/localtime:ro   -v /tmp/.X11-unix:/tmp/.X11-unix   -e DISPLAY=unix$DISPLAY   -e GDK_SCALE   -e GDK_DPI_SCALE --network="host" --privileged -v /dev/bus/usb:/dev/bus/usb -it epsilon_planner:v1.0 /bin/bash

标签:本地,--,EPSILON,apt,拉取,install,测试,ros,安装
From: https://blog.csdn.net/m0_55127902/article/details/142369810

相关文章

  • 国标GB28181设备端SDK,支持将本地文件、网络流、实时流模拟接入国标GB28181视频平台
    现在市面上的国标设备端SDK,基本上都是收费的,一个是这个东西比较小众,还有一个就是确实有一些研发成本,于是,在前段时间,我就将我们之前一直对外收费的EasyGBD国标GB28181设备端的SDK免费了,SDK地址在:https://github.com/EasyDarwin/EasyGBD/tree/main简单看一下EasyGBD的接口://......
  • Windows 下 EGL PBuffer 测试代码
    Windows 上使用glad加载浏览器的LibEGL.dll 和LibGLESV2.dll,测试 EGL 在Windows 上的实现,代码:1#include<stdio.h>23#include"include/glad/egl.h"4#include"include/glad/gles3.2.h"56#defineSTB_IMAGE_WRITE_IMPLEMENTATION......
  • 用来测试 autosize.js 的 HTML 代码,自动适应 textarea 高度
     1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<metaname="viewport"content="width=device-width,initial-scale=1.0">6<title>VueAutosiz......
  • 基于LangChain手工测试用例转App自动化测试生成工具
    在传统编写App自动化测试用例的过程中,基本都是需要测试工程师,根据功能测试用例转换为自动化测试的用例。市面上自动生成Web或App自动化测试用例的产品无非也都是通过录制的方式,获取操作人的行为操作,从而记录测试用例。整个过程类似于但是通常录制出来的用例可用性、可维护性......
  • 基于LangChain手工测试用例转App自动化测试生成工具
    在传统编写App自动化测试用例的过程中,基本都是需要测试工程师,根据功能测试用例转换为自动化测试的用例。市面上自动生成Web或App自动化测试用例的产品无非也都是通过录制的方式,获取操作人的行为操作,从而记录测试用例。整个过程类似于但是通常录制出来的用例可用性、可维护性......
  • 软件测试用例篇
    目录一、测试用例的概念二、设计测试用例的万能公式1. 常规思考+逆向思维+发散性思维2.万能公式3.弱网测试&&安装卸载测试一、测试用例的概念什么是测试用例?        测试用例(TestCase)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环......
  • 测试用例设计方法
    目录1. 基于需求的设计方法2.具体的设计方法2.1等价类2.2边界值2.3正交法2.4判定表法2.4场景法2.5错误猜测法3.用例练习命令行程序 1. 基于需求的设计方法        基于需求的设计方法也是总的设计测试用例的方法,在工作中,我们需要参考需求文......
  • 【软件测试】自动化测试常用函数 二
    目录......
  • 基于LangChain手工测试用例转App自动化测试生成工具
    在传统编写App自动化测试用例的过程中,基本都是需要测试工程师,根据功能测试用例转换为自动化测试的用例。市面上自动生成Web或App自动化测试用例的产品无非也都是通过录制的方式,获取操作人的行为操作,从而记录测试用例。整个过程类似于但是通常录制出来的用例可用性、可维护......
  • OBC充电机测试的步骤和规范
    一、测试前准备确认测试环境:确保测试环境的温度、湿度等条件符合设备的工作要求。检查设备:检查OBC充电机是否完好无损,电源线、插头等是否连接良好,显示屏是否正常显示。准备工具:准备好电压表、电流表、负载箱等测试工具。确定测试标准:根据产品规格书或相关标准,确定测试的电压......