vscode+ros开发环境搭建

亦凉 2024-03-24 20:41 170阅读 0赞

目录

介绍

前提

vscode安装

vscode插件安装

工作空间准备

打开vscode

创建catkin包

编写cpp代码

编译

运行

启动ros服务

监听话题

启动ros测试


介绍

ros开发是机器人开发中必不可少的工作,语言选择可以是c++,也可以是python。工具的话,不能像windows系统那样丰富多彩,qtcreate,visual studio,clion。因为ros环境绝大部分是在ubuntu系统之下的,所以这里就限制了只能在linux环境下使用IDE,这里就选择vscode。

前提

本文不是从无到有,从安装ros环境到搭建vscode工具,然后编写代码,编译调试,这里的前提是我们系统安装了ros-melodic-desktop-full,可以运行ros相关命令。

vscode安装

首先安装vscode,推荐使用官方地址下载,然后手动切换到国内加速器。

d83cf382ccff46bc98375eea5bc95a20.png

点击下载之后,因为官方地址下载很慢,这里直接在浏览器下载里找到下载项,拷贝下载链接,然后粘贴到浏览器地址栏,修改为国内地址。

比如:

https://az764295.vo.msecnd.net/stable/6c3e3dba23e8fadc360aed75ce363ba185c49794/code_1.81.1-1691620686_amd64.deb

https://vscode.cdn.azure.cn/stable/6c3e3dba23e8fadc360aed75ce363ba185c49794/code_1.81.1-1691620686_amd64.deb

下载的deb安装文件直接通过dpkg -i xxx.deb安装即可。

vscode插件安装

我们在插件扩展Extensions这里需要安装ros,catkin-tools两个插件。

d7e6ba5364be4b35917a7dbbae3b523e.png

工作空间准备

  1. mkdir -p roshelloworld/src
  2. cd roshelloworld/src
  3. catkin_init_workspace
  4. cd ..
  5. catkin_make

6e10fed1b2f24ab9bfabc0126e2ab946.png

注意,这里如果catkin_init_workspace命令提示没有的话,就是环境的问题,其实ros安装的时候已经有了,我们需要把它设置上,运行:

  1. echo "source /opt/ros/melodic/setup.bash" >> /etc/profile

打开vscode

  1. code .

在当前编译过的工作空间下,通过命令行打开vscode

创建catkin包

右键src->Create Catkin Package

71ef8b307dbe44a7814b527cfc4727a6.png

后续操作中,需要输入包名,依赖名,这里包名是my_test_pkg,依赖就是 roscpp,rospy,std_msgs。

之后包结构变为如下所示:

30e1e73145584f28bc3d0596d2b7ca49.png

原本的roshelloworld/src下面多了my_test_pkg,然后my_test_pkg也有src,CMakeLists.txt文件。这里的CMakeLists.txt和roshelloworld下的CMakeLists.txt作用不同,后面我们会修改my_test_pkg包下的这个CMakeLists.txt文件。

编写cpp代码

我们在my_test_pkg/src目录下新建 my_test_pkg_node.cpp,添加代码如下:

  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. #include "ros/ros.h"
  5. #include "std_msgs/String.h"
  6. using namespace std;
  7. int main(int argc, char** argv)
  8. {
  9. ros::init(argc, argv, "talker");
  10. ros::NodeHandle n;
  11. ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
  12. ros::Rate loop_rate(10);
  13. int count = 0;
  14. while(ros::ok())
  15. {
  16. std_msgs::String msg;
  17. std::stringstream ss;
  18. ss << "hello,world" << count;
  19. msg.data = ss.str();
  20. ROS_INFO("%s", msg.data.c_str());
  21. chatter_pub.publish(msg);
  22. ros::spinOnce();
  23. loop_rate.sleep();
  24. count++;
  25. }
  26. return 0;
  27. }

这段代码发布了/chatter话题,并且间隔10ms发送一次hello,world + count,后面测试的话,可以订阅/chatter话题,看收到的消息。

修改CMakeLists.txt:

  1. include_directories(
  2. include
  3. ${catkin_INCLUDE_DIRS}
  4. )
  5. add_executable(${PROJECT_NAME}_node src/my_test_pkg_node.cpp)
  6. target_link_libraries(${PROJECT_NAME}_node
  7. ${catkin_LIBRARIES}
  8. )

这些配置CMakeLists.txt都有,只需要打开对应注释即可。

编译

命令行下运行 catkin_make

4f02ab4555ea4be78f0c1f9488e13e8c.png

运行

启动ros服务

  1. roscore

监听话题

  1. rostopic echo /chatter

启动ros测试

  1. rosrun my_test_pkg my_test_pkg_node

346d286342a44008b5219ef812e9c4a3.gif

vscode+ros开发环境就介绍到这里了,我没有对代码进行调试,直接复制的别人代码。

发表评论

表情:
评论列表 (有 0 条评论,170人围观)

还没有评论,来说两句吧...

相关阅读

    相关 开发环境

    搭建开发环境可以分为两种:         第一种是项目非常简单,可能简单到只有一两个页面就可以搞定,这时候我们就直接新建一个html页面进行开发就行         第二

    相关 开发环境

    devsever contentbase是接下来要执行的本地开发环境的服务器规定服务器要在哪里获取文件 open:true.//自动打开浏览器 port 9000 第一

    相关 MBlock开发环境

    本人对STM教育有兴趣,研究了一下mblock的代码,总结了一些个人搭建修改的经验,如果有需要进一步了解的朋友,欢迎交流,QQ:690333105,验证信息:mblock