VScode配置ROS环境
冰激凌啊 人气:1准备工作
首先在VScode中安装ROS和catkin_tool插件
VScode快捷键说明:
ctrl+shift+p
:调出用于执行命令的输入框ctrl+shift+b
:编译
使用
1 创建工作空间
终端打开,在命令行:
mkdir -p ~/am_ws/src cd ~/am_ws/src catkin_init_workspace cd ~/am_ws catkin_make # 然后在~/.bashrc中设置ROS工作空间的环境变量
2 VScode打开工作空间
打开VScode,终端输入:
code .
因为安装了ROS插件,VScode会直接识别catkin环境,并且自动生成.vscode
文件夹,里面保含c_cpp_properties.json
、settings.json
两个文件。
其中:
c_cpp_properties.json
主要是includePath参数,当有自定义头文件时,需要在其内添加。setting.json
主要是ROS使用python编程,python相关配置,以及其它配置。
3 创建功能包
- 方法一:终端
# 在src文件夹下 # catkin_create_pkg 【功能包的名称】 std_msgs rospy roscpp # 如: catkin_create_pkg my_test_pkg std_msgs rospy roscpp
- 方法二:VScode中创建
在左侧资源管理器找到我们创建的工作区中的src文件夹,右键src选择create catkin package
。
- 弹出的第一个框(package name)填写你的功能包名称,这个是自定义,如my_test_pkg;
- 弹出的第二个框(dependencies)填写用到的功能包名称,如roscpp rospy std_msgs;
4 创建配置json文件
- 自动生成的json文件
c_cpp_properties.json
和settings.json
自动生成不需要修改。
tasks.json
按下ctrl + shfit + p
输入指令tasks: configure task
,然后会下拉出许多,选择catkin_make: build
会自动生成tasks.json
文件。
5 编写文件
在功能包的src
下面创建cpp或者python文件,编写节点信息、话题信息等。
注意创建的文件如果无法运行,可以右键-属性-设为可执行文件
6 修改功能包CMakeList.txt
如果是cpp文件,需要修改功能包CMakeList.txt,在其中添加以下内容:
# add_executable(节点名称 src/文件名称.cpp) add_executable(hello src/helloworld.cpp) # target_link_libraries(节点名称 ${catkin_LIBRARIES}) target_link_libraries(hello ${catkin_LIBRARIES})
7 编译
- 方法一:终端
catkin_make
- 方法二:VScode
执行快捷键:ctrl+shift+b
8 运行ROS MASTER
- 方法一:终端
roscore
方法二:VScode
执行快捷键ctrl + shfit + p, 再输入 ROS:START
9 运行节点
- 方法一:终端
source devel/setup.bash rosrun test_pkg hello
- 方法二:VScode
在这里插入代码片 ```bash 执行快捷键ctrl + shfit + p 输入ROS:Run a Ros executable 依次输入创建的功能包的名称以及节点名称(即编译成功后二进制文件的名称,注意不是文件名) ```
调试
快捷键ctrl+shift+d
,新建launch.json文件:
(每次debug不同的文件,需要修改"program"
,可选修改 "name"
,也可以定义多个name这样的结构体)
{ "version": "0.2.0", "configurations": [ { "name": "my_dxl_node", // 自定义的名称 "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/devel/lib/myDynamixel/my_dxl_node", // 需要debug的文件。注意是node名称,不是文件名 "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "catkin_make: build",//这里跟的是tasks.json文件中的定义,意在debug前进行build操作 "miDebuggerPath": "/usr/bin/gdb" } ] }
参考
关于json文件的配置,可以参考(不用特别配置就可以运行的):
关于ros debug调试相关的,可以参考:
加载全部内容