Ros2学习中的话题通信-自定义接口消息:在VScode中不能补全的问题

在学习ros2的过程中,当学习到话题通信-自定义接口消息时,当消息的具体类型并未指定时,常见的操作是在base_interfaces_demo下创建msg文件夹及文件。同理,在动作通信等其他类型的通信中也需要这么做,只是创建的文件夹的名字不同,可能是action等。

当文件夹,文件内部都已经编写完毕后,这里编写了一个Student.msg然后写了String类型的name,int32类型的age,float64类型的height用以交互,当在客户端及用户端编写代码时却发现,使用from base_interfaces_demo.msg import Student时无代码补全。

起初我不认为这是很大的问题,但随着消息类型的增多,我写的代码总是会在这部分写错,同时在编写代码时还需要对照着.msg,.action文件来写,十分不方便,于是我查找了有关的方法。其中一个方法是:Python文件中导入自定义消息相关的包时,为了方便使用,可以配置VSCode中settings.json文件,在文件中的python.autoComplete.extraPaths和python.analysis.extraPaths属性下添加一行:"$(workspaceFolder;/install/base interfaces _demo/local/lib/python3.10/dist-packages"添加完毕后,代码可以高亮显示且可以自动补齐,其他接口文件或接口包的使用也与此同理。

但我在使用colcon build --packages-select base_interfaces_demo后压根就没有产生Python的local文件夹,但是想来肯定是编译了Python版本的,于是查找后发现了解决方案。

首先,在编辑settings.json时要选择Workspace Settings,最初由于并未告知我选哪个,我选择的User Settings,改变后并未产生效果。其次,若使用命令后没有local文件夹编译出现,可以选择文件夹下的lib文件夹下的python3.10下的site-packages。其实也很好理解,既然没给dist-packages,总要找一个替代,且VScode在上方给的部分初始setting中也有这样选择site-paskages的情况出现。这样问题就解决了。

相关推荐
意法半导体STM3235 分钟前
【官方原创】LAT1717 STM32N6 如何使用单个XSPI驱动双片相同HyperRAM
stm32·单片机·嵌入式硬件·mcu·stm32n6·hyperram
木子单片机42 分钟前
基于单片机的直流电机调速系统设计
单片机·嵌入式硬件·51单片机·nosql·keil
倔强的胡萝卜4 小时前
基于STM32F103C8T6的温度报警器设计
stm32·单片机·嵌入式硬件
缘来是你远去是我5 小时前
ZYNQ 系列芯片中断机制详解:类型、处理过程与中断处理函数
单片机·嵌入式硬件
LCG米6 小时前
STM32 定时器主从模式输出精确脉冲数实测:TRGO 触发链拆解、多发一脉冲根因与干净停止时序落地
stm32·单片机·嵌入式硬件·嵌入式
青梅味猪大肠7 小时前
【操作系统-60】临近适应算法
java·linux·开发语言·嵌入式硬件·算法·操作系统
ChaseVLSI7 小时前
FPGA与ASIC的区别详解:内部结构、开发成本与适用场景,项目选型到底该选哪个
嵌入式硬件·fpga开发·硬件架构·硬件工程
东莞市壹星自动化设备有限公司7 小时前
透明圆瓶内部特征怎样定位:折射追踪与近远相位分支
嵌入式硬件·自动化·需求分析·几何学·骨骼绑定
Dev_XH7 小时前
【成品设计】基于物联网的配电箱智能防护系统设计
stm32·单片机·嵌入式硬件·物联网
Dev_XH9 小时前
【成品设计】基于单片机的工厂设备能耗监控与优化系统
stm32·单片机·嵌入式硬件·物联网