ros学习笔记(二)
一 创建工作空间并进行编译
mkdir -p demo01_ws/src //-p是递归创建 cd demo01_ws/ catkin_make //编译
二 打开vscode
在工作空间下输入:
code .
三 配置编译文件
快捷键 ctrl + shift + b 调用编译,选择catkin_make:build 后面的小螺丝,用以下程序替换显示的程序,以后进行编译时,只需要ctrl + shift + b 即可
{ // 有关 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" } ] }
四 创建功能包并添加依赖项
在src上右键然后点击Create Catkin Package
写功能包名,按Enter键,添加依赖项,按enter键
五 配置c_cpp_properties.json文件
c_cpp_properties.json用于编写ros程序时,自动补全,将.json文件中的代码换成下面的代码即可
{ "configurations": [ { "browse": { "databaseFilename": "", "limitSymbolsToIncludedHeaders": true }, "includePath": [ "/opt/ros/noetic/include/**", "/usr/include/**" ], "name": "ROS", "cppStandard": "gnu++17", "intelliSenseMode": "gcc-x64", "cStandard": "c11" } ], "version": 4 }
六 创建cpp文件
在功能包下的src目录上右键新建文件,并输入文件名,按Enter键
输入一下代码,如果配置以上.json文件以后,还没代码提示,就保存一下代码,在写程序
#include "ros/ros.h" int main(int argc, char *argv[]) { setlocale(LC_ALL,"");//防止中文输出乱码 ros::init(argc,argv,"hello"); ROS_INFO("hello world,哈哈哈"); return 0; }
七 配置CMakeList.txt文件
一般原文件名和节点名保持一致
add_executable(节点名称 src/C++源文件名.cpp ) target_link_libraries(节点名称 ${catkin_LIBRARIES} )
八 编译文件
按ctrl + shift + b
九 执行
启用终端快捷键:Ctrl + ~,首先在工作空间目录下输入roscore,然后点击+号,启动另一个终端,输入以下命令
roscore//启动master核心 source ./devel/setip.bash//配置环境变量 rosrun 功能包名 节点名//执行编译的可执行文件