首页 > 其他分享 >2.ros2创建话题+发布消息(VScode环境搭建+编写)

2.ros2创建话题+发布消息(VScode环境搭建+编写)

时间:2024-08-24 16:25:06浏览次数:15  
标签:std VScode rclcpp topic msg my ros2 搭建

前言:这是在1.ROS2安装-创建节点的基础上进行改进的,由于ubuntu自带的nano和vim在编写的时候不是很方便,在这教大家怎么用VScode进行编写代码

1.Vscode安装

1.1 下面是Vscode的deb网盘连接,你也可以去官网下载

        官网连接:Download Visual Studio Code - Mac, Linux, Windows

        网盘链接: https://pan.baidu.com/s/1PrZ3lP_KBLUznBjDDGpU8A?pwd=sgmm 提取码: sgmm

1.2 安装

  Ubuntu 22.04安装Visual Studio Code(VS Code)_ubuntu22.04安装vscode-CSDN博客

2.下载必要的扩展包(插件)

        2.0 点击这里下载插件

        2.1 Chinese

        2.2 ROS

        2.3 Cmake

        2.4 C/C++

3.打开工作区

        3.1ctrl+k+o(打开文件夹),选择ros2_ws/src路径,点击打开,点击信任

        

3.2 右下角的提示关闭即可

4.ROS2话题创建

        4.1 添加文件,命名为  my_topic.cpp

4.2 my_topic.cpp文件编写

这里牵扯到C++的类,不了解的去网上学学

#include "rclcpp/rclcpp.hpp"
#include "std_msgs/msg/string.hpp"


class TopicPublisher01 : public rclcpp::Node
{

private:
        rclcpp::TimerBase::SharedPtr my_timer;//声明定时器指针
        rclcpp::Publisher<std_msgs::msg::String>::SharedPtr my_publisher;//声明话发布者指针

        void timer_back()
        {
            std_msgs::msg::String my_msg;// 创建消息
            my_msg.data = "Hi";

            RCLCPP_INFO(this->get_logger(),"pub:'%s'",my_msg.data.c_str());// 日志打印
            my_publisher->publish(my_msg);// 发布消息

        }

public:
    // 构造函数,有一个参数为节点名称
    TopicPublisher01(std::string name) : Node(name)
    {
        RCLCPP_INFO(this->get_logger(), "大家好,我是%s.", name.c_str());//打印一句自我介绍
        my_publisher = this->create_publisher<std_msgs::msg::String>("my_topic01",10);// 创建发布者名为:my_topic01
        my_timer = this->create_wall_timer(std::chrono::milliseconds(500),std::bind(&TopicPublisher01::timer_back,this)); // 创建定时器,500ms为周期,定时发布
    }


};



 
int main(int argc, char **argv)
{
    
    rclcpp::init(argc, argv);/* 初始化rclcpp  */
    auto node = std::make_shared<TopicPublisher01>("my_topic");/*生成名为my_topic的节点*/
 
    rclcpp::spin(node);/* 运行节点,并检测退出信号 Ctrl+C*/
    rclcpp::shutdown();/* 停止运行 */
    return 0;
}

4.3 CMakeLists.txt编写

4.3.1 最后添加以下代码

#在最后面加上以下内容
find_package(std_msgs REQUIRED)#my_topic.cpp用到了#include "std_msgs/msg/string.hpp"

add_executable(my_topic src/my_topic.cpp)#生成可执行文件my_topic.exe
ament_target_dependencies(my_topic rclcpp std_msgs)#向my_topic载入rclcpp包
 
 
#将可执行文件加入ros2可查询队列中
install(TARGETS
  my_topic
  DESTINATION lib/${PROJECT_NAME}
)

4.4 编译运行

4.4.1 回到上一级目录

source install/setup.bash    //添加路径
colcon build        //编译

4.4.2 运行

4.4.2.1 这里试试ros2的其他功能(有图例)

ros2 run my_pkg my_topic    //运行ros节点




//ros2的查看功能

ros2 node list    //查看节点

ros2 topic list    //查看话题

//ros2 topic echo /话题名称
ros2 topic echo /my_topic01    //查看话题里面的内容

标签:std,VScode,rclcpp,topic,msg,my,ros2,搭建
From: https://blog.csdn.net/2302_76761277/article/details/141499646

相关文章

  • Ros2 Moveit2 编译安装报错解决方案 - By not providing "Findgz_sim_vendor.cmake" i
    moveit_resources---stderr:gz_ros2_controlCMakeErroratCMakeLists.txt:27(find_package):Bynotproviding"Findgz_sim_vendor.cmake"inCMAKE_MODULE_PATHthisprojecthasaskedCMaketofindapackageconfigurationfileprovidedby"gz......
  • 利用DockerDesktop在Win10下搭建Gitlab
    前言之前尝试过直接通过DockerDesktop来搭建Gitlab,但是最终因为稳定性、数据安全、数据备份的问题,还是选择了在Linux服务器上搭建正式的gitlab,仅记录这样的一个过程。个人建议这里需要注意两点:1、操作系统的版本经过我个人尝试,如果是使用win10的话,建议使用1809版本以上的操作系......
  • 网络直播平台搭建,瀑布流布局完美解决方案
    网络直播平台搭建,瀑布流布局完美解决方案使用教程直接复制代码列表布局数据自己写<template><viewclass="waterfall-wrap"><viewclass="waterfall-list"><viewclass="left"><hd-list:listData="it......
  • 向量数据库Faiss的搭建与使用|Faiss|向量数据库|高效检索|机器学习|大规模数据
    目录1.Faiss概述1.1Faiss的背景与重要性1.2Faiss的基本概念与特点2.Faiss的安装与环境配置2.1环境要求2.2Faiss的安装2.3验证安装3.Faiss的基本使用3.1创建索引与添加向量3.2执行查询3.3向量的压缩与内存优化4.Faiss的高级功能与优化4.1GPU加速与多G......
  • 网站搭建
    第一步,服务器申请选择一:免费云服务器,免费虚拟主机如:阿贝云阿贝云提供了免费的云服务器和免费的云虚拟主机,可根据自己的实际应用情况选择。首先注册一个账户,然后需要支付0.3元做一个实名认证,如果实名认证成功了大概率会开通成功。如果失败了可能是服务器资源池不够,所......
  • 在Centos7上搭建EMQX服务
    一、安装Docker:安装包下载地址:Indexoflinux/static/stable/x86_64/1.1在Centos7进行安装前,可以使用以下命令查看CentOS版本。cat/etc/redhat-release1.2在CentOS7安装docker要求系统为64位、系统内核版本为3.10以上。uname-r2.1查看是否已安装docker列表......
  • 海外商城海跨境电商APP定制开发多国语音定制app源码搭建
    海外商城App的开发是一个复杂而系统的工程,‌涉及多个阶段和注意事项。‌以下是一个详细的海外商城App开发流程和注意事项:‌开发流程1.‌需求确定‌:‌明确应用程序的目标,‌确定App要解决的具体问题,‌以及面向的用户群体。‌与客户进行深入的洽谈沟通,‌了解App的开发内容......
  • 图床搭建
    图床搭建图床方案参考:我的图床方案|安知鱼(anheyu.com)搭建教程npm图床使用Github+Picgo+npm实现免费图床_npm图床-CSDN博客telegraph图床MarSeventh/CloudFlare-ImgBed:基于CloudFlare和Telegraph的免费图床,本仓库基于https://github.com/cf-pages/Telegraph-Image,是......
  • Skwalking安装搭建
    一、简介skywalking支持dubbo,SpringCloud,SpringBoot集成,代码无侵入,通信方式采用GRPC,性能较好,实现方式是java探针,支持告警,支持JVM监控,支持全局调用统计等等,功能较完善。skywalking功能比较丰富,报表统计,UI界面更加人性化SkyWalking优点是服务性能分析和链路追踪,但也有不足之处......
  • 智能电子名片小程序源码系统 人人可创建属于自己的电子名片 带完整的搭建教程
    系统概述在当今数字化时代,名片已经不再局限于传统的纸质形式。智能电子名片小程序源码系统的出现,为人们提供了一种更加便捷、高效、个性化的名片管理方式。本文将深入介绍该源码系统的系统概述和特色功能,帮助读者更好地了解这一创新工具。代码示例系统特色功能一览名片设......