✅博客主页:爆打维c-CSDN博客 🐾
🔹分享自己学习AI/编程知识的过程 🐾
🔹我的GitHub代码仓库 https://github.com/lyy-0118

该文章是对手把手教你学ROS(万字详解)这篇博客的续写,将补全之前没讲到的知识,想系统了解ROS知识的可以去看我的ROS学习专栏,持续更新中~~~

gogogo 出发喽~
目录
[第3章 ROS基础编程](#第3章 ROS基础编程)
[3.1 编程工具的配置与使用](#3.1 编程工具的配置与使用)
[3.1.1 使用rosed编辑ROS代码](#3.1.1 使用rosed编辑ROS代码)
[1. 理解rosed](#1. 理解rosed)
[2. 配置rosed](#2. 配置rosed)
[2. VScode 集成ROS插件](#2. VScode 集成ROS插件)
[3. vscode的使用&基本配置](#3. vscode的使用&基本配置)
1) 创建ROS工作空间 创建ROS工作空间)
2) 启动vscode 启动vscode)
3) vscode 中编译 ros vscode 中编译 ros)
[3.1.3 创建ROS功能包](#3.1.3 创建ROS功能包)
[3.1.4 python代码的编写与执行](#3.1.4 python代码的编写与执行)
[1 python代码的编写](#1 python代码的编写)
[2 配置CMakeLists.txt](#2 配置CMakeLists.txt)
[3.1.5 C++代码的编译与执行](#3.1.5 C++代码的编译与执行)
[1 C++代码的实现](#1 C++代码的实现)
[2 配置CMakeLists.txt](#2 配置CMakeLists.txt)
[3 编译执行](#3 编译执行)
第3章 ROS基础编程
上机实践网站:ROS 机器人操作系统初级教程
rosdep是用于管理ROS package依赖项的命令行工具,用法如下:
|----------------------------|-----------------------|
| rosdep命令 | 作用 |
| rosdep check [pacakge] | 检查package的依赖是否满足 |
| rosdep install [pacakge] | 安装pacakge的依赖 |
| rosdep db | 生成和显示依赖数据库 |
| rosdep init | 初始化/etc/ros/rosdep中的源 |
| rosdep keys | 检查package的依赖是否满足 |
| rosdep update | 更新本地的rosdep数据库 |
3 .1 编程工具的配置与使用
3 .1.1 使用rosed编辑ROS代码
1. 理解 rosed
rosed是rosbash的一部分。利用它可以直接通过package名来获取到待编辑的文件而无需指定该文件的存储路径了。
使用方法:
- rosed [package_name] [filename]
例子
- rosed roscpp Logger.msg

这个实例展示了如何编辑roscpp package里的Logger.msg文件。
如果该实例没有运行成功,那么很有可能是你没有安装vim编辑器。请参考编辑器部分进行设置。
如果文件名在package里不是唯一的,那么会呈现出一个列表,让你选择编辑哪一个文件。
2. 配置 rosed
rosed默认的编辑器是vim。如果想要将其他的编辑器设置成默认的,你需要修改你的 ~/.zshrc 文件,增加如下语句:
- export EDITOR=' gedit '
这将gedit设置成为默认编辑器。
注意: .zshrc文件的改变,只会在新的终端才有效。已经打开的终端不受环境变量的影响。
打开一个新的终端,看看那是否定义了EDITOR:
- echo EDITOR
gedit


3 .1.2 使用VScode编译ROS代码
VSCode 全称 Visual Studio Code,是微软出的一款轻量级代码编辑器,免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比Diff、GIT等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持Win、Mac以及Linux。
vscode 下载:https://code.visualstudio.com/docs?start=true
历史版本下载链接:https://code.visualstudio.com/updates
1. 安装VSc ode
Visual Studio Code 在官方的微软 Apt 源仓库中可用。想要安装它,按照下面的步骤来:
1)以 sudo 用户身份运行下面的命令,更新软件包索引,并且安装依赖软件:
sudo apt update
sudo apt install software-properties-common apt-transport-https wgt
2)使用 wget 命令插入 Microsoft GPG key :
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
启用 Visual Studio Code 源仓库,输入:
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
3)一旦 apt 软件源被启用,安装 Visual Studio Code 软件包:
sudo apt install code
当一个新版本被发布时,你可以通过你的桌面标准软件工具,或者在你的终端运行命令,来升级 Visual Studio Code 软件包:
sudo apt update
sudo apt upgrade
2. VS code 集成ROS插件
使用VScode开发ROS程序,需要先安装一些插件。

3. vscode 的 使用&基本配置
1 ) 创建ROS工作空间
- mkdir -p xxx_ws/src (必须得有 src)
- cd xxx_ws
- catkin_make
2 ) 启动vscode
进入 xxx_ws 启动 vscode
- cd xxx_ws
- code .
3 ) vscode 中编译 ros
快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build

可以点击配置设置为默认,修改****.vscode/tasks.json文件****
cpp
{
// 有关 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"
}
]
}
3.1.3 创建ROS功能包
选定 src 右击 ---> create catkin package
设置包名 添加依赖


3 .1.4 py thon 代码的编写与执行
1 python 代码的编写
- 在功能包下新建scripts文件夹,添加python文件
python
#!/usr/bin/env python
#coding=utf-8
import rospy # 1.导包
if __name__ == "__main__":
rospy.init_node("Hello_Vscode_p") # 2.初始化 ROS 节点
rospy.loginfo("Hello VScode, 我是 Python ....") #3.日志输出 HelloWorld
- 添加可执行权限,在VS中,选中scripts目录,右键"在集成终端中打开"
chmod +x *.py
ll #查看权限
2 配置CMakeLists.txt
Python 配置:
python
catkin_install_python(PROGRAMS scripts/自定义文件名.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
注意:当不配置CMakeList.txt时,执行python文件抛出异常:找不到python!
编译: ctrl + shift + B
执行:在VScode中添加两个终端:
- roscore
- source ./devel/setup.bashs
- rosrun 包名 节点名.py
3 .1.5 C++ 代码的编译与执行
1 C++代码的实现
在功能包的 src下新建 cpp 文件
cpp
#include "ros/ros.h"
int main(int argc, char *argv[])
{
setlocale(LC_ALL,"");
//执行节点初始化
ros::init(argc,argv,"HelloVSCode");
//输出日志
ROS_INFO("Hello VSCode!!!哈哈哈哈哈哈哈哈哈哈");
return 0;
}
- PS1: 如果没有代码提示
修改 .vscode/c_cpp_properties.json
设置 "cppStandard": "c++14 "
- PS2: main 函数的参数不可以被 const 修饰
- PS3: 当ROS__INFO 终端输出有中文时,会出现乱码
INFO: ????????????????????????
解决办法:在函数开头加入下面代码的任意一句
setlocale(LC_CTYPE, "zh_CN.utf8");
setlocale(LC_ALL, "");
2 配置CMakeLists.txt
将Make文件关联到Make工具:

C++ 配置:
add_executable(节点名称 src/C++源文件名.cpp )
target_link_libraries(节点名称 ${catkin_LIBRARIES} )
3 编译执行
编译: ctrl + shift + B
执行:在VScode中添加两个终端:
- roscore
- source ./devel/setup.bash
- rosrun 包名 节点名
3.1完~~~
大家一定要边看边动手,知识很简单但是得实践起来,不然真的很容易忘记!!
如果这篇文章对你有帮助的话,请给博主一个免费的赞鼓励一下吧~ 💓
