专栏算法工具链基于Basic Sample的Bolepack、Hviz使用介绍

基于Basic Sample的Bolepack、Hviz使用介绍

DR_KAN2023-12-04
278
0

前言

TROS的SDK提供了开发案例,会介绍中间件示例工程的功能、编译及运行方法,以帮助用户快速上手中间件开发。其中,基础示例Basic Sample位于SDK的samples/app_samples/samples_sourcecode/basic_sample目录,该示例会对单个摄像头采集的图像数据做分割和检测。

Basic Sample的运行共分为三个阶段:

  1. 在开发机使用Bolepack工具将pack格式的数据回灌到开发板

  2. 在开发板执行应用程序

  3. 使用Hviz工具查看可视化结果

本教程作为用户手册的补充,会基于Basic Sample开发示例,重点介绍如何使用Bolepack的回灌(fillback)功能,并说明Hviz工具的使用方法。


Bolepack

本教程使用1.8.6版本的bolepack工具,基于linux开发机运行。Bolepack的详细使用说明可以查看手册的工具介绍-Datatools-bolepack章节,这里主要针对Basic Sample涉及的内容做介绍。

获取工具

进入TROS SDK的tools/datatools/bolepack目录,解压bolepack_linux_.zip压缩文件,得到bolepack_linux文件夹,可以在这里运行bolepack工具。

下载pack

在bolepack_linux中,我们新建pack文件夹,并将Basic Sample使用到的pack数据下载到pack文件夹内:

修改communication.json

在该配置文件中,需要对participants id为2的节点做修改。

由于Basic Sample是以pub-sub端方式建立开发机和开发板的通信,开发机作为pub端,开发板作为sub端,又因为pub和sub的ip都需要设置为pub端的,因此link_info的ip需要设置为本机地址(本教程中使用的开发机地址为10.10.112.56)或者0.0.0.0,这里0.0.0.0的含义为“本网络中的本机”,与设置本机真正的IP地址作用相同。port选择一个未被占用的端口即可,这里使用6070。

link_type通常有connect和bind两种值可选,当link_info填写了本机ip,且本机作为pub端时,link_type默认值为bind。

link_type配置规则

link_info的ip是本机ip

  • 本机作为pub端:不填 或 填bind

  • 本机作为sub端:不填 或 填connect

  • 本机作为client端:填 bind

  • 本机作为service端:填 bind

link_info的ip不是本机ip(确保能和本机ping通)

  • 本机作为pub端:填connect

  • 本机作为sub端:不填 或 填connect

  • 本机作为client端:填 connect

  • 本机作为service端:填 connect

原则:无论哪种通信模式,link_info的ip为本机,则link_type填写bind,否则填写connect。

修改fglobal.json

file_type可以配置为files或dir,该示例中只使用了单个pack数据做回灌,因此建议配置为files,此时file_paths就需要填写pack文件的地址,可以使用相对于bolepack工具的相对地址或者绝对地址。

相应的,如果file_type为dir,那么file_paths填写包含有pack数据的文件夹的相对路径或绝对路径即可。

在target_options中,prefix表示pack文件的前缀,participant设定的数字对应communication.json的participants id,channel与pack的数字后缀,domain_id用0即可,type为msgs表示小消息数据,msgs为image表示指定消息的name为image,mode为0表示communication发送模式为pub-sub(为1表示client-service),ts_type为0表示数据同步的时间戳类型为GenTS。

运行bolepack

运行bolepack时建议先退出TROS的docker环境,否则可能会因为端口原因通信失败。使用回灌方式运行bolepack的命令如下:

若运行成功,终端会打印如下信息:

开发板

本教程使用J5开发板,IP地址为10.64.61.55,并已确保能和开发机ping通。

用户只需将TROS SDK的samples/app_samples路径下的samples_j5.zip解压,并将basic_sample文件夹复制到J5开发板,并对config/sensor_center/adapter/communication.json文件中participants id 5做修改即可。

在link_info的配置中,10.10.112.56为运行Bolepack工具的开发机的ip地址,ip和port与开发机端communication.json的participants id 5相同。link_type配置为connect,因为link_info填写的ip地址不是本机的ip(本机是作为sub端的J5开发板)。

若成功接收到bolepack的回灌数据且程序正常运行,终端会打印如下信息:

Hviz

本教程使用1.5.2版本的windows桌面端Hviz,并已确保windows电脑能和开发板ping通。

通信配置

在New Connection界面中,选择Communication方式建立通信,DataSource的Domainid设置为0(与Bolepack工具的fglobal.json相同),IP使用开发板的IP,端口配置5570,这是因为在Basic Sample的源文件中,res/config/basic_sample路径下的communication.json配置了向外发送处理结果的端口为5570。

basic_sample/res/config/basic_sample/communication.json:

消息映射

Hviz默认可识别出一些消息类型,并支持对其自动映射。但是在Basic Sample中,名为perception的消息并不是Hviz工具原生支持的,因此需要用户做手动映射,添加消息名称和消息类型之间的对应关系后,该消息才能被工具正确解析。

可视化

完成上述配置后,即可在Image的Panel面板选择可视化内容,查看Basic Sample的运行情况。

其中,每个topic的名称由basic_sample/config/basic_sample/runtime_context.json定义,在该配置文件中,第一组module(class_name为CollectModule)代表进程对外发消息的module,其中outputs的topic有image、perception、parsing和lane_parsing这四项,#-1表示默认的channel,如果在topic这里不配置,则使用默认的-1,用户可以手动修改,比如将image改成image#2,那么hviz显示的就是image#2/0了,斜杠后的0表示group id。

算法工具链
杂谈
评论0
0/1000