当前位置: 首页 > 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
  • 水中托举救出落水孩童后遇难,42岁退役军人高武被确认为见义勇为
  • 重磅金融政策密集发布!一文梳理这场国新办发布会
  • 央行:5月15日起下调金融机构存款准备金率0.5个百分点
  • 杨国荣︱《老子智慧八十一讲》及其他
  • 上海畅通“外转内”,外贸优品成“香饽饽”
  • 我给狗狗上课,月赚四五万