ROS中c++、python、vscode等基础文件配置释义

本文详细介绍了使用ROS进行C++和Python开发的工作流程,包括创建工作空间、编写和编辑源文件、配置CMakeLists.txt、编译执行及在VsCode中的设置。对于VsCode,讲解了如何配置tasks.json和c_cpp_properties.json以实现自动提示和编译,并解决了中文乱码问题。此外,还涉及了launch文件的使用,展示了如何通过launch文件启动多个ROS节点。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

1.先创建一个工作空间;
2.创建功能包
3.编辑源文件即程序文件
4.编辑配置文件
5.编译并执行


提示:以下是本篇文章正文内容,下面案例可供参考

一、总结概述C++

1.创建工作空间并初始化

mkdir -p demo01_ws/src
cd demo01_ws/src
catkin_init_workspace

cd ..
catkin_make

2.创建功能包

cd src
catkin_create_pkg helloworld roscpp rospy std_msgs

3.编辑cpp源文件

cd demo01_ws/src/helloworld/src
touch helloworld_c.cpp
//回车后双击进入写节点程序
//1.包含ros头文件
#include "ros/ros.h"

//2.编写main函数
int main(int argc, char *argv[]){
	//3.初始化节点
	ros::init(argc,argv,"hello_node");
	//4.输出日志
	ROS_INFO("hello world");
	return 0;
}

4.编辑配置文件
进入src中的功能包的Cmakelist.txt文件,修改两处:名称和链接库。

//第一处,删掉注释,替换项目名称节点(随意命名);
//修改.cpp的文件名和编辑的文档一致;
add_executable(${PROJECT_NAME}_node src/helloworld_node.cpp)
//第二处,删掉注释
target_link_libraries(${PROJECT_NAME}_node
	${catkin_LIBRARIES}
)

5.编译并执行
打开终端,cd进入工作空间,catkin_make,编译

cd demo01_ws
catkin_make
//先启动核心,单独开终端
roscore
//在工作空间目录下
source ./devel/setup.bash
rosrun helloworld project_name就是上面4随意命名的名字

小知识点: source的.bashrc文件的设置方法。

PS: source ~/工作空间/devel/setup.bash


二、总结概述Python

1-2.和上面的一部分一致,在同一工作空间下的src文件夹下的功能包中新建一个scripts文件夹,创建一个.py文件。
3.编辑.py文件

#! /usr/bin/env python
##指定解释器

#1.导包
import rospy

#2.编写主入口
if __name__=="__mian__":
	#3.初始化ROS节点
	rospy.init_node("hello_p");
	#4.输出日志
	rospy.loginfo("hello world! by python");

修改.py文件的权限:
1.右键属性,可执行文件打勾;
2.指令修改如下;

//查看权限
ll
//helloworld_p.py为.py的名称
chmod +x helloworld_p.py
//给所有的python文件加可执行权限
chmod +x *.py
ll

4.编译运行

//cd到工作空间
catkin_make
//打开一个终端
roscore
//运行文件
rosrun helloworld helloworld_p.py

三、总结概述VsCode的使用C++

1.进入vscode调试配置

//进入工作空间,打开一个终端,输入
code .
//回车进入VScode

2.快捷键Ctrl shift B,选择catkin_make:build后面的设置,对vscode/tasks.json文件进行修改。修改代码如下:

{
	"version": "2.0.0",
	"tasks": [
		{
			"label": "catkin_make:debug",//代表提示的描述性信息
			"type":"shell",//可以选择shell或者process,如果是shell代码是在shell里面运行一个命令
			"command":"catkin_make",
			"args":[],//如果需要在命令后面加一些后缀,可以写在这里
			"group":{"kind":"build","isDefault":true},
			"presentation":{
				"reveal": "always"//可选always或者silence,代表是否输出信息
			},
			"problemMatcher":"$msCompile"

			
		}
	]
}

3.对vscode/c_cpp_properties.json文件的修改。修改目的为在编写代码时可以自动提示对应代码,修改代码如下:

{
  "configurations": [
    {
      "browse": {
        "databaseFilename": "",
        "limitSymbolsToIncludedHeaders": true
      },
      "includePath": [
        "/opt/ros/noetic/include/**",
        "/usr/include/**"
      ],
      "name": "ROS",
      "intelliSenseMode": "gcc-x64",
      "compilerPath": "/usr/bin/gcc",
      "cStandard": "gnu17",
      "cppStandard": "c++17"//我的没有生成这个文件,是自己敲上的。

    }
  ],
  "version": 4
}

4.解决输出时中文乱码问题:

//解决乱码,加如下代码,是在ros初始化代码前加。
setlocale(LC_ALL,"");

四、总结概述VsCode的使用python

1.进入到功能包下,新建存放python文件的scripts文件夹,在scripts文件里新建.py的文件。
2.编写python代码如下:

#! /usr/bin/env python

#导包
import rospy
#入口
if __name__ == "__main__":
    #初始化ros节点
    rospy.init_node("hello_p")
    #输出日志
    rospy.loginfo("hello vscode! 这是python!")

3.配置CMakeLists.txt文件,在这个install附近找,上面是C++的修改配置,下面是python的修改配置。
在这里插入图片描述
4.对文件的编译运行,要注意运行时所在的不同目录下的差异

//在对应的文件夹下修改python文件权限
chmod +x *.py
//回到工作空间下编译
catkin_make
//打开新终端,打开ros核心
roscore
//刷新环境变量
source ./devel/setup.bash
//加载运行
rosrun .py的文件

5.因版本问题造成的问题解决方案说明。

//声明python解释器
#! /usr/bin/env python
//出现的现象:当不配置CMakeLists.txt  执行 python 文件抛出异常如下:
# /usr/bin/env:"python":没有那个文件或目录
//原因是当前noetic使用的是python3
//解决方法1:直接声明解释器为 Python3(不建议)
#! /usr/bin/env python3
//解决方法2:通过软链接将 python 链接到 python3(推荐)
sudo ln -s /usr/bin/python3 /usr/bin/python

五、launch文件的使用

1.在功能包下新建launch文件夹,右键新建.launch文件。编辑代码如下,然后按ctrl+ ~ 进入终端,roslaunch + 包名 + launch文件名:

<launch>
    <!-- 添加被执行的节点 -->
    <!-- 乌龟GUI -->
    <node pkg="turtlesim" type="turtlesim_node" name="turtle_GUI" />
    <node pkg="turtlesim" type="turtle_teleop_key" name="turtle_key" />
    <node pkg="hello_vscode" type="hello_vscode_c" name="hell" output="screen" />
</launch>

2.释义注解
node——包含的某个节点
pkg——功能包
type——被运行的节点文件
name——为节点命名
output——设置日志的输出目标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值