ROS2学习记录009-使用面向对象方式编写ROS2节点
学习鱼香ROS大佬操作记录一编写cpp1在d2lros2/chapt2/chapt2_ws/src/example_cpp/src下新建node_03.cpp#include rclcpp/rclcpp.hpp /* 创建一个类节点名字叫做Node03,继承自Node. */ class Node03 : public rclcpp::Node { public: // 构造函数,有一个参数为节点名称 Node03(std::string name) : Node(name) { // 打印一句 RCLCPP_INFO(this-get_logger(), 大家好我是%s.,name.c_str()); } private: }; int main(int argc, char **argv) { rclcpp::init(argc, argv); /*产生一个node_03的节点*/ auto node std::make_sharedNode03(node_03); /* 运行节点并检测退出信号*/ rclcpp::spin(node); rclcpp::shutdown(); return 0; }2修改CMakeLists.txt添加如下代码add_executable(node_03 src/node_03.cpp) ament_target_dependencies(node_03 rclcpp) install(TARGETS node_03 DESTINATION lib/${PROJECT_NAME} )3编译colcon build --packages-select example_cpp source install/setup.bash ros2 run example_cpp node_03二python编译1在d2lros2/d2lros2/chapt2/chapt2_ws/src/example_py/example_py下新建node_04.py#!/usr/bin/env python3 import rclpy from rclpy.node import Node class Node04(Node): 创建一个Node04节点并在初始化时输出一个话 def __init__(self,name): super().__init__(name) self.get_logger().info(大家好我是%s! % name) def main(argsNone): rclpy.init(argsargs) # 初始化rclpy node Node04(node_04) # 新建一个节点 rclpy.spin(node) # 保持节点运行检测是否收到退出指令CtrlC rclpy.shutdown() # 关闭rclpy2修改setup.pyentry_points{ console_scripts: [ node_02 example_py.node_02:main, node_04 example_py.node_04:main ], },3编译colcon build --packages-select example_py source install/setup.bash ros2 run example_py node_04
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2425642.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!