> 文章列表 > 【初学ROS,年轻人的第一个Node节点】

【初学ROS,年轻人的第一个Node节点】

【初学ROS,年轻人的第一个Node节点】

【初学ROS,年轻人的第一个Node节点

  • 1. 工作空间设置
  • 2. 创建Package
  • 3. 回访依赖包
  • 4. 创建Node节点
  • 5. 源码编译
  • 6. 运行Node节点
  • 7. Node节点完善
  • 8. 总结

本教程是B站阿杰视频的笔记
视频地址:https://www.bilibili.com/video/BV1nG411V7HW

【初学ROS,年轻人的第一个Node节点】
超声波传感器
【初学ROS,年轻人的第一个Node节点】

1. 工作空间设置

cd catkin_ws/src/

2. 创建Package

catkin_creat_pkg ssr_pkg rospy roscpp std_msgs

【初学ROS,年轻人的第一个Node节点】
【初学ROS,年轻人的第一个Node节点】

3. 回访依赖包

【初学ROS,年轻人的第一个Node节点】【初学ROS,年轻人的第一个Node节点】
【初学ROS,年轻人的第一个Node节点】

roscd roscpp
ls
code package.xml

【初学ROS,年轻人的第一个Node节点】【初学ROS,年轻人的第一个Node节点】
【初学ROS,年轻人的第一个Node节点】【初学ROS,年轻人的第一个Node节点】
【初学ROS,年轻人的第一个Node节点】
下载包可直接运行,源文件须编译运行

4. 创建Node节点

#include  <ros/ros.h>int main(int argc, char const *argv[])
{/* code */return 0;
}

代码误报删除c_cpp_properties文件

【初学ROS,年轻人的第一个Node节点】

5. 源码编译

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

【初学ROS,年轻人的第一个Node节点】
【初学ROS,年轻人的第一个Node节点】

【初学ROS,年轻人的第一个Node节点】

add_executable(chao_node src/chao_node.cpp)

ctrl+shift+b编译
【初学ROS,年轻人的第一个Node节点】

6. 运行Node节点

【初学ROS,年轻人的第一个Node节点】

roscore

【初学ROS,年轻人的第一个Node节点】

rosrun ssr_pkg chao_node

【初学ROS,年轻人的第一个Node节点】
如果报错如下操作

【初学ROS,年轻人的第一个Node节点】

code ~/.bashrc

【初学ROS,年轻人的第一个Node节点】

# Set ROS melodic
source /opt/ros/melodic/setup.bash
source ~/catkin_ws/devel/setup.bash

7. Node节点完善

【初学ROS,年轻人的第一个Node节点】

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

【初学ROS,年轻人的第一个Node节点】

add_executable(chao_node src/chao_node.cpp)
target_link_libraries(chao_node${catkin_LIBRARIES}
)

【初学ROS,年轻人的第一个Node节点】编译运行
【初学ROS,年轻人的第一个Node节点】
保持运行,加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;
}

编译运行
【初学ROS,年轻人的第一个Node节点】ctrl+shift+w强制关闭终端

【初学ROS,年轻人的第一个Node节点】完善退出

#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;
}

【初学ROS,年轻人的第一个Node节点】

8. 总结

【初学ROS,年轻人的第一个Node节点】