栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

vscode ros(ros在vscode中使用)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

vscode ros(ros在vscode中使用)

一、ros在vscode使用配置
1、首先打开终端,创建ros工作空间

mkdir  -p xxx(自定义名称)/src(必须要有src)
cd  xxx(自定义名称)
catkin_make

2、进入 xxx(自定义名称) 启动vscode

cd  xxx(自定义名称)
code .

3、在vscode中编译ros
1)使用快捷键 ctrl + shift + B 调用编译,选择 catkin_make:build 可以点击配置设置为默认,修改.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里面运行一个命令
"command":"catkin_make",//这个是我们需要运行的命令
"args":"[]",//如果需要在命令后边加一些后缀,可以写在这里
"group":"{"kind":"build","isDefault":true}",
"presentation":{
	"reveal":"always"//可选always或者silence,代表是否输出信息
},
"problemMatcher":"$msCompile"
}
]
}

4、创建ros功能包
选定 src 右击 —》 create catkin package
设置包名 (自定义名称)
添加依赖 rospy roscpp msgs_std

5、C++实现
在功能包的src 下新建 cpp 文件

/*
在控制台输出 hello
*/
# include "ros/ros.h"

int main()
{
setlocale(LC_ALL, "");
//执行节点初始化
ros::init(argc, argv, "hello");
//输出日志
ROS_INFO("hello code!!你好");
return 0;
}

ps: 如果没有代码提示
修改 .vscode/c_cpp_properties.json
设置 “cppStandard:” c++ 17"
ps: main 函数的参数不可以被const 修饰
ps: 当ROS_INFO终端输出有中文时,会出现乱码
INFO: ???
解决办法 : 在函数开头加入下面代码任意一句

setlocale(LC_CTYPE, "zh_CN.utf8");
setlocale(CL_ALL, "");

6、Python实现
在功能包下创建 scripts 文件夹,添加 python 文件 ,并添加可执行权限

#! /usr/bin/env python
"""
pyton 版本的hello ,执行在控制台输出 hello
实现:
1.导包
2.初始化 ros 节点
3.日志输出 hello
"""

import rospy # 导包

if __name__ == "__main__":
	rospy.init_node("hello_p") # 初始化 ros节点
	rospy.loginfo("hello, 我是python") # 日志输出 

7、配置 CMakeLists.txt
1.C++配置

add_executable(节点名称
src/c++源文件名.cpp
)
target_link_libraries(节点名称
$(catkin_LIBRARIES)
)

2.Python 配置

catkin_install_python(PROGRAMS scripts/自定义文件名.py
 DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

8、编译执行
编译 ctrl + shift + B

执行和之前一致,只是可以在vscode中添加终端,首先执行
source ./devel/setup.bash

ps;
如果不编译直接执行 python 文件, 会抛出异常
1、第一行解释器声明,可以使用绝对路径定位到python3的安装路径 #!/usr/bin/python3 但是不建议
2、建议使用 #!/usr/bin/env python 但会抛出异常: /usr/bin/env:“python” 没有那个文件或目录
3、解决 1. #!/usr/bin/env python3 直接使用 python3 但存在问题:不兼容之前的ros 相关 python 实现
4、解决2. 创建一个链接符号到python命令

sudo ln -s /usr/bin/python3/usr/bin/python

9、其他IDE
ROS开发可以使用的IDE请参考

http://wiki.ros.org/IDEs
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/772847.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号