node是名称为simplenode的ROS2节点的std::shared_ptr。 rclcpp::Node类配备了许多别名和静态函数,以简化代码。SharedPtr是std::shared-ptr<rclcppNode>的别名, make shared是std::make shared<rclcpp::Node>的静态方法。 以下行是等效的: 代码语言:javascript 复制 std::shared_ptr<rclcpp::Node> node = std:...
ROS1中cv_bridge::CvImagePtr是boost::make_shared,这种类型显然比std::make_shared更高效,但 ROS2 中没有使用这种更高效的数据结构, 这两个变量类型在 ROS 头文件中可以查看,算是一个小细节。 cv_bridge::CvImagePtr cv_ptr = boost::make_sh...
(), "大家好,我是%s.",name.c_str()); } private: }; int main(int argc, char **argv) { rclcpp::init(argc, argv); /*产生一个node_03的节点*/ auto node = std::make_shared<Node03>("node_03"); /* 运行节点,并检测退出信号*/ rclcpp::spin(node); rclcpp::shutdown(); return ...
// 创建一个tf2_ros::TransformBroadcaster用于广播坐标变换 tf_broadcaster_ = std::make_unique<tf2_ros::TransformBroadcaster>(this); } private: rclcpp::Subscription::SharedPtr odom_subscribe_; std::unique_ptr<tf2_ros::TransformBroadcaster> tf_broadcaster_; nav_msgs::msg::Odometry odom_msg_; // ...
auto node = std::make_shared<ExampleInterfacesControl>("example_interfaces_control_01"); /*这里调用了服务,让机器人向前移动5m*/ node->move_robot(5.0); rclcpp::spin(node); rclcpp::shutdown(); return 0; } 1. 2. 3. 4. 5. 6. ...
auto node = std::make_shared<rclcpp::Node>("matrix_publisher"); // 创建发布者 auto publisher = node->create_publisher<std_msgs::msg::Float64MultiArray>("matrix_topic",10); // 定义矩阵数据 std::vector<double> data {1.0,2.0,3.0,4.0,5.0,6.0}; ...
auto result = std::make_shared<Fibonacci::Result>(); for (int i = 1; (i < goal->order) && rclcpp::ok(); ++i) { // Check if there is a cancel request if (goal_handle->is_canceling()) { result->sequence = sequence;
rclcpp::Node::SharedPtr node_handle = rclcpp::Node::make_shared("test_demo"); //2.发布者发布“rgb_image”话题 rclcpp::Publisher<sensor_msgs::msg::Image>::SharedPtr pub = node_handle->create_publisher<sensor_msgs::msg::Image>("rgb_image",10); ...
std::make_shared<ManagedScan>("managed_scan_node"); exe.add_node(lc_node->get_node_base_interface()); exe.spin(); rclcpp::shutdown(); return 0; } 通过下面的方式获取完整的lifecycle_node_demo工程。 代码语言:txt 复制 git clone https://gitee.com/shoufei/lifecycle_node_demo.git ...
rclcpp::spin(std::make_shared<HelloWorldNode>()); // 关闭ROS2 C++接口 rclcpp::shutdown(); return 0; } source install/local_setup.sh # 仅在当前终端生效 echo " source ~/dev_ws/install/local_setup.sh" >> ~/.bashrc # 所有终端均生效 ...