CMakeLists.txt
package.xml
【packbag 必备文件】主要是对软件包的描述
创建文件
#include <ros/ros.h>
int main(int argc, char const *argv[])
{
printf(
"hello world!\n"
);
return 0;
}
记得保存,小圆点表示没保存
在文件里为新建的节点创建编译规则
复制放在文件末尾
总结
ros节点本身就是一个应用程序!
关联ros
这样会报错
报错提示:参数列表不匹配,
此时ctrl+shift+B编译会报错,未包含ros::init所包含的库。所以需要把这个函数的库包含进来,链接起来。
来到文件末尾,删除掉注释。选中句子,ctrl + /
再保存编译即可。
终端执行!
一定要启动
roscore
死循环
一般情况下,会想到使用while Ture
#include <ros/ros.h>
int main(int argc, char *argv[])
{
ros::init(argc,argv,"chao_node");
printf(
"hello world!\n"
);
while (true)
{
printf("i am fine ~");
}
return 0;
}
程序会被卡死,无法使用快捷键终止程序。于是一般ros的死循环写作
while(ros::ok())
ctrl + c终止
总结
- 使用catkin_create_pkg创建一个软件包
- 在软件包的src文件夹下创建一个节点的cpp源码文件
- 在节点的源码文件中include包含ROS的头文件
- 构建一个main函数,并在开头执行ros::init()初始化
- 构建while循环,循环条件为ros::ok()
- 在CMakeLists.txt中设置节点源码的编译规则
- 编译运行