VSCode ROS调试器运行launch文件无法读取$HOME环境变量问题
问题描述
我有如下所示的简易launch文件:
<launch> <arg name="dataset_dir" default="$(env HOME)/mnist" doc="location to the dataset" /> <node name="listener" pkg="package_a" type="listener.py" output="screen"/> <node name="talker" pkg="package_a" type="talker" output="screen"/> </launch>
在VSCode ROS Debugger中运行时出现如下报错:
我的launch.json文件内容如下:
{ "version": "0.2.0", "configurations": [ { "name": "ROS: Launch", "request": "launch", "target": "/home/ravi/catkin_ws/src/package_a/launch/bringup.launch", "type": "ros" } ] }
该代码在普通终端运行正常,仅在VSCode内出现报错。
使用环境为Ubuntu 18.04.6 LTS操作系统、ROS Melodic版本、VSCode v1.62.3版本。
解决方案
- 优先检查VSCode的环境加载是否正确:不要直接通过系统图标启动VSCode,先打开系统终端,依次执行
source /opt/ros/melodic/setup.bash、source ~/catkin_ws/devel/setup.bash,再在同一终端执行code启动VSCode,重新尝试调试即可。 - 如需简化启动流程,可将ROS环境和工作空间的source命令写入用户目录下的
.bashrc文件:
配置完成后重启终端,后续无论通过终端还是图标启动VSCode,都会自动加载ROS环境。echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc - 若上述操作仍无法解决,可在
launch.json中手动指定环境变量,修改后的配置如下:{ "version": "0.2.0", "configurations": [ { "name": "ROS: Launch", "request": "launch", "target": "/home/ravi/catkin_ws/src/package_a/launch/bringup.launch", "type": "ros", "env": { "ROS_ROOT": "/opt/ros/melodic/share/ros", "ROS_PACKAGE_PATH": "/home/ravi/catkin_ws/src:/opt/ros/melodic/share", "ROS_MASTER_URI": "http://localhost:11311" } } ] } - 排查VSCode ROS插件版本兼容性:过高版本的ROS插件不再支持ROS Melodic,可将插件降级到v0.6.8版本,该版本对Melodic的适配性最好。
内容的提问来源于stack exchange,提问作者ravi
相关产品推荐
相关产品推荐

