您好,
会员登录 快速注册
退出 ( 条未读消息)
关于本站 意见反馈 首页

公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!
全部文章分类
  • 人工智能 >

  • 编程语言 >

  • WPF系列 >

  • ASP.NET系列 >

  • Linux >

  • 数据库 >

  • 嵌入式 >

  • WEB技术 >

  • PLC系列 >

  • 微服务与框架 >

  • 小宅DIY >

  • 学习资料 >

OpenCv基础 ANN车牌识别 yolov5车牌识别 指针式仪表识别 ROS系列 YOLO Halcon Detectron2 昇腾AI ChatGPT在线体验 英伟达JETSON ChatGLM ChatTTS FunASR 地平线 ByteTrack 魔搭社区 LangChain
C C# C++ Python Java Go
WPF
ASP.NET小功能 GPS定位系统-MVC GPS定位系统-VUE ASP.NET WebRTC
Linux Linux内核 Shell MakeFile
MySql SqlServer Oracle
STM8 STM32 51单片机
VUE入门 HTML JavaScript CSS layui镜像网站 ElementUi中文官网 element-plus 图标
三菱 欧姆龙 西门子 施耐德 松下 台达
IOTSharp IOTGateway ABP FRAMEWORK Docker
亚克力音响 编程仙途:智驭万法
面试题与技巧 Python入门技能树 微软C#教程
首页 编程之美 工具下载 全国就业 流量地图 文心一言
ROS系列
ROS - 介绍 ROS1-常规安装方法 ROS1-Linux下的ROS环境搭建 ROS1-ROS话题:发布者 ROS1-发布者与订阅者通讯 ROS1-服务器与客户端节点通讯 ROS1-动作服务器与客户端通讯 ROS1-发布imu和gps消息 ROS2-新建Ubuntu环境 ROS2-创建一个简单节点 ROS2-Python之消息的发布与订阅 ROS2-C++之消息的发布与订阅 ROS2-调用USB免驱摄像头 ROS2-地瓜机器人笔记 ROS2 控制小车进行矩形运动 ROS2 设置节点开机自启 ROS2 添加自定义msg ROS2 URDF建模 ROS2 Gazebo 仿真环境搭建 ROS2 XACRO建模 ROS2 在Gazebo加载机器人模型 ROS2 Carttographer安装 ROS2 配置cartographer进行建图 ROS2 Nav2导航仿真-新建工程 ROS2 Nav2导航仿真 ROS2 Nav2 API导航
ROS2-新建Ubuntu环境
ROS2-Python之消息的发布与订阅
激萌の小宅 小宅博客 ROS系列

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

ROS2-创建一个简单节点

接上一节的内容。

参考博客:ROS2中创建一个节点

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src


接下来,使用ros2 pkg create命令创建一个新的包。例如,我们将创建一个名为robotcpp和robotpy的新包:

ros2 pkg create robotcpp --build-type ament_cmake --dependencies rclcpp
ros2 pkg create robotpy  --build-type ament_python --dependencies rclpy

如下:

QQ20240923-120948.jpg


在C++中创建一个节点

1. 编写C++节点代码

首先,导航到robotcpp包的src目录:

cd ~/ros2_ws/src/robotcpp/src


创建一个名为my_robot_node.cpp的C++文件,并添加以下代码:

#include "rclcpp/rclcpp.hpp"

class MyRobotNode : public rclcpp::Node {
public:
    MyRobotNode() : Node("my_robot_node") {
        RCLCPP_INFO(this->get_logger(), "Hello, ROS 2 from C++!");
    }
};

int main(int argc, char **argv) {
    rclcpp::init(argc, argv);
    rclcpp::spin(std::make_shared<MyRobotNode>());
    rclcpp::shutdown();
    return 0;
}


2. 修改CMakeLists.txt

打开CMakeLists.txt文件,并添加以下内容以包含新的C++节点:

add_executable(my_robot_node src/my_robot_node.cpp)
ament_target_dependencies(my_robot_node rclcpp)
install(TARGETS
  my_robot_node
  DESTINATION lib/${PROJECT_NAME})

如下:

QQ20240923-125654.jpg


3. 构建包

返回到工作空间的根目录,并构建包:

cd ~/ros2_ws

colcon build

如下:

QQ20240923-130817.jpg


4. 运行C++节点

构建完成后,使用以下命令运行C++节点:

source ~/ros2_ws/install/setup.bash

ros2 run robotcpp my_robot_node


您应该会在终端中看到"Hello, ROS 2 from C++!"的输出。

QQ20240923-130903.jpg


在Python中创建一个节点

1. 编写Python节点代码

首先,导航到robotpy包的robotpy目录::

cd ~/ros2_ws/src/robotpy/robotpy

创建一个名为my_robot_node.py的Python文件,并添加以下代码:

import rclpy
from rclpy.node import Node

class MyRobotNode(Node):
    def __init__(self):
        super().__init__('my_robot_node')
        self.get_logger().info('Hello, ROS 2 from Python!')

def main(args=None):
    rclpy.init(args=args)
    node = MyRobotNode()
    rclpy.spin(node)
    node.destroy_node()
    rclpy.shutdown()

if __name__ == '__main__':
    main()


2. 修改setup.py

打开setup.py文件,并添加以下内容以包含新的Python节点:

"my_robot_node=robotpy.my_robot_node:main"

如下:

QQ20240923-131414.jpg


3. 构建包

返回到工作空间的根目录,并构建包:

cd ~/ros2_ws
colcon build

4. 运行Python节点

构建完成后,使用以下命令运行Python节点:

source ~/ros2_ws/install/setup.bash
ros2 run robotpy my_robot_node


您应该会在终端中看到"Hello, ROS 2 from Python!"的输出。

QQ20240923-131630.jpg






ROS2-新建Ubuntu环境
ROS2-Python之消息的发布与订阅

友情链接: CSDN激萌の小宅 95知识库 自考题库 罗分明个人网络博客 精益编程leanboot

小宅博客  www.bilibili996.com All Rights Reserved. 备案号: 闽ICP备2024034575号

网站经营许可证  福建省福州市 Copyright©2021-2025 版权所有

小宅博客
首页 智能家居 地图定位
公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

ROS2-创建一个简单节点

接上一节的内容。

参考博客:ROS2中创建一个节点

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src


接下来,使用ros2 pkg create命令创建一个新的包。例如,我们将创建一个名为robotcpp和robotpy的新包:

ros2 pkg create robotcpp --build-type ament_cmake --dependencies rclcpp
ros2 pkg create robotpy  --build-type ament_python --dependencies rclpy

如下:

QQ20240923-120948.jpg


在C++中创建一个节点

1. 编写C++节点代码

首先,导航到robotcpp包的src目录:

cd ~/ros2_ws/src/robotcpp/src


创建一个名为my_robot_node.cpp的C++文件,并添加以下代码:

#include "rclcpp/rclcpp.hpp"

class MyRobotNode : public rclcpp::Node {
public:
    MyRobotNode() : Node("my_robot_node") {
        RCLCPP_INFO(this->get_logger(), "Hello, ROS 2 from C++!");
    }
};

int main(int argc, char **argv) {
    rclcpp::init(argc, argv);
    rclcpp::spin(std::make_shared<MyRobotNode>());
    rclcpp::shutdown();
    return 0;
}


2. 修改CMakeLists.txt

打开CMakeLists.txt文件,并添加以下内容以包含新的C++节点:

add_executable(my_robot_node src/my_robot_node.cpp)
ament_target_dependencies(my_robot_node rclcpp)
install(TARGETS
  my_robot_node
  DESTINATION lib/${PROJECT_NAME})

如下:

QQ20240923-125654.jpg


3. 构建包

返回到工作空间的根目录,并构建包:

cd ~/ros2_ws

colcon build

如下:

QQ20240923-130817.jpg


4. 运行C++节点

构建完成后,使用以下命令运行C++节点:

source ~/ros2_ws/install/setup.bash

ros2 run robotcpp my_robot_node


您应该会在终端中看到"Hello, ROS 2 from C++!"的输出。

QQ20240923-130903.jpg


在Python中创建一个节点

1. 编写Python节点代码

首先,导航到robotpy包的robotpy目录::

cd ~/ros2_ws/src/robotpy/robotpy

创建一个名为my_robot_node.py的Python文件,并添加以下代码:

import rclpy
from rclpy.node import Node

class MyRobotNode(Node):
    def __init__(self):
        super().__init__('my_robot_node')
        self.get_logger().info('Hello, ROS 2 from Python!')

def main(args=None):
    rclpy.init(args=args)
    node = MyRobotNode()
    rclpy.spin(node)
    node.destroy_node()
    rclpy.shutdown()

if __name__ == '__main__':
    main()


2. 修改setup.py

打开setup.py文件,并添加以下内容以包含新的Python节点:

"my_robot_node=robotpy.my_robot_node:main"

如下:

QQ20240923-131414.jpg


3. 构建包

返回到工作空间的根目录,并构建包:

cd ~/ros2_ws
colcon build

4. 运行Python节点

构建完成后,使用以下命令运行Python节点:

source ~/ros2_ws/install/setup.bash
ros2 run robotpy my_robot_node


您应该会在终端中看到"Hello, ROS 2 from Python!"的输出。

QQ20240923-131630.jpg