目录
4.1 创建 ROS 工作空间
mkdir -p xxx_ws/src(必须得有 src) //创建一个叫XXX_ws的文件夹,下面还有一个src文件
cd xxx_ws //打开文件
catkin_make //在catkin工作区中构建代码
示例:
4.2 启动 vscode
code .(注意:code后面有空格)
4.3 vscode 中编译 ros
快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build
点击cakin_make:build后的设置生成配置任务
更改默认配置任务代码为下面的代码
{
// 有关 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.4 创建 ROS 功能包
在src文件下鼠标右键点击create catkin package
然后再输入框内输入包名
回车后再次出现弹出输入框,输入roscpp rospy std_msgs后回车(添加依赖)
4.5 C++ 实现
在src文件下新建cpp文件
#include "ros/ros.h"
int main(int argc,char *argv[])
{
ros::init(argc,argv,"hello_c");
ROS_INFO("hello");
return 0;
}
tips:删掉整行代码 ctrl shift + k
PS1: 如果没有代码提示
修改 .vscode/c_cpp_properties.json中的"cppStandard": "c++14"为"c++17"
PS2: main 函数的参数不可以被 const 修饰
PS3: 当ROS__INFO 终端输出有中文时,会出现乱码
INFO: ????????????????????????
解决办法:在函数开头加入下面代码的任意一句
/*
setlocale(LC_CTYPE, "zh_CN.utf8");
setlocale(LC_ALL, "");
*/
#include "ros/ros.h"
int main(int argc,char *argv[])
{
//解决乱码
//setlocale(LC_ALL,"");
setlocale(LC_ALL, "");
ros::init(argc,argv,"hello_c");
ROS_INFO("hello,哈哈");
return 0;
}
4.6 python 实现
在hello_vscode包名下新建一个scripts文件夹,并在此文件夹下添加python文件
代码示例:
#! /usr/bin/env python
#导包
import rospy
#入口
if __name__ == "__main__":
#初始化ros节点
rospy.init_node("hello_p")
#输出日志
rospy.loginfo("hello vscode!,这是python!")
注意:name和main两边都是两个下划线
编写完代码后在之前新建的文件夹scripts中鼠标右键点击在集成终端中打开
在终端中输入chmod +x *.py回车在输入ll(小写L),按回车为所有python文件添加可执行文件
接下修改配置文件CMakeLists.txt(162行开始)
修改完后ctrl shift +B 编译运行源文件
然后在终端中启动roscore
回到之前添加可执行文件时的终端,用cd指令回到工作空间demo02_ws,在重新建立环境变量,最后输入ros +(包名 映射节点名称)后回车运行输出结果
4.7 配置 CMakeLists.txt
注意:要配置的CMakeLists时与src同级的文件
原文件内容
指向源文件:hello_vscode_c.cpp
映射节点名称:hello_vscode_c
修改后为:
add_executable(hello_vscode_c src/hello_vscode_c.cpp) //(映射名称(源文件名 ) src/源文
件.cpp)
target_link_libraries(hello_vscode_c //映射文件名
修改完ctrl shift +B 编译运行结果:
tips:去除注释 ctrl + /
4.8 编译执行
先添加终端
在终端中输入:roscore启动ROS
然后再新建一个终端,输入source ./devel/setup.bash(设置ROS中的环境变量)回车运行,在输入rosrun +(包名 映射节点名称)后回车运行