This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] IWR6843ISK-ODS:在 y 和 amp 中观察到差异;在基于 ROS 的点云中观察到 z 值

Guru**** 1624230 points
Other Parts Discussed in Thread: IWR6843ISK-ODS
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1350574/iwr6843isk-ods-observed-discrepancy-in-y-z-value-in-ros-based-pointcloud

器件型号:IWR6843ISK-ODS

您好!

我将使用 IWR6843ISK-ODS 在 ros2 ubund22.04LTS 中使用、并使用小的障碍物检测二进制文件进行雷达-摄像头校准。  
我正在使用放置在不同位置的角反射器、然后使用"Publish point"选项从 rviz2检查点的值。
在 ROS 中,坐标为 x: 前向+ve, y :左向+ve, z :高于+ve,但我观察到与我校准期间获得的值有差异。  
我在中设置了传感器对地以及角反射器对地的位置。

  
而 CR 的位置如下,以及从"发布点"选项获得的坐标:

在这里、所有相邻的点在横向上相隔0.25m。 我还提到了从图像中的发布点获得的 x、y、z 点。
P12和 P15的 y 值之间的差值应接近1m 但为0.5m、而 z 值的差值接近1m、即0.992m。 对 P11&P14、P10&P13也是如此、对其他点也是如此。

我的 cfg 文件根据 ODS 天线具有正确的 compRangeBiasAndRxChanPhase、并再次重复该过程、但得到相同的结果。

此外、我尚未对 read-obj_struct 下的文件 DataHandlerClass.cpp 进行任何更改。

您能否根据上述数据判断是否需要交换 y 和 z 值? 坐标系是否存在此类差异?  

此致、
普什卡尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好

    感谢您的提问、请给我们几天的时间进行回复

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pushkar、

    ROS 的坐标系和雷达的输出是不同的、因此 DataHandlerClass 具有以下代码。

    RScan->points[i].x = mmwData.newObjOut.y;// ROS 标准坐标系 X 轴正向、即毫米波传感器 Y 轴
    RScan->points[i].y =-mmwData.newObjOut.x;// ROS 标准坐标系 Y 轴左侧、即毫米波传感器-(X 轴)
    RScan->points[i].z = mmwData.newObjOut.z;// ROS 标准坐标系 Z 轴向上、与毫米波传感器 Z 轴相同

    对于 ODS、您需要更改比  compRangeBiasAndRxChanPhase 更多的内容。

    如果您使用的是具有 Capon 算法链的基于3D 人员跟踪的二进制文件、则需要确保在用于设置 ODS 天线几何结构的配置文件中包含以下命令。

    antGeometry0 0 0 0 -1 -1 -2 -3 -3 -3 -2 -3 -3 -3 -3 -3
    antGeometry1 0 -1 -1 0 -1 -1 -1 0 -1 0 -2 -3 -3 -2
    antPhaseRot 1 -1 1 1 1 -1 1 1 1 -1 -1 1 -1 1

    如果您使用开箱即用的演示二进制文件(ROS 驱动程序的小型障碍物检测所基于的二进制文件)、则需要使用覆盖默认值的不同 Antenna_geometry.c 和 main.c 文件重新编译该二进制文件。 此文件位于 C:\ti\ Out_Of_Box_Demo src。

    请注意、在我们的所有文档中、ISK 和 ISK-ODS 是两个不同的天线图形、并且不能立即交叉兼容。 为了便于使用 ODS EVM、我建议不要使用小型障碍物检测二进制文件、而是使用更具可配置性且更新的3D 人员跟踪二进制文件。

    此致、

    佩德霍姆

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Pedrhom:

    感谢您的详细解释。  

    我现在明白了、对于 ODS、我需要更改天线几何形状和 main.c 文件、我可以从这些文件中获取  Out_Of_Box_Demo src

    无论使用何种二进制文件(即小障碍物检测或3D 人员跟踪),还是仅用于小障碍物检测和3D 人员跟踪二进制),都应进行这些更改。ODS 天线配置是    单独使用 antGeometry0、antGeometry1和 antPhaseRot 参数完成的? 请说明一下。  

    我希望在启用静态场景的情况下使用小障碍物检测、以通过摄像头进行校准、因为它输出的点数较少、可轻松区分来自角反射器的点。 如果我在启用静态场景的情况下使用3D 人员跟踪、则已经有很多要点、校准过程将变得非常困难。  
    对于校准后的测试数据捕获、我将使用3D 人员跟踪二进制文件、因为它比小障碍物二进制文件提供的分数更多。  

    为了进行您首先提到的 天线几何结构更改、我应该复制 PCB 上的 ODS 几何信息、  

    ANTDEF_AntGeometry gAntDef_IWR6843ODS ={  .txAnt ={ 0、0}、 {20}、{2、  2}、   .rxAnt =0、0}、{0、1}、{1、 1 }、{ 10 }}}};

    并将 位于 Ubuntu 计算机中"ti/mmwave_sdk_03_06_02_00-LTS/packages/ti/board/"下的 ANTDEF_DEFAULT 值替换为 ANTDEF_DEFAULT 值。  
    是这样吗?

    第二步、能否将 Code  Composer Studio 中的  Out_Of_Box_Demo src 应更换\SOURCE\ti\examples\ODS\xwr6843ODS、位置是什么? 我在 mmWave_ROS_pkg 下未找到任何 main.c 文件。   "ti/mmwave_sdk_03_06_02_00-LTS/packages/ti/drivers"下有多个 main.c 文件 

    因此、在完成天线几何结构和 main.c 文件之后、我应  再次构建 MMWAVE_ROS_PACK。 您能否确认这是否正确?

    此致、
    普什卡尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pushkar、

    如果使用3D 人员跟踪二进制,则不需要在    使用的配置文件中的 antGeometry0、antGeometry1和 antPhaseRot 参数之外进行任何更改。

    正确调节后、Capon 链(3D 人员跟踪)将比 Bartlett One (OOB/小障碍物检测)更好、更清晰地检测静态点。 为了方便起见、我附上了两个配置以便与具有良好静态检测的3D 人员跟踪演示配合使用。 您将需要替换 antGeometry 值,因为我最初是为6843AOP 设置的。

    对于小障碍物检测、必须更改刷写到器件中的二进制文件的源代码、而不是 ROS 驱动程序源代码。 这是通过 Code Composer Studio 完成的、您可以在其中导入所选的工程并进行更改、然后对其进行编译以创建要刷写的.bin 文件。 我再次建议继续使用3DPT 和调整/调整参数

    此致、

    佩德霍姆

    e2e.ti.com/.../3DPC_5F00_Based_5F00_CFG_5F00_Static.cfg

    e2e.ti.com/.../Overhead_5F00_Static_5F00_6843AOP_5F00_3meters.cfg

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Pedrhom:

    非常感谢您提供了 cfg 文件。 这将是一个良好的开始、并且可以根据我的用例进行更改。  
    我将坚持3DPT 并对参数进行微调、非常感谢您的指导。  

    我将测试 cfg 文件并返回给您。

    此致、
    普什卡尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Pedrhom:

    我使用以下参数实现了5.2cm 的距离分辨率、并优化了角分辨率。 但点云仍然稀疏。

    我想知道是否可以根据 cfg 文件中的参数增加点云的密度? 在我在车内的用例中、驾驶员和雷达之间的距离在0.4-0.8米以内、并且只观察到几个点。

    我当前正在使用以下参数:

    sensorStop
    flushCfg
    dfeDataOutputMode 1
    channelCfg 15 7 0
    adcCfg 2 1
    adcbufCfg -1 0 1 1 1
    
    profileCfg 0 60.5 10 8 53 131586 0 66 1 128 3000 2 1 36
    chirpCfg 0 0 0 0 0 0 0 1
    chirpCfg 1 1 0 0 0 0 0 2
    chirpCfg 2 2 0 0 0 0 0 4
    frameCfg 0 2 64 0 200.00 1 0
    
    dynamicRACfarCfg -1 4 85 2 2 8 12 4 4 20.00 20.00 0.40 1 1
    staticRACfarCfg -1 4 85 2 2 8 8 4 4 20.00 20.00 0.30 0 0
    dynamicRangeAngleCfg -1 0.75 0.0010 1 0
    dynamic2DAngleCfg -1 1 0.0300 1 0 1 0.30 0.85 8.00
    staticRangeAngleCfg -1 1 8 8
    antGeometry0 0 0 -1 -1 -2 -2 -3 -3 -2 -2 -3 -3
    antGeometry1 0 -1 -1 0 0 -1 -1 0 -2 -3 -3 -2
    antPhaseRot 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1
    fovCfg -1 45.0 45.0
    compRangeBiasAndRxChanPhase 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
    
    staticBoundaryBox -2 2 0.3 3.5 0 2
    boundaryBox -2 2 0.3 6.0 0 2
    sensorPosition 0.3 0 0
    gatingParam 2 2 2 2 4
    stateParam 5 3 12 50 5 50
    allocationParam 20 35 0.1 10 0.6 20
    maxAcceleration 1 1 1
    trackingCfg 1 2 800 30 46 96 100
    presenceBoundaryBox -2 2 0.3 6.0 0 2
    sensorStart
    

    谢谢、此致、
    普什卡尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pushkar、

    20的 CFAR 阈值可能很高。 我会减少这些、如果您开始重新检测和发现大量噪声、则应由于工作的距离非常短而增加 TX 功率回退。

    此致、

    佩德霍姆

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Pedrhom:

    我尝试了您的建议、点数随着 Tx 功率回退的增加而减少、但在静态场景中仍然有很多点。 在右侧、您可以通过 ToF 摄像头看到 pic、观察孔内或周围没有物体。 我认为它们是幽灵目标,并在另一个房间检查,仍然是一样的。 这是在启用静态场景的情况下进行的。 此外、即使 30岁或以上、我得到了彩虹像点云。 这还是太小了吗?  

      

    此外、当我使用角反射器并在此设置中将其移动(启用静态场景)时、点云会与角反射器一同移动。 但只要我使角反射器静态或把它放在某物上,角反射器的点云就会消失,因此我发现很难执行外部校准。 我已经尝试不同的环境和玩多个参数很长一段时间了,但没有成功。

    而是使用3D 人员检测二进制文件。  

    您能建议如何解决如此多的静态点 、为什么这些点在变为静态时会远离角反射器?  

    谢谢你。
    此致、
    普什卡尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Pushkar、

    这通常是预期行为。 启用静态检测后、您将看到地板、墙壁、天花板等。 而不仅仅是静态物体。  如果您将 sensorPosition 值设置为适当的高度、那么您应该能够移除任何 Z (仰角)值为负的点、因为在底部可以认为这是负数的点。 这些点可能由多路径反射等多种不同因素产生、但它仍然是噪声。 尝试一个非常高的 angleThre 像50、看看会发生什么情况、只有在静态模式下执行此操作时、值才会上升到这么高、但可以这样做。 最坏的情况是、如果值太高、您将看不到任何点、这只是后处理过滤。

    传感器上的点是天线耦合导致的。 可以将其视为雷达检测本身。 您可以通过 dynamicRACfarCfg 和 staticRACfarCfg 来删除这些点 。  在以下文档中查找 cfarDiscardLeftRange。 这将删除离传感器最近的 X 数量的点。 由于在上使用静态检测时、您始终会检测到一些天线耦合、因此可以安全地为此设置一个相对较高的值(25或更大的值仍然可以、但应进行测试)。

    https://dev.ti.com/tirex/explore/node?node=A__AIQPG9x7K34A8l4ZELgznA__radar_toolbox__1AslXXD__LATEST

    这是雷达的过程:检测、过滤/处理、检查输出、调优、重复。

    此致、

    佩德霍姆