一、创建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目录

Logo

立足具身智能前沿赛道,致力于搭建全球化、开源化、全栈式技术交流与实践共创平台。

更多推荐