• 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软件,使配置生效。

  • 相关阅读:
    Qt+树莓派4B 手动设置系统日期和时间
    淘宝APP原数据如何获取??
    ArcGIS学习(十四)OD分析
    在实施 360 反馈流程之前要考虑的 6 个问题
    K8s集群环境搭建
    从地址中如何提取或者识别街道?支持模糊地址
    深度学习 | Pytorch深度学习实践 (Chapter 1~9)
    十年数据库专家,耗尽3年心血整理的Mycat中间实战笔记,绝对干货
    Pytorch数据集读出到transform全过程
    如何查看BWP相关log
  • 原文地址:https://blog.csdn.net/jh2005/article/details/126311792