目录
0 专栏介绍
本专栏旨在通过对ROS2的系统学习,掌握ROS2底层基本分布式原理,并具有机器人建模和应用ROS2进行实际项目的开发和调试的工程能力。
🚀详情:《ROS2从入门到精通》
1 Ubuntu下安装VSCode
1.1 基本安装
步骤如下:
- 通过国内源下载VSCode
- 将压缩包解压并移动到
usr/local
目录sudomv VSCode-linux-x64 /usr/local/
- 获取运行权限:
sudochmod +x /usr/local/VSCode-linux-x64/code
- 安装VSCode,注意此处只能用普通用户权限
/usr/local/VSCode-linux-x64/code
- 创建软链接:
sudoln-s /usr/local/VSCode-linux-x64/code /usr/local/bin/vscode
之后在任意位置可通过终端输入vscode
启动软件
1.2 将VSCode添加到侧边栏
进入
application
文件夹并新建桌面文件
cd /usr/share/applications
sudovim vscode.desktop
根据应用取名
***.desktop
,该方法适用于其他应用。
在该桌面文件中添加
[Desktop Entry]Encoding=UTF-8
Name=VSCode
Comment=VSCode
Exec=/usr/local/VSCode-linux-x64/code
Icon=/usr/local/VSCode-linux-x64/resources/app/resources/linux/code.png
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;
对于其他应用,主要修改四个项目
- Name
- Comment
- Exec
- Icon
前两个随便描述,
Exec
为应用程序可执行文件的路径;
Icon
为应用程序图标的路径。
2 VSCode集成相关插件
主要包含:
- C/C++ Microsoft
- C++ Intellisense austin
- CMake Tools Microsoft
- Python Microsoft
- ROS Microsoft
3 VSCode运行ROS2环境步骤
3.1 安装编译依赖项
- 创建虚拟环境,原理可看Anaconda安装与Python虚拟环境配置保姆级图文教程(附速查字典)
conda create -n ros2 python=3.10
- 切换到虚拟环境
conda activate ros2
- 安装
colcon
构建系统pip install-U colcon-common-extensions
- 安装其他依赖项
pip install catkin_pkg numpy lark setuptools==58.2.0conda install-c conda-forge gcc=12.1.0
3.2 创建工作空间和源码空间
mkdir-p xxx_ws/src
cd xxx_ws
colcon build
3.3 启动VSCode与配置
cd xxx_ws
vscode .
新建
.vscode
目录,添加配置文件
tasks.json
,内容替换为:
{// 有关 tasks.json 格式的文档,请参见// https://go.microsoft.com/fwlink/?LinkId=733558"version":"2.0.0","tasks":[{"label":"colcon:build",//代表提示的描述性信息"type":"shell",//可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行"command":"colcon build",//这个是我们需要运行的命令"args":[],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”"group":{"kind":"build","isDefault":true},"presentation":{"reveal":"always"//可选always或者silence,代表是否输出信息},"problemMatcher":"$msCompile"}]}
即可通过快捷键
ctrl + shift + B
调用编译
编译后.vscode文件夹中会产生
c_cpp_properties.json
: 与C/C++运行头文件、库文件配置有关settings.json
: 与Python解释器有关
将
c_cpp_properties.json
内容替换为:
{"configurations":[{"browse":{"databaseFilename":"","limitSymbolsToIncludedHeaders":true},"includePath":["/opt/ros/humble/include/**","/usr/include/**","/usr/lib/**","/usr/local/include","${workspaceFolder}/**"],"name":"ROS2","defines":[],"compilerPath":"/usr/bin/g++","cStandard":"gnu17","cppStandard":"c++17","intelliSenseMode":"linux-gcc-x64"}],"version":4}
4 测试工程环境
4.1 C++版本
测试代码(暂时不用管什么意思)
#include"rclcpp/rclcpp.hpp"classHelloWorldNode:public rclcpp::Node{public:HelloWorldNode():Node("node_helloworld"){while(rclcpp::ok()){RCLCPP_INFO(get_logger(),"Hello World");sleep(1);}}};intmain(int argc,char* argv[]){
rclcpp::init(argc, argv);
rclcpp::spin(std::make_shared<HelloWorldNode>());
rclcpp::shutdown();return0;}
配置
CMakeLists.txt
和
package.xml
后
ctrl + shift + B
调用编译与测试
4.2 Python版本
测试代码(暂时不用管什么意思)
#!/usr/bin/env python3 # -*- coding: utf-8 -*-import rclpy
from rclpy.node import Node
import time
defmain(args=None):
rclpy.init(args=args)
node = Node("node_helloworld")while rclpy.ok():
node.get_logger().info("Hello World")
time.sleep(0.5)
node.destroy_node()
rclpy.shutdown()
配置
setup.cfg
、
setup.py
和
package.xml
后
ctrl + shift + B
调用编译与测试
至此完成VSCode搭建ROS2工程环境
🔥 更多精彩专栏:
《ROS从入门到精通》
《Pytorch深度学习实战》
《机器学习强基计划》
《运动规划实战精讲》
…
👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇
版权归原作者 Mr.Winter` 所有, 如有侵权,请联系我们删除。