【初学ROS,年轻人的第一个Node节点】
- 1. 工作空间设置
- 2. 创建Package
- 3. 回访依赖包
- 4. 创建Node节点
- 5. 源码编译
- 6. 运行Node节点
- 7. Node节点完善
- 8. 总结
本教程是B站阿杰视频的笔记
视频地址:https://www.bilibili.com/video/BV1nG411V7HW

超声波传感器

1. 工作空间设置
cd catkin_ws/src/
2. 创建Package
catkin_creat_pkg ssr_pkg rospy roscpp std_msgs


3. 回访依赖包



roscd roscpp
ls
code package.xml





下载包可直接运行,源文件须编译运行
4. 创建Node节点
#include <ros/ros.h>
int main(int argc, char const *argv[])
{
/* code */
return 0;
}
代码误报删除c_cpp_properties文件

5. 源码编译
#include <ros/ros.h>
int main(int argc, char const *argv[])
{
/* code */
printf("HelloWorld!\n");
return 0;
}



add_executable(chao_node src/chao_node.cpp)
ctrl+shift+b编译

6. 运行Node节点

roscore

rosrun ssr_pkg chao_node

如果报错如下操作

code ~/.bashrc

# Set ROS melodic
source /opt/ros/melodic/setup.bash
source ~/catkin_ws/devel/setup.bash
7. Node节点完善

#include <ros/ros.h>
int main(int argc, char *argv[])
{
/* code */
ros :: init ( argc, argv, "chao_node");
printf("我是个弟弟!\n");
return 0;
}

add_executable(chao_node src/chao_node.cpp)
target_link_libraries(chao_node
${catkin_LIBRARIES}
)
编译运行

保持运行,加while循环
#include <ros/ros.h>
int main(int argc, char *argv[])
{
/* code */
ros :: init ( argc, argv, "chao_node");
printf("我是个弟弟!\n");
while (true)
{
/* code */
printf("我是大哥!\n");
}
return 0;
}
编译运行

ctrl+shift+w强制关闭终端
完善退出
#include <ros/ros.h>
int main(int argc, char *argv[])
{
/* code */
ros :: init ( argc, argv, "chao_node");
printf("我是个弟弟!\n");
while (ros::ok())
{
/* code */
printf("我是大哥!\n");
}
return 0;
}

8. 总结






![PMP项目管理-[第六章]进度管理](https://img-blog.csdnimg.cn/8b74b55a984f4c52a7d06a75b0bbfcaa.png)












