ROS2编写基础节点(一)
·
一、创建python节点
1.创建文件夹chapt2,用vscode打开该文件夹;
2.打开终端“Ctrl+Shift+~”,创建python功能包demo_python_pkg:
ros2 pkg create demo_python_pkg --build-type ament_python --license Apache-2.0

3.demo_python_pkg/demo_python_pkg 目录下新建 python_node.py
编写节点:
import rclpy
from rclpy.node import Node
def main():
rclpy.init()
node = Node("python_node")
node.get_logger().info('你好python节点!')
rclpy.spin(node)
rclpy.shutdown()
4.setup.py文件中,添加配置注册python节点:执行python_node 时就相当于执demo_python_pkg 目录下 python_node 文件中的 main 函数。
'python_node = demo_python_pkg.python_node:main',

5.package.xml文件中添加依赖信息(用到了 rclpy 库)
<depend>rclpy</depend>

6.编译构建,产生了三个文件夹:build、install、log
colcon build

7.输入命令,修改环境变量
source install/setup.bash
echo $AMENT_PREFIX_PATH

8.运行节点,“Ctrl+z”停止运行节点
ros2 run demo_python_pkg python_node

二、创建C++节点
1.创建C++功能包
ros2 pkg create demo_cpp_pkg --build-type ament_cmake --license Apache-2.0

2.demo_cpp_pkg/src/创建cpp_node.cpp文件
添加快速修复
#include "rclcpp/rclcpp.hpp"
int main(int argc,char **argv)
{
rclcpp::init(argc,argv);
auto node = std::make_shared<rclcpp::Node>("cpp_node");
RCLCPP_INFO(node->get_logger(), " 你好 C++ 节点! ");
rclcpp::spin(node);
rclcpp::shutdown();
return 0;
}
/opt/ros/${ROS_DISTRO}/include/**
3.注册节点和添加依赖

4.添加依赖声明
<depend>rclcpp</depend>

5.编译、找到、运行节点
colcon build
source install/setup.bash
ros2 run demo_cpp_pkg cpp_node

三、多功能包创建
1.创建工作空间
mkdir -p chapt2_ws/src

2.将demo_cpp_pkg功能包、demo_python_pkg功能包移动到chapt2_ws/src下,并删除原来编译等产生的文件
mv demo_cpp_pkg/ chapt2_ws/src/
mv demo_python_pkg/ chapt2_ws/src/
rm -rf build/ install/ log/

3.编译产生了与工作空间chapt2_ws同级的build、install、log目录



更多推荐


所有评论(0)