ROS编程有很多编辑器,与Vim、Gedit等相比,使用VS code进行ROS编程具有两大优势:一是为ROS编程提供较好的编辑环境,二是可以轻松地实现函数查看和文件跳转。本文提供两种ROS编译方法:终端编译和VScode编译。在实际测试过程中,作者使用的系统是ubuntu20.04版本,所有指令亲测可用。
由于vscode官网不稳定,提供ubuntu版本的vscode下载链接: 链接:https://pan.baidu.com/s/1qN5E-51QKnxgQLCsV7BelA?pwd=2q4l 提取码:2q4l
一、安装插件
1、ROS
2、catkin_tool
二、环境配置
1、创建工作空间
mkdir -p ~/test_ws/src
cd ~/test_ws/src
catkin_init_workspace
cd ~/test_ws/
catkin_make
source devel/setup.bash
2、vscode打开工作空间
在文件夹下,输入code . 可以直接打开工作空间。
code .
因为安装了ROS插件,VScode会直接识别catkin环境,并且自动生成.vscode文件夹,里面保含c_cpp_properties.json、settings.json 两个文件。
c_cpp_properties.json主要是includePath参数,当有自定义头文件时,需要在其内添加。 setting.json主要是ROS使用python编程,python相关配置,以及其它配置。我这里没有做出改动。
3、创建功能包
(1)终端方法
语法:catkin_create_pkg <package_name>[depend1][depend2][depend3]
$ cd ~/catkin_ws/src
$ catkin_create_pkg test_pkg std_msgs rospy roscpp
$ cd ~/catkin_ws
$ catkin_make?
$ source ~/catkin_ws/devel/setup.bash
(2)vscode方法
在左侧资源管理器找到我们创建的工作区中的src文件夹,右键src选择create catkin package:
弹出的第一个框(package name)填写你的功能包名称,这个是自定义,我命名为test_pkg; 弹出的第二个框(dependencies)填写你用到的功能包名称,这里填roscpp rospy std_msgs;
4、创建配置json文件
(1)自动生成的json文件
c_cpp_properties.json和settings.json自动生成不需要修改。
(2)tasks.json
按下ctrl + shfit + p输入指令tasks: configure task,然后会下拉出许多,选择catkin_make: build 会自动生成tasks.json文件。
5、编写ROS节点文件进行测试
在test_pkg文件夹下src文件夹内创建helloworld.cpp 文件
int main(int argc, char *argv[])
{
//执行 ros 节点初始化
ros::init(argc,argv,"hello");
//创建 ros 节点句柄(非必须)
ros::NodeHandle n;
//控制台输出 hello world
ROS_INFO("hello world!");
return 0;
}
6、修改编译规则
编译语法:
add_executable(节点名 src/文件名)
target_link_libraries(节点名 ${catkin_LIBRARIES})
在test_pkg文件夹下CmakeLsit.txt文件内添加:
add_executable(hello src/helloworld.cpp)
target_link_libraries(hello ${catkin_LIBRARIES})
7、节点编译
(1)终端方法
catkin_make
(2)vscode方法
执行快捷键:ctrl+shift+b
8、运行ROS MASTER
(1)终端方法
roscore
(2)vscode方法
执行快捷键ctrl + shfit + p,再输入ROS:START
9、运行节点
(1)终端方法
source devel/setup.bash
rosrun test_pkg hello
(2)Vscode方法
执行快捷键ctrl + shfit + p输入ROS:Run a Ros executable, 依次输入你创建的功能包的名称以及节点名称(即编译成功后二进制文件的名称)
三、VScode快捷键说明
ctrl+shift+p:调出用于执行命令的输入框 ctrl+shift+b:编译
参考: ROS支持的IDE:http://wiki.ros.org/IDEs VS code编译ROS教程:https://marketplace.visualstudio.com/items?itemName=ms-iot.vscode-ros 博客:https://blog.csdn.net/g944468183/article/details/123759886
|