当前位置: 首页 > news >正文

2. ubuntu20.04 和VS Code实现 ros的输出 (C++,Python)

本节对应赵虚左ROS书籍的1.4.2

1)创建工作空间

mkdir -p catkin_ws/src
cd catkin_ws
catkin_make

2) 终端进入VS Code

code .

3) vscoe 的基本配置

        3.1)修改.vscode/tasks.json ,修改内容如下:

{
// 有关 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"}]
}

        3.2)修改 .vsocde/c_cpp_properties.json 修改内容如下:

      "cppStandard": "c++14"-->"cppStandard": "c++17"

在vscode 的终端下 编译一下

catkin_make

4)创建功能包

        src目录下右键选中 create catkin package 

        在弹出的横框中写入功能包名 hello_ros  ,回车

        再输入依赖 roscpp rospy std_msgs

这样就新建了一个功能包了

5)在功能包的src目录下新建cpp文件,并且写入:

#include "ros/ros.h"
int main(int argc,char *argv[]){setlocale(LC_ALL,"");ros::init(argc,argv,"hello_ros_c");ROS_INFO("He 哈");return 0;
}

6) 或者在功能包下新建scripts ,在scripts目录下新建python文件,并且写入:

#! /usr/bin/env pythonimport rospyif __name__ == "__main__":rospy.init_node("hello_ros_p")rospy.loginfo("he 哈")

7) 修改功能包目录下CMakeLists.txt

        7.1) C++的修改(136行,149行)

//136行 后面为cpp文件名,前面为自定义节点名(尽量和cpp文件名一样即可)
add_executable(hello_ros src/hello_ros.cpp)//149行 hello_ros也为前面的节点名target_link_libraries(hello_ros${catkin_LIBRARIES}
)

        7.2)python的修改

//这里的scripts文件夹要创建,防止报错 
catkin_install_python(PROGRAMSscripts/hello_ros.pyDESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

8)编译运行

编译

catkin_make

新建终端打开roscore

roscore

 8.1) cpp执行 rosrun <包名> <节点名>

source ./devel/setup.bash
rosrun hello_ros hello_ros

8.2) python执行 rosrun <包名> <python文件名>

source ./deve/setup.bash
rosrun hello_ros hello_ros.py

相关文章:

  • JAVA设计模式——(1)适配器模式
  • .gitignore 可能失效的原因
  • 在 Amazon Graviton 上运行大语言模型:CPU 推理性能实测与调优指南
  • XCVU13P-2FHGA2104I Xilinx Virtex UltraScale+ FPGA
  • 基于LSTM-AutoEncoder的心电信号时间序列数据异常检测(PyTorch版)
  • 简单代码应用
  • Linux(autoDL云服务器)mamba-ssm环境安装——一次成功!
  • 【计算机网络 | 第二篇】常见的通信协议(一)
  • 【HDFS入门】HDFS数据冗余与容错机制解析:如何保障大数据高可靠存储?
  • day29 学习笔记
  • 洛谷题目:P8624 [蓝桥杯 2015 省 AB] 垒骰子 题解 (本题简)
  • linux kernel irq相关函数详解
  • 系分架构论文《论高并发场景的架构设计和开发方法》
  • 股指期货跨期套利是如何赚取价差利润的?
  • Java实现将MarkDown保留文档内容及格式输出到浏览器页面
  • 基于控制台的小车导航游戏开发详解(C++实现)
  • 嘉立创原理图、PCB常见问题
  • 10.thinkphp的响应
  • MCP协议驱动的功能纳米材料设计及其在光催化甲烷偶联中的创新应用
  • CPU Loading and Task Loading Visualization Tool
  • 深交所修订创业板指数编制方案,引入ESG负面剔除机制
  • 奔驰一季度利润降四成,受美国加征关税影响放弃全年盈利展望
  • 国际锐评:菲律宾“狐假虎威”把戏害的是谁?
  • 中国防疫队深入缅甸安置点开展灾后卫生防疫工作
  • 巴西外长维埃拉:国际形势日益复杂,金砖国家必须发挥核心作用
  • 辽宁辽阳火灾事故饭店经营者已被控制,善后处置全面展开