办公问答网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 88|回复: 0

三、从零学习ros2——demo

[复制链接]

2

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-12-21 20:49:12 | 显示全部楼层 |阅读模式
可以参照博主github上的demo,与官方提供的例子略有不同;
pub

#include <iostream>
#include <string>
#include <memory>
#include "rclcpp/rclcpp.hpp"
#include "std_msgs/msg/string.hpp"

int main(int argc, char* argv[]) {
  rclcpp::init(argc, argv);

  std::shared_ptr<rclcpp::Node> node = std::make_shared<rclcpp::Node>("talker");
  std::shared_ptr<rclcpp::Publisher<std_msgs::msg::String>> publisher =
          node->create_publisher<std_msgs::msg::String>("topic", 10);
  
  rclcpp::WallRate loop_rate(10);   // 表示频率,10HZ
  auto msg = std_msgs::msg::String();
  int count = 0;
  
  while(rclcpp::ok()) {
    msg.data = "hello world: " + std::to_string(count++);
    publisher->publish(msg);
    std::cout << "talker send msg: " << msg.data << "\n";
    loop_rate.sleep();
  }
  rclcpp::shutdown();
  return 0;
}
Sub

#include <iostream>
#include <string>
#include <memory>
#include <functional>
#include "rclcpp/rclcpp.hpp"
#include "std_msgs/msg/string.hpp"

void callback(std::shared_ptr<std_msgs::msg::String> msg) {
  std::cout << "receive: " << msg->data << "\n";
}

int main(int argc, char* argv[]) {
  rclcpp::init(argc, argv);

  std::shared_ptr<rclcpp::Node> node = std::make_shared<rclcpp::Node>("listener");
  auto subscriber = node->create_subscription<std_msgs::msg::String>(
      "topic", 10, std::bind(callback, std::placeholders::_1));
  
  rclcpp::spin(node);
  rclcpp::shutdown();
  return 0;
}CMakeLists.txt

cmake_minimum_required(VERSION 3.5)

project(ros2_demo)

find_package(rclcpp)
find_package(std_msgs)

add_executable(talker talker.cc)
ament_target_dependencies(talker
  rclcpp
  std_msgs
)
add_executable(listener listener.cc)
ament_target_dependencies(listener
  rclcpp
  std_msgs
)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|办公问答网

GMT+8, 2025-3-16 14:21 , Processed in 0.115607 second(s), 61 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc. Templated By 【未来科技 www.veikei.com】设计

快速回复 返回顶部 返回列表