SLAM十四讲ch5报错:[pcl::PCDReader::readHeader] HEIGHT given (0) but no WIDTH!

1

如题所示,跑通ch5后获取了map.pcd文件后,使用pcl_viewer报错

[pcl::PCDReader::readHeader] HEIGHT given (0) but no WIDTH!

2

详细读了一下pcd的文件格式,见https://blog.youkuaiyun.com/qq_55433334/article/details/125292052
pcd的头文件中有WIDTH和HEIGHT参数
既然是这里报错,可以看一下生成的pcd文件是怎么样的
建议用vim打开比较快,gedit特别慢。。。
在这里插入图片描述
好的,破案了,估计是pcl库的转pcd格式有一些问题。。。

3

修改一下头文件成为
在这里插入图片描述
可以打开了
在这里插入图片描述

4 关于cloudcompare保存点云为其他格式

太蠢了这设计的,我以为只能保存为二进制,其实他得往下拉才有。。。
在这里插入图片描述

你提供的是 STM32 程序中与 USB 外设相关的几个函数地址以及相关信息。这些符号是链接后的程序映像的一部分,通常出现在编译/链接后生成的地图文件(`.map` 文件)或其他调试工具的输出中。下面我会逐一介绍每个条目,并解释它们的作用: --- ### 1. **HAL_PCD_EP_Transmit** ``` HAL_PCD_EP_Transmit 0x08001a97 Thumb Code 64 stm32f4xx_hal_pcd.o(i.HAL_PCD_EP_Transmit) ``` - **功能描述**: 这是一个用于 USB 设备端点传输的 HAL 层 API 函数。具体来说,它是用来向指定的设备端点发送数据的功能入口。当你希望从 MCU 向主机发送数据时,会调用此函数来启动传输任务。 - **关键字段含义**: - `Thumb Code`: 表示这是 ARM Cortex-M 架构下的 Thumb 指令集编码方式。 - `0x08001a97`: 是该函数在闪存中的起始地址。 - `64`: 占据的空间大小为 64 字节。 - `stm32f4xx_hal_pcd.o`: 表明它来自 `STM32F4XX HAL PCD (Peripheral Control Driver)` 驱动模块的对象文件。 - **典型应用场景**: 在开发基于 USB 的外设应用时,例如鼠标、键盘或自定义类设备,可能会频繁调用此类函数来进行数据包的传递工作。 --- ### 2. **HAL_PCD_IRQHandler** ``` HAL_PCD_IRQHandler 0x08001ad9 Thumb Code 1114 stm32f4xx_hal_pcd.o(i.HAL_PCD_IRQHandler) ``` - **功能描述**: 这是一般意义上的 USB 中断服务例程(ISR)。当 USB 外设有任何类型的中断产生时(如接收完成、发送完成、复位等情况),都会跳转到这里进行集中处理。 - **特点分析**: - 覆盖范围广:它可以管理多种不同的中断类型,包括但不限于: - 数据包接收完毕通知。 - 数据包发送确认回应。 - 错误检测报告等。 - 整体复杂度高:由于需要支持多样的事件触发机制,因此它的实现相对繁琐庞大(占用空间达到 1114 字节)。 - **重要性**: 对于实时性和稳定性要求较高的嵌入式系统而言,合理配置和高效编写这一块代码至关重要。 --- ### 3. **HAL_PCD_ISOINIncompleteCallback** ``` HAL_PCD_ISOINIncompleteCallback 0x08001f3d Thumb Code 8 usbd_conf.o(i.HAL_PCD_ISOINIncompleteCallback) ``` - **功能描述**: 此回调函数专用于异步同步接口输入(ISOCHRONOUS IN Endpoint)出现未完全填充的情况。换句话说,就是在 ISO 类型的数据流中如果发现某次读取不足完整的一帧数据量,则会激活此方法供用户采取适当措施应对这种情况。 - **背景知识补充**: - 异步同步模式是一种保证固定带宽利用率的工作模式,在音频流媒体播放等领域较为常见。 - 回调设计允许开发者根据业务需求灵活定制行为逻辑而不必修改底层驱动本身。 - **简单例子**: 假如你的项目涉及到麦克风阵列采集声音信号并通过 USB 输出至电脑上作为声卡用途的话,就很可能需要用到这个特定的功能点了。 --- ### 综合理解 以上三个组件共同构成了 STM32CubeMX 自动生成或手动构建出来的 USB 功能模块的核心组成部分之一。其中包含基础的数据交换操作(EP Transmit)、异常状况监控与恢复策略制定(IRQ Handler)以及针对某些特殊情况设定专属反馈路径(Callback Mechanism)。这样的分层架构不仅提高了代码重用率而且增强了系统的可扩展性与健壮程度。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值