VScode创建ROS项目 ROS集成开发环境

ROS使用VScode创建项目步骤

  • 1.创建ROS工作空间
  • 2.启动VScode
  • 3.VScode编译ROS
  • 4.创建ROS功能包
  • C++语言开发
  • Python语言开发

本文章介绍了如何在Ubuntu18.04系统下搭建VScode 的ROS项目
搭建项目分为一下几个步骤:

1.创建ROS工作空间

创建一个demo的ROS工作空间,并进行编译,此时home路径下会生成一个demo的工作空间,demo文件下的结构如图所示

```powershell
mkdir -p demo/src  # (必须得有 src)
cd demo
catkin_make
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c75c6223bdf640a897a4b65348eb1e9e.png)

在这里插入图片描述

2.启动VScode

进入到demo路径下,启动VScode

```powershell
cd demo
code .
```

3.VScode编译ROS

使用快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build点击设置进行编译配置,会生成一个.vscode/tasks.json 文件,修改.vscode/tasks.json 文件的内容,将tasks.json的内容换为如下内容
在这里插入图片描述
tasks.json文件内容

```powershell
{
	// 有关 tasks.json 格式的文档,请参见
    // https://go.microsoft.com/fwlink/?LinkId=733558
    "version": "2.0.0",
    "tasks": [
        {
            "label": "catkin_make:debug", //代表提示的描述性信息
            "type": "shell",  //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
            "command": "catkin_make",//这个是我们需要运行的命令
            "args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
            "group": {"kind":"build","isDefault":true},
            "presentation": {
                "reveal": "always"//可选always或者silence,代表是否输出信息
            },
            "problemMatcher": "$msCompile"
        }
    ]
}
```

4.创建ROS功能包

  • 选定 src 右击 —> create catkin package
    在这里插入图片描述
  • 创建一个hello_world功能包
    在这里插入图片描述
  • 使用roscpp rospy std_msgs作为依赖库
    在这里插入图片描述

hello_world功能包下的结构如图所示,功能包创建成功
在这里插入图片描述

C++语言开发

  • 在hello_world功能包的src文件夹下新建一个cpp文件

    #include "ros/ros.h"
    
    int main(int argc, char *argv[])
    {
        setlocale(LC_ALL,"");  // 设置可以显示中文
        //执行节点初始化
        ros::init(argc,argv,"HelloWorld");
    
        //输出日志
        ROS_INFO("Hello World!!!哈哈哈哈哈哈哈哈哈哈");
        return 0;
    }
    
    

    在这里插入图片描述

  • 配置CMakeLists.txt
    修改hello_world功能包下的CMakeLists.txt,找到add_executable和target_link_libraries,修改成如图所示,hello_world定义的是节点,可以自己随机命名,但add_executable和target_link_libraries的节点要保持一致
    在这里插入图片描述

  • 编译执行

    • 按快捷键ctrl + shift + B 编译,如何所示,说明项目没有问题
      在这里插入图片描述

    • 开启一个Terminal,运行roscore命令在这里插入图片描述

    • 再开启一个新的Terminal,执行以下命令,运行程序

      cd demo
      source ./devel/setup.bash
      rosrun hello_world hello_world # 第一个hello_world表示的是hello_world功能包,第二个hello_world表示的hello_world节点
      

      在这里插入图片描述

Python语言开发

  • 在 hello_world 功能包新建一个 scripts 文件,在 scripts 下新建一个 hello_world_p.py 文件

    #! /usr/bin/env python3
    
    import rospy
    
    
    if __name__ == "__main__":
        
        rospy.init_node("hello_p")
    
        rospy.loginfo("hello world! this is python")
    

    在这里插入图片描述

  • 给 python 文件添加可执行权限
    进入到scripts文件夹下,执行 chmod +x hello_world_p.py 给python文件添加可执行的文件

    cd src/hello_world/scripts
    chmod +x hello_world_p.py
    
  • 配置 CMakeLists.txt
    修改hello_world功能包下的CMakeLists.txt,找到catkin_install_python,修改成如图所示:
    在这里插入图片描述

  • 编译执行

    • 按快捷键ctrl + shift + B 编译,如何所示,说明项目没有问题
      在这里插入图片描述

    • 开启一个Terminal,运行roscore命令
      在这里插入图片描述

    • 再开启一个新的Terminal,执行以下命令,运行程序

      cd deno
      source ./devel/setup.bash
      rosrun hello_world hello_world_p.py
      

      在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/731201.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【windows|009】计算机网络基础知识

🍁博主简介: 🏅云计算领域优质创作者 🏅2022年CSDN新星计划python赛道第一名 🏅2022年CSDN原力计划优质作者 ​ 🏅阿里云ACE认证高级工程师 ​ 🏅阿里云开发者社区专家博主 💊交流社…

百度地图使用任意图片旋转任意角度作为地面贴图

公司项目有个需求是要在地图上贴个航拍的照片做出类似卫星地图的效果,但是只有一张图片而且可以随时替换,也不好做瓦片地图,而且照片的角度可以任意旋转。 要实现这个功能需要解决以下问题: 百度地图怎么贴图片图片角度如何旋转 不卖关子,我先放出实现的效果,为了不涉及侵…

DN-DETR

可以看到,与 DAB-DETR 相比,最大的差别仍然在 decoder 处,主要是 query 的输入。DN-DETR 认为可以把对 offsets 的学习,看作一种对噪声学习的过程,因此,可以直接在 GT 周围生成一些 noised boxes&#xff0…

Git 使用指南(附详细解释)

Git 是一个强大的版本控制系统,广泛用于软件开发中,用于跟踪文件的更改、协作工作等。无论你是新手还是有经验的开发者,掌握 Git 都是非常有益的。这篇博客将带你了解 Git 的基本使用,希望能帮助你快速入门并有效使用 Git。 1. 创…

【重磅消息】微软开源了自家的Florence-2,处理各种视觉任务的统一模型

在人工通用智能(AGI)系统的世界里,一个重要的转变正在发生,那就是利用多功能的、预先训练好的表征,在各种应用中表现出与任务无关的适应性。这种转变始于自然语言处理(NLP)领域,现在…

创业众筹网

摘 要 创业是社会经济发展的重要动力,其在任何经济发展时期任何国家都最具活力与桃战性。然而创业的资金却是90%创业者面临的首要问题。包括积蓄不足、无不动产、负债、不知如何向银行申贷,及无法预估所创行业之总资金、成本。部分创业者虽然有心创业,但…

numpy-stl库的基本使用及notebook下的使用

numpy-stl库的基本使用及notebook下的可视化 https://pypi.org/project/numpy-stl/ 安装 conda install -c conda-forge numpy-stl引入资源 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits import mplot3d from stl import mesh读取stl文件 stl_fil…

安卓逆向案例——X酷APP逆向分析

X酷APP逆向分析 这里介绍一下两种不同的挂载证书的方法。 chls.pro/ssl无法在浏览器中下载证书是什么原因解决方法: 法一 1. 挂载系统分区为读写 使用正确的挂载点来挂载系统分区为读写: su mount -o remount,rw /dev/uijISjR/.magisk/block/syste…

河南大学24计算机考研数据,有三个学院招收计算机相关专业,都是考的408!

河南大学(Henan University),简称“河大”,是河南省人民政府与中华人民共和国教育部共建高校,国家“双一流”建设高校,入选国家“111计划”、中西部高校基础能力建设工程、卓越医生教育培养计划、卓越法律人…

Spring Boot连接Redis集群

1、问题写在前面 1.1、问题描述:Redis集群节点地址发现失败 Unable to connect to [172.17.0.4:7303]: connection timed out: /172.17.0.4:7303 1.2、解决方案: redis.conf 中添加配置 cluster-announce-ip 192.168.56.11 1.3、方案出处:…

VC++学习(5)——文本编程,插入符的初始化,图形插入符;文字始终在窗口;字符输入功能,回车换行,删除,左键定位;字体修改,字体平滑变色

目录 引出第五讲 文本编程新建项目输入线的初始化根据字体大小定义插入符大小创建图形插入符文字始终保存在窗口中CString类通过字符串资源 路径层字符输入的功能键盘输入消息鼠标左键消息保存点击位置的坐标 输入回车键的处理删除文字的实现 字符输入功能代码字体的修改模拟卡…

交叉注意力一脚踹进医学图像分割!新成果精度、效率表现SOTA

为解决传统方法的局限性,研究者们提出了将交叉注意力机制应用于医学图像分割。 交叉注意力机制能更有效地整合来自不同模态/尺度的特征,让模型同时捕捉全局和局部信息,加速学习并减少干扰。这样不仅可以提高分割的精度,还可以减少…

IMU用于飞行坐姿校正

为了提升长途飞行的舒适度并预防乘客因不良坐姿导致的身体不适,来自荷兰上海两所大学的研究团队携手开发出一种创新的“舒适穿戴”设备,专为识别飞行中的坐姿设计。 研究团队制作了两种原型设备:一种追求极致舒适,另一种为紧身设…

(vue3)引入组件标红,...has no default export 组件没有默认导出

(vue3)引入组件标红,…has no default export 组件没有默认导出 一、项目背景: 创建的vitevue3ts项目页面有标红,但程序不报错 二、原因 由于之前安装了 Vetur 插件,Vetur 默认使用 eslint-plugin-vue,并且强制 export default …

有没有屏幕悬浮翻译软件?打开窗口即可实时翻译

随着#高考结束该出发看世界了#这一话题的火热,对于不能远行的朋友,网上冲浪是了解世界的好方式。 然而,面对外语网页、资料或视频,英语不流利的小伙伴可能会有些困扰。别急,悬浮翻译软件能帮你将屏幕上的外语文字即时…

为什么伦敦金新手不能用一小时图及以下的时间周期?

刚进入伦敦金市场的投资者,一般不建议使用较低的时间周期,如1小时图或以下。不仅如此,新手或者兼职投资者会被要求使用较高的时间周期交易,如4小时图或日线图,这有什么道理呢?下面我们就来讨论一下。 新手的…

增加attention的seq2seq和transformer有什么区别

1.seq2seq是什么 seq2seq 是一个Encoder–Decoder 结构的网络,它的输入是一个序列,输出也是一个序列。Encoder 中将一个可变长度的信号序列变为固定长度的向量表达,Decoder 将这个固定长度的向量变成可变长度的目标的信号序列。   很多自然…

C# Winform 开源UI库

WinForms,作为微软.NET框架下的一个桌面应用程序开发工具,自1999年首次亮相以来,已经走过了二十多年的发展历程。它以其简单直观的拖拽式界面设计和丰富的控件库,成为了大众喜爱的入门学习编程工具。由于它是比较基础的开发工具&a…

宠物健康顾问系统的设

计 管理员账户功能包括:系统首页,个人中心,顾问管理,用户管理,健康知识管理,管理员管理,论坛管理,公告管理 顾问账户功能包括:系统首页,个人中心&#xff0…

带颜色的3D点云数据发布到ros1中(通过rviz显示)python、C++

ros中发布点云数据xyz以及带颜色的点云数据xyzrgb ros中发布点云数据xyz可以直接用python来做或者C(看个人偏好) ros中发布带颜色的点云数据xyzrgb环境1.新建ROS工作空间2.创建功能包 ros中发布点云数据xyz 可以直接用python来做或者C(看个人偏好) 在这里我们带有颜色的点云数…