①因为节点不能脱离软件包存在,所以我们先创建一个包
创建包:( catkin_create_pkg 包名 依赖项列表)
catkin_create_pkg abc_pkg rospy roscpp std_msgs
判断包的方式之一:包里必定有xml文件,可以使用roscd 包名,进入指定包的目录
②然后打开vscode将包所在文件夹添加到工作空间,在新建的包的src目录下新建一个cpp文件并编写如下代码(注意main函数的第二个参数若自动生成时带const要删去,不然与ros::init的参数类型不匹配)
#include <ros/ros.h>
int main(int argc, char *argv[])
{
ros::init(argc,argv,"abc_node");
printf("Im adc_node\n");
while (ros::ok())
{
printf("hellow\n");
}
return 0;
}
Ctrl+C是无法终止while(true)的,因为它无法接收外部指令,所以我们选择ros::ok()作为循环的条件。
③修改cmakelist.txt
在末尾添加(在该文件中均有示例,##的是说明,#是函数示例,可复制修改使用)
add_executable(abc_node src/abc.cpp)
target_link_libraries(abc_node
${catkin_LIBRARIES}
)
其中节点名与ros::init()中的第三个参数一致, cpp与自己创建的cpp文件名一致。
④Ctrl+Shift+B编译,并在终端中运行(先运行roscore)
编译部分参照Linux(Ubuntu)中安装vscode-CSDN博客
rosrun abc_pkg abc_node
若提示找不到这个包,就需要将环境设置添加到终端的初始化脚本~/.bashrc中