专栏算法工具链sensor_tool使用示例

sensor_tool使用示例

TROS.Assist2024-03-27
54
0

为了让用户更好的控制SensorCenter,SensorCenter额外提供了sensor_tool工具,通过该工具,用户可以直接与SensorCenter进行命令行交互,当前sensor_tool已支持以下功能:

  • 传感器控制,包括启动、停止、复位以及camera的ipi切换

  • SensorCenter版本信息获取

  • 传感器信息获取,包括当前工作状态、基本信息

  • 传感器数据包及拼帧统计

  • 传感器数据回写

  • 性能评测

1. 使用限制

在使用本工具前,请了解以下内容:

  • 性能评测功能仅在linux系统下有效

  • 传感器数据回写对camera、mic等传感器无效,因为它们不是通过SensorCenter的Hal层获取源数据的

2. 使用前准备

sensor_tool与SensorCenter之间的通信方式为service/client,其中SensorCenter作为service,sensor_tool作为client,因此,在使用工具前,请首先保证sensor_tool与SensorCenter已通过名称为”/tros/command/sensors”的topic完成communction连接。

3. 使用方法

sensor_tool根据不同的功能会有不同的参数输入界面,下面将依次介绍各个功能中的参数含义及输入方法:

  • 首先执行如下命令进入到工具的交互界面:

在交互界面中我们进行输入待操作的功能名称,功能选项包括:

  • start

  • stop

  • reset

  • ipi

  • get_version

  • get_status

  • get_base_info

  • get_statistical_info

  • writeback

  • performance

  • set_log_level

  • set_user_param

  • get_user_param

3.1 start

start用于启动传感器工作的命令,通过此命令,可以使停止运行的传感器重新开始工作 当我们输入完start后,交互界面会继续提示你输入待启动的sensor_name,此时分为以下两种情况:

  • 启动所有已启用的传感器: 直接按下Enter键

  • 启动指定的传感器:依次输入传感器名称,按Enter键表示一个传感器名称输入结束,周而复始,直到所有的传感器都输入完成后,直接输入Enter键结束。 此时工具将根据输入的传感器名称去启动指定的传感器

3.2 stop

stop用于停止传感器工作的命令,通过此命令,可以使正在运行的传感器停止工作 同start

3.3 reset

reset用于对传感器进行复位 同start

3.4 ipi

ipi用于camera的group切换,执行该命令后,工具会紧接着依次会要求你输入:

  1. group_id:目标组id

  2. able:原先组是否保留使能

3.5 get_version

get_version用于获取SensorCenter的版本信息,输入指令后,无需输入任何其他参数,执行完毕后,版本信息会自动打印出来

3.6 get_status

get_status用于获取SensorCenter所有已启用的传感器的运行状态,输入指令后,无需输入任何其他参数,执行完毕后,状态信息会自动打印出来

3.7 get_base_info

get_base_info用于获取SensorCenter所有已启用的传感器的基础信息,包括型号、厂家、软件版本以及附加描述,输入指令后,无需输入任何其他参数,执行完毕后,基础信息会自动打印出来

3.8 get_statistical_info

get_statistical_info用于统计指定传感器的的收包、拼帧以及耗时情况,命令输入后,会依次提示输入以下参数:

  1. sensor_name:传感器名称,同start

  2. timeout_ms:超时时间,单位为ms

  3. StatisticalType:统计结束条件,分为以下三种:

    • 0:FRAME,以帧数作为结束条件:当传感器收到的总帧数达到条件时,将自动结束统计

    • 1:FRAME,以接收到的包的个数作为结束条件:当传感器收到的总包数达到条件时,将自动结束统计

    • 2:TIMEMS,以时长为结束条件:统计指定时长后,将自动结束统计 参数输入完成后,结果将自动展示。

3.9 writeback

writeback用于向指定传感器回写指定数据,命令输入后,会依次提示输入以下参数:

  1. sensor_name:传感器名称,同start

  2. write_back_data:待回写的数据

  3. write_cfg_type:数据类型,用于vehicleio方式接入的传感器,其他传感器忽略即可

  4. eth_port:用于eth方式接入的传感器,其他传感器忽略即可

3.10 performance

performance用于性能评测,评测的内容包括指定时间周期范围内的SensorCenter的CPU及内存占用情况,以及指定传感器的数据包在Hal层、插件侧、communction侧的耗时情况,此功能仅对Linux系统开放。命令输入后,会依次提示输入以下参数:

  1. sensor_name:传感器名称,同start

  2. evalute total time:评测的总时长,单位为秒

  3. evalute period time:评测的周期的时长,单位为秒。工具会将总时长自动划为多个周期,其统计的结果将以周期为单位返回

  4. save result:是否保存结果,若输入yes,评测的结果除了展示在终端外,还会保存在当前目录下perf_result.json

3.11 set_log_level

set_log_level用于动态修改日志等级,可以设置单模块的日志等级也可以设置全局的日志等级: 日志模块包括 [sensor_center] [communication] [vehicleio] [schedulegroup] [dataflow] [all],若日志模块选择 [all],则设置的是全局日志等级。 日志等级:0-trace,1-debug,2-info,3-warn,4-error,5-critical,6-never。 当设置全局的日志等级后,若想要再次修改模块的日志等级,需要先将全局的日志等级设置为 6-never,使全局日志失效,才可重新设置模块的日志等级。

3.12 set_user_param

set_user_param用于设置用户参数

3.13 get_user_param

get_user_param用于获取用户设置的参数

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