赞
踩
从 Ubuntu Software Apps 安装的VSCode是 snap 软件包,也就是非 VSCode 官方编译发布的安装包(销减版),存在中文输入法bug,建议在 VSCode 官网下载安装正式版本即可。注意:已提前安装好ros-noetic版本
mkdir my_workspace
cd my_workspace && mkdir src
cd src && catkin_init_workspace
cd ..
code .
打开VSCode之后,第二步安装的ROS插件就会自动识别到这个workspace,同时会出现一个文件夹.vscode里面有两个json文件:
c_cpp_properties.json
settings.json
点击菜单栏: Terminal->Configure default build task,然后生成在.vscode的文件夹出现并同时打开一个task.json文件。
将task.json 文件内容改成如下:
{ "version": "2.0.0", "tasks": [ { "label": "catkin_make", "type": "shell", "command": "catkin_make", "args": [ "-j4", "-DCMAKE_BUILD_TYPE=Release", "-DCMAKE_EXPORT_COMPILE_COMMANDS=1", "-DCMAKE_CXX_STANDARD=14" ], "problemMatcher": [ "$catkin-gcc" ], "group": { "kind": "build", "isDefault": true } } ] }
cd my_workspace/src
catkin_creat_pkg hello_vscode roscpp rospy std_msgs //包名 + 依赖
在功能包hello_vscode的src目录下建立一个hello_vscode.cpp文件
输入以下的测试代码:
#include "ros/ros.h" #include "std_msgs/String.h" int main(int argc, char *argv[]) { //初始化ros节点 ros::init(argc, argv, "hello"); //创建节点句柄 ros::NodeHandle n; ros::Publisher pub_1 = n.advertise<std_msgs::String>("talking", 100); //设置循环频率 ros::Rate loop_rate(1); int count = 0; //循环打印输出消息 while (ros::ok()) { //定义消息的内容 std_msgs::String msg; //定义字符串流 std::stringstream ss; ss << "hello vscode!" << count; msg.data = ss.str(); //输出消息 ROS_INFO("i am talking! %d times! %s", count, msg.data.c_str()); pub_1.publish(msg); //循环等待回调函数 ros::spinOnce(); //本例中没有回调函数 //按循环频率延时 loop_rate.sleep(); ++count; } return 0; }
在CMakeLists.txt下添加执行文件和链接库:
add_executable(hello src/hello_vscode.cpp) //第一个参数可以修改节点名称
target_link_libraries(hello ${catkin_LIBRARIES})
ctrl + shift+B 自动编译并在devel/lib下面生成节点执行文件 ,在workapace下build下面会生成一个compile_commands.json的文件,该文件规定了到哪里去编译什么文件。
echo "source /my_workspace/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
在VSCode软件界面下,ctrl + shift + ~打开输入命令控制台,输入:
roscore
ctrl + shift + ~新开一个控制台窗口,输入:
rosrun hello hello
注意:第一次需要输入完整包名,之后可以使用Tab快捷输入
至此,VSCode下的Ros开发环境就已经完成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。