基于vscode的ros开发

Part1前言

ROS(机器人操作系统)是一个开源的机器人软件平台,旨在提供一套通用的工具和库,帮助开发人员创建机器人应用程序。ROS提供了用于构建机器人系统的库、工具、驱动程序、通信协议和软件包管理系统。

以下是ROS的一些主要特点和组件:

分布式计算:ROS支持分布式计算,允许多个节点(程序)在不同的计算机上运行,并通过ROS通信机制进行交互。这种分布式架构使得ROS非常适合于构建复杂的机器人系统。

软件包管理:ROS使用软件包管理系统来组织和分享代码。开发人员可以创建、安装和共享ROS软件包,以便在不同的项目中重用代码和功能。ROS社区提供了大量的开源软件包,涵盖了各种机器人应用领域。

消息传递:ROS使用基于发布-订阅模式的消息传递机制,允许不同的节点之间通过发布和订阅消息进行通信。节点可以发布消息到特定的主题(Topic),并可以订阅感兴趣的主题来接收消息。这种松耦合的通信方式使得节点之间的通信更灵活和可扩展。

服务和动作:除了消息传递,ROS还提供了服务(Service)和动作(Action)机制,允许节点提供和调用服务以及执行复杂的动作序列。服务和动作允许节点之间进行请求-响应和执行-反馈的交互。

工具支持:ROS提供了一系列的工具来辅助开发和调试机器人应用程序。这些工具包括命令行工具(如roscd、rosls、rosrun等)、可视化工具(如rviz、rqt等)以及调试工具(如rosbag、rqt_console等)。

ROS具有广泛的应用领域,包括工业机器人、服务机器人、自主驾驶车辆、无人机等。它被广泛使用于机器人研究、教育和工业应用中。ROS的开源性质和活跃的社区使得开发人员能够共享经验、解决问题和推动ROS的不断发展和改进。

本文主要研究基于ros的vscode开发。

Part2插件安装

安装ROS、catkin_tool两个插件

ab08eb58e4c8f3777d5e926a33aaa4ec.png aac15680aa89a6d9aba12833f90a1b75.png

Part3创建目录

mkdir -p ros_test/src
cd ros_test/
catkin_make

之后整个ros目录就会创建完成

365faea6fffe1feb48c5b4f15491c211.png

Part4创建功能包

1步骤一:ctrl+shift+p

输入roshello

41d76c023889f3fea817bc2f2c30c46c.png

2步骤二:添加依赖包

这里在步骤一之后,的页面输入下面的依赖包

roscpp rospy

3步骤三:添加roshello

#include <iostream>
#include <string>
#include <sstream>
using namespace std;#include "ros/ros.h"
#include "std_msgs/String.h"int main(int argc, char** argv)
{ros::init(argc, argv, "talker");ros::NodeHandle n;ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);ros::Rate loop_rate(10);int count = 0;while(ros::ok()){std_msgs::String msg;std::stringstream ss;ss << "hello world " << count;msg.data = ss.str();ROS_INFO("%s", msg.data.c_str());chatter_pub.publish(msg);ros::spinOnce();loop_rate.sleep();count++;}return 0;
}

4步骤五:配置CMakeLists

需要修改地方,其他保持默认

include_directories(include${catkin_INCLUDE_DIRS}
)
add_executable(${PROJECT_NAME}_node src/roshello_node.cpp)
target_link_libraries(${PROJECT_NAME}_node${catkin_LIBRARIES}
)

5步骤六:编译

按住Ctrl+Shift+B编译该程序,就可以看到与catkin_make一样的编译过程

6步骤七:调试节点

添加launch.json文件 需要将program里面需要调试的包进行修改 这里只需要将program修改为自己的节点名称

{"version": "0.2.0","configurations": [{"name": "ROS: Launch","type": "cppdbg","request": "launch","program": "${workspaceFolder}/devel/lib/roshello/roshello_node","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "gdb","preLaunchTask": "build","postDebugTask": "clean"}]
}

配置调试任务tasks.json 这里需要在args中将roshello修改为之前创建的包名称,其他保持默认

{"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "catkin_make","args": ["--pkg","roshello","--cmake-args","-DCMAKE_BUILD_TYPE=Debug"],"group": {"kind": "build","isDefault": true},"problemMatcher": "$catkin-gcc","presentation": {"reveal": "silent","panel": "shared"}},{"label": "clean","type": "shell","command": "catkin clean -y","presentation": {"reveal": "silent","panel": "shared"}}]
}

另外,还需要增加一下环境变量,命令如下,这样才可以编译通过 追加环境变量

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc

7vscode进行调试

运行rosmaster

roscore

订阅节点

rostopic echo /chatter

之后F5调试即可

Part5总结

本文主要记录了使用vscode进行ros开发调试的步骤。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安科瑞智能母线监控在数据中心的应用

引言&#xff1a; 近年来&#xff0c;随着母线槽在建筑及工厂的配电中越来越广泛&#xff0c;母线槽场景运用的越多&#xff0c;随着数据中心建设的快速发展和更高需求&#xff0c;智能母线系统逐渐被应用于机房的末端配电中&#xff0c;具有电流小、插接方便、智能化程度高等…

快消品行业企业如何选择适合自己的订单管理系统源码

快消品行业企业在选择适合自己的订单管理系统源码时&#xff0c;需要考虑以下五个方面&#xff1a; 首先&#xff0c;企业需要考虑订单管理系统的功能是否能够满足自身的需求。订单管理系统应该具备订单录入、订单查询、订单处理、订单跟踪、进销存管理、临期提醒等基本功能&am…

sodner 论文复现

论文&#xff1a;A Span-Based Model for Joint Overlapped and DiscontinuousNamed Entity Recognition_pepsi_w的博客-CSDN博客 因为搞这个复现的环境弄了很久才跑通&#xff0c;记录一下。 介绍一下我的环境&#xff1a;window10 cpu pycharm miniconda 1. 下载代码文件&a…

VMware15.5版本虚拟机安装Linux Centos 7系统详细步骤

1.首先准备好Centos7.6安装文件&#xff0c;安装文件可百度搜索或在阿里镜像站中下载。 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 2.新建虚拟机. 1选择自定义&#xff0c;点下一步。 2硬件兼容性选择15.x&#xff0c;&#xff0c;点下一步。 3选择稍后安装操作系统&…

Mac OS 源码编译安装Nginx

下载软件 访问地址&#xff1a; https://nginx.org 根据自己的需求下载合适的安装包 首先建个临时目录 nginx-src 并下载所需软件的源码进行配置 mkdir nginx-src cd nginx-src wget https://nginx.org/download/nginx-1.18.0.tar.gz wget https://ftp.pcre.org/pub/p…

On the Properties of Neural Machine Translation: Encoder–DecoderApproaches

摘要 Neural machine translation &#xff1a; 神经机器翻译。 神经机器翻译模型经常包含编码器和解码器&#xff1a;an encoder and a decoder. 编码器&#xff1a; 从一个变长输入序列中提取固定长度的表示。a fixed-length representation. 解码器&#xff1a;从表示中…

校招失败后,在小公司熬了 2 年终于进了华为,竭尽全力....

其实两年前校招的时候就往华为投了一次简历&#xff0c;结果很明显凉了&#xff0c;随后这个理想就被暂时放下了&#xff0c;但是这个种子一直埋在心里这两年除了工作以外&#xff0c;也会坚持写博客&#xff0c;也因此结识了很多优秀的小伙伴&#xff0c;从他们身上学到了特别…

数学建模学习之发动机最优生产计划模型求解

问题重述 某工厂向用户提供发动机&#xff0c;按合同规定&#xff0c;其交货数量和日期是:第一季末交 40 台第二季末交 60 台&#xff0c;第三季末交 80 台。工厂的最大生产能力为每季 100 台&#xff0c;每季的生产费用是(元)&#xff0c;此处 为该季生产发动机的台数。若工…

Ribbon 负载均衡服务调用

文章目录 1 SpringCloud Load Balance2 总结:3 Ribbon工作流程&#xff1a;4 自定义Ribbon 负载均衡算法&#xff1a;4.1 iRule接口&#xff1a;4.2 Ribbon自带的负载均衡算法&#xff1a;4.3 负载均衡算法替代&#xff1a;4.3.1、在非启动类包及子包下创建配置类4.3.2、定义4.…

如何将idea里面的项目上传到gitee仓库里面?

目录 第一步&#xff0c;在Gitee这边新建一个仓库 第二步&#xff0c;添加ssh公钥 第三步&#xff0c;将idea上面的项目上传到仓库。 第四步&#xff0c;刷新gitee这边的网页就可以看到我们上传的项目了哦。 总结 本篇文章是用来记录我是如何将idea上面的项目上传到gitee仓库…

vs2022+qt+opencv+pcl开发环境配置摸索记录

一、安装VS2022 二、安装opencv 此处我安装的是opencv452&#xff0c;可自行选择其他版本&#xff1b; 下载安装opencv链接&#xff1a; Releases - OpenCV 三、安装pcl 参考链接&#xff1a;http://t.csdn.cn/J4exj 四、安装QT6.5.1 1、官方下载地址: https://download…

redis主从配置

从redis配置&#xff1a;redis6386.conf include /data/redis/redis6380.conf #主redis配置文件路径&#xff08;这里是引用主配置文件里的配置在修改从配置&#xff09; daemonize yes #在后台启动 protected-mode no #加密保护关闭 bind 192.168.3.*** requirepas…