Vscode基本配置
1、创建ROS工作空间
mkdir -p workspace/src
cd workspace/
catkin_make
2、启动Vscode
cd workspace/
code .
3、在vscode中编译ros
按下快捷键ctrl + shift + B 调用编译,选择 catkin_make:build 右边的那个小齿轮,将会自动生成tasks.json文件
注:
1、生成c_cpp_properties.json文件 ---> 快捷键:ctrl + shift + P
2、打开嵌入式终端:ctrl + esc下面的那个键
3、删除一行:快捷键:ctrl + shift + K
.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"
}
]
}
4、创建ROS功能包
选定src 鼠标右击 --- > create catkin package
vscode 上方 界面出现输入栏
第一次出现:填入功能包的名字 --- 这里我把自己的功能包设置为 hello_world
第二次出现:填写依赖 --- roscpp rospy std_msgs
5.1、在功能包下的src 右击新建cpp文件
# include "ros/ros.h"
int main(int argc, char *argv[])
{
//解决输出中文乱码 问题
setlocale(LC_ALL, "");
//初始化ros节点
ros::init(argc, argv, "node");
ROS_INFO("Hello world");
return 0;
}
5.2、Python实现
#! /usr/bin/env python #这行代码是声明python解释器
import rospy
if __name__ == "__main__":
rospy.init_node("hello_p")
rospy.loginfo("Hello world -- 这是python")
右击scripts文件夹,选定在集成终端中打开
1)输入chmod +x *.py(这行命令意思:给所有的python添加可执行权限)
6、配置CMakeList.txt
C++配置:
add_executable(节点名称 src/C++源文件名.cpp)
target_Link_libraries(节点名称
${catkin_LIBRARIES}
)
Python配置:
catkin_install_python(PROGRAMS scripts/自定义文件名.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
7、编译执行
C++版本:
ctrl + shift + B
打开嵌入式终端:ctrl + fn + esc(笔者自己的键盘)
启动roscore
刷新环境变量:source ./devel/setup.bash
运行可执行文件:rosrun 功能包名 程序名 -- rosrun workspace hello_world
Python版本:
紧接上面的 1)
2)ctrl + shift + B:编译文件
3)cd ~/workspace/ 回到工作空间
3)启动roscore
4)rosrun 功能包 python文件