• Ros2第一个节点程序调试(C++)


    Ros2第一个节点程序调试(C++

    1. 1创建功能包

    Ros2 pkg create –build-type ament-cmake 功能包名称

    Ros2 pkg create --build-type ament_cmake  --node-name 节点名称 功能包名称

    1. 2编译功能包

    Colcon bulid  编译功能包

    1. 3打开VSCODE,打开功能包目录

    1. 4编辑文件内容

    //头文件

    #include

    #include

    #include

    #include

    #include

         //ROS2的头文件

    #include "rclcpp/rclcpp.hpp"

    #include "std_msgs/msg/string.hpp"

        //两个using

    using namespace std::chrono_literals;

    using namespace std;

        //定义新的类文件,进行功能定义

    class MyPublisher :  public rclcpp::Node{

      private:

      size_t count_;    //私有变量

      rclcpp::TimerBase::SharedPtr timer_;

      rclcpp::Publisher::SharedPtr publisher_;

      public:

        MyPublisher():Node("my_publisher") //类的构造函数

      {

        count_=0;

        publisher_=this->create_publisher("topic",10);

        timer_=this->create_wall_timer(500ms,std::bind(&MyPublisher::timer_callback,this));

      }

      private:

        void timer_callback()

        {

          auto message = std_msgs::msg::String();

          message.data="Hello world!" + std::to_string(count_++);

          RCLCPP_INFO(this->get_logger(), "Publishing:'%s'",message.data.c_str());

          publisher_->publish(message);

        }

    };

    int main(int argc, char ** argv)

    {

      rclcpp::init(argc,argv);

      rclcpp::spin(std::make_shared());

      rclcpp::shutdown();

      return 0;

    }

    1. 5修改package.xml文件,添加依赖项

    rclcpp

    std_msgs

    1. 6修改CMakeLists.txt文件

    要添加find_package(rclcpp REQUIRED)

          Find_package(std_msgs REQUIRED)

    和XML文件中添加的相对应

    要添加ament_target_dependencies(cpp_node rclcpp std_msgs)告诉编译器该节点的cpp文件在编译时要依赖的系统库。其中第一个cpp_node为所创建的节点名称;后面两项是依赖的库的名称。

    1. 7编译运行

    在终端中运行colcon build命令进行编译

    1. 8运行程序     

    添加运行的路径

    .  install/setup.sh

    或者source install/setup.sh,

    运行节点 ros2 run cpp_package cpp_node  //功能包的名称和节点名称

    2. 终端中常用命令

    Mkdir    //创建目录

    Ls       //列出目录下的文件

    Clear     //清除终端运行的结果

    Ctrl+C   //结束程序运行

    Cd ..    //返回上级目录

    3. 如果新建工作区的话,就需要修改配置文件,添加相应的目录

    修改完配置文件之后,要保存相应的配置,并重启VSCODE软件,使配置生效。

  • 相关阅读:
    【深度强化学习环境配置】参考链接合集
    【云原生之kubernetes实战】在k8s环境下部署flatnotes笔记工具
    (黑马出品_03)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
    pytorch中的@的作用
    Lightroom“夏日清凉”调色思路
    基础架构之分布式配置中心
    Java中的类和对象(Java系列4)
    redis的原理和源码-Lua环境的源码解析&各命令的介绍
    基于虚拟阻抗的下垂控制——孤岛双机并联Simulink仿真
    2023最新PS(photoshop)Win+Mac免费下载安装包及教程内置AI绘画-网盘下载
  • 原文地址:https://blog.csdn.net/jh2005/article/details/126311792