如何查看网站的死链接,商城版网站建设,迷你主机做网站,网站后台发布文章节点需要存在于功能包当中#xff0c;功能包需要存在于工作空间当中。
所以我们要想创建节点#xff0c;就要先创建一个工作空间#xff0c;再创建功能包。 第一步#xff1a;创建工作空间
mkdir -p chapt2_ws/src/
第二步#xff1a;创建example_cpp功能包#xff0c…节点需要存在于功能包当中功能包需要存在于工作空间当中。
所以我们要想创建节点就要先创建一个工作空间再创建功能包。 第一步创建工作空间
mkdir -p chapt2_ws/src/
第二步创建example_cpp功能包使用ament-cmake作为编译类型并为其添加rclcpp依赖。
cd chapt2_ws/src
ros2 pkg create example_cpp --build-type ament_cmake --dependencies rclcpp
pkg create 是创建包的意思--build-type 用来指定该包的编译类型一共有三个可选项ament_python、ament_cmake、cmake--dependencies 指的是这个功能包的依赖这里给了一个ros2的C客户端接口rclcpp 打开终端进入chapt2_ws/src运行上面的指令创建完成后的目录结构如下 .
└── src└── example_cpp├── CMakeLists.txt├── include│ └── example_cpp├── package.xml└── src5 directories, 2 files 接着我们在example_cpp/src下创建一个node_01.cpp节点创建完成后的目录结构如下 可以选择用touch命令也可以直接在vscode里创建。 开始编写代码
#include rclcpp/rclcpp.hppint main(int argc, char **argv)
{/* 初始化rclcpp */rclcpp::init(argc, argv);/*产生一个node_01的节点*/auto node std::make_sharedrclcpp::Node(node_01);// 打印一句自我介绍RCLCPP_INFO(node-get_logger(), node_01节点已经启动.);/* 运行节点并检测退出信号 CtrlC*/rclcpp::spin(node);/* 停止运行 */rclcpp::shutdown();return 0;
}修改CmakeLists
在CmakeLists.txt加入下面两行代码。目的是让编译器编译node_01这个文件
add_executable(node_01 src/node_01.cpp)
ament_target_dependencies(node_01 rclcpp)
接着在上面两行代码下面添加下面的代码。
install(TARGETSnode_01DESTINATION lib/${PROJECT_NAME}
) 编译运行节点
在 chapt2_ws下依次输入下面的命令 colcon build source install/setup.bash ros2 run example_cpp node_01 在另一终端输入 ros2 node list 可以看到显示出来的节点