37“万里”树莓派小车——ROS学习(VSCode调试ROS)
[复制链接]
本帖最后由 lb8820265 于 2022-5-10 00:27 编辑
之前有介绍过VSCode的调试,那是GDB调试,ROS工程也可以这么调试,但是不推荐,推荐使用Attach调试,Attach调试优点是可以单个节点调试,不需要编译整个工程,但是缺点就是需要先运行节点,再进入调试。可参考官网Debug ROS Nodes文档。
本节是基于上一节“ROS学习(VSCode实现Hello world)”基础上进行修改。
1 修改“helloworld_c.cpp”代码
由于Attach调试需要节点一直运行,因此修改“helloworld_c.cpp”让其每秒发出一次“Hello world!”代码如下。
#include <ros/ros.h>
int main(int argc,char *argv[]){
ros::Time::init();
while(1){
ros::Duration(1).sleep();
ROS_INFO("Hello world!");
}
return 0;
}
2 创建与配置“launch.json”文件
在主菜单中选择“运行->添加配置”(或点击调试与运行按钮,选择创建launch.json),然后选择“ROS”环境。
再选择“ROS:Attach”。
会自动生成“launch.json”文件和代码,代码不需要做任何修改。
如果在选择环境的步骤中没有“ROS”环境可选,而是只有“C++(GDB/LLDB)”环境,说明没有先配置“tasks.json”文件,这也没有关系,先选择“C++(GDB/LLDB)”环境,然后点击下方“添加配置”按钮,选择“ROS:Attach”即可。
3 运行“helloworld_node”节点
按下“Ctrl+Shift+P”打开命令窗口,输入“ROS:Run a ROS executable”,回车后输入包名“helloworld”,回车后输入执行文件名“helloworld_node”,再按下两次回车。一切正常的话在终端窗口中会每秒输出一次“Hello world!”。
4 启动Attach调试
点击“运行与调试按钮”(或者按下“Ctrl+Shift+D”),点击“ROS:Attach”调试,点击“C++”。
输入已经运行的节点“helloworld_node”,回车。
提出警告,输入“y”,回车,会要求输入密码。
调试可以打断点,查看变量。
问题
使用Attach调试每次都需要输入一遍密码,相当麻烦。此外,如果需要调试多个节点,应该怎么操作呢?
|