# 在线算法文件说明

仿真算法支持ROS、源码以及可执行文件三种算法类型。不同类型算法支持的开发语言请参考下表。在进行算法开发时,Octopus平台对算法有一定的要求,请仔细阅读本章节内容,有助您快速完成算法开发及上传。

表 1 仿真算法支持的文件类型

算法类型

算法语言

ROS

C++

源码

C++

可执行文件

不涉及

# ROS算法类型基本要求

Octopus平台支持您对ROS类型文件进行在线开发以及编译运行等操作。进行算法开发时算法文件需满足以下几点要求。

  • 所有算法文件需包含在一个根目录下,目录结构可参考:

    .
     ├─ xxx                          #根目录(名称可自定义)
         ├─ src                      #src目录(必选,名称固定) 
             ├─ CMakeLists.txt            # 对workspaces初始化(必选,名称固定)
            ...
    
             └─ ...                       #其他工程文件(可选)
    

    注意: 上传的文件夹中只能包含src目录和必要的算法文件,不可包含编译后生成的二进制文件。如ROS算法文件在本地编译后,会生成“build”和“devel”目录,包含编译后的全部文件,若将全部文件打包上传,将导致在线编译失败。

  • ROS算法开发要符合正常的ROS代码开发结构,即在根目录下必须有一个src目录,用来存放初始化后的CMakeLists文件;

  • CMakeLiset.list内容为CMakeLists.txt -> /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake中的内容

  • 配置编译命令时,需编写"catkin_make"命令,否则会导致编译不成功;

  • 配置运行命令时有三种方法:

    • 推荐使用roslaunch方式启动运行命令。

      roslaunch ros_package_name  xxxxx.launch
      
    • 使用ROS官方推荐的运行命令方法:将当前的工程加载到环境中,使rosrun识别到算法包。

      source ./devel/setup.sh;rosrun 包名 可执行程序名
      

      例:

      source ./devel/setup.sh;rosrun vtd_gateway vtd_gateway
      

      运行多条命令时,可以用如下命令:

      bash -c  "cmd A; cmd B; cmd C"
      
    • 直接访问可执行程序:

      ./devel/lib/包名/可执行程序名
      

      例:

      ./devel/lib/vtd_gateway/vtd_gateway
      

# 源码算法类型基本要求

与ROS算法类型相似,您可以在平台对源码类型算法进行在线编辑、编译运行等操作,但需满足一定要求。目前源码类型算法只支持用C++语言开发。在进行源码形式的算法开发时,需满足以下几点要求:

  • 源代码类型算法开发也须在一个根目录下进行,根目录的名字可以与算法名称相同也可自定义;

  • 配置编译命令

    源代码在构建输出目录时,不要指向项目的上层目录,应直接指向当前目录,否则在运行时会出现找不到可执行程序的错误。因为有且仅有工程下的目录会被打包生成镜像。例:

    g++ -o sampleClientRDBDriverCtrl Communication/Common/RDBHandler.cc Communication/RDBClientSample/ExampleConsoleDriverCtrl.cpp -ICommunication/Common/
    

# 可执行文件算法类型基本要求

可执行文件是已编译成功,等待运行的二进制命令,因此Octopus平台不支持对可执行文件类型的算法进行编辑编译。上传可执行文件需以压缩包的形式上传,压缩格式为.zip,本地上传可执行文件压缩包大小小于5M,OBS上传压缩包大小不超过200M。

说明: 算法文件压缩步骤:

  1. 进入到项目工程的根目录。
  2. 使用zip方式打包根目录下所有的文件及文件夹。
  • windows系统:选中当前目录下所有的文件及文件夹,以zip形式打包
  • Linux系统:zip -r xx.zip ./
  1. 上传压缩包
上次更新: 2020/12/25 16:26:48