• VScode创建ROS项目 ROS集成开发环境



    本文章介绍了如何在Ubuntu18.04系统下搭建VScode 的ROS项目
    搭建项目分为一下几个步骤:

    1.创建ROS工作空间

    创建一个demo的ROS工作空间,并进行编译,此时home路径下会生成一个demo的工作空间,demo文件下的结构如图所示

    mkdir -p demo/src  # (必须得有 src)
    cd demo
    catkin_make
    

    在这里插入图片描述

    2.启动VScode

    进入到demo路径下,启动VScode

    cd demo
    code .
    

    3.VScode编译ROS

    使用快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build点击设置进行编译配置,会生成一个.vscode/tasks.json 文件,修改.vscode/tasks.json 文件的内容,将tasks.json的内容换为如下内容
    在这里插入图片描述
    tasks.json文件内容

    {
    	// 有关 tasks.json 格式的文档,请参见
        // https://go.microsoft.com/fwlink/?LinkId=733558
        "version": "2.0.0",
        "tasks": [
            {
                "label": "catkin_make:debug", //代表提示的描述性信息
                "type": "shell",  //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
                "command": "catkin_make",//这个是我们需要运行的命令
                "args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
                "group": {"kind":"build","isDefault":true},
                "presentation": {
                    "reveal": "always"//可选always或者silence,代表是否输出信息
                },
                "problemMatcher": "$msCompile"
            }
        ]
    }
    

    4.创建ROS功能包

    • 选定 src 右击 —> create catkin package
      在这里插入图片描述
    • 创建一个hello_world功能包
      在这里插入图片描述
    • 使用roscpp rospy std_msgs作为依赖库
      在这里插入图片描述

    hello_world功能包下的结构如图所示,功能包创建成功
    在这里插入图片描述

    C++语言开发

    • 在hello_world功能包的src文件夹下新建一个cpp文件

      #include "ros/ros.h"
      
      int main(int argc, char *argv[])
      {
          setlocale(LC_ALL,"");  // 设置可以显示中文
          //执行节点初始化
          ros::init(argc,argv,"HelloWorld");
      
          //输出日志
          ROS_INFO("Hello World!!!哈哈哈哈哈哈哈哈哈哈");
          return 0;
      }
      
      

      在这里插入图片描述

    • 配置CMakeLists.txt
      修改hello_world功能包下的CMakeLists.txt,找到add_executable和target_link_libraries,修改成如图所示,hello_world定义的是节点,可以自己随机命名,但add_executable和target_link_libraries的节点要保持一致
      在这里插入图片描述

    • 编译执行

      • 按快捷键ctrl + shift + B 编译,如何所示,说明项目没有问题
        在这里插入图片描述

      • 开启一个Terminal,运行roscore命令在这里插入图片描述

      • 再开启一个新的Terminal,执行以下命令,运行程序

        cd demo
        source ./devel/setup.bash
        rosrun hello_world hello_world # 第一个hello_world表示的是hello_world功能包,第二个hello_world表示的hello_world节点
        

        在这里插入图片描述

    Python语言开发

    • 在 hello_world 功能包新建一个 scripts 文件,在 scripts 下新建一个 hello_world_p.py 文件

      #! /usr/bin/env python3
      
      import rospy
      
      
      if __name__ == "__main__":
          
          rospy.init_node("hello_p")
      
          rospy.loginfo("hello world! this is python")
      

      在这里插入图片描述

    • 给 python 文件添加可执行权限
      进入到scripts文件夹下,执行 chmod +x hello_world_p.py 给python文件添加可执行的文件

      cd src/hello_world/scripts
      chmod +x hello_world_p.py
      
    • 配置 CMakeLists.txt
      修改hello_world功能包下的CMakeLists.txt,找到catkin_install_python,修改成如图所示:
      在这里插入图片描述

    • 编译执行

      • 按快捷键ctrl + shift + B 编译,如何所示,说明项目没有问题
        在这里插入图片描述

      • 开启一个Terminal,运行roscore命令
        在这里插入图片描述

      • 再开启一个新的Terminal,执行以下命令,运行程序

        cd deno
        source ./devel/setup.bash
        rosrun hello_world hello_world_p.py
        

        在这里插入图片描述

  • 相关阅读:
    恒生电子,快手25届实习内推
    Docker(七)—— 如何制作自己的镜像
    STM32的IAP讲解
    Mac解压缩软件BetterZip免费版注册码下载
    [附源码]计算机毕业设计JAVA同城搬家平台
    关于python pytorch 与CUDA版本相关问题
    Hadoop(三)通过C#/python实现Hadoop MapReduce
    C++单例模式终极指南,深度解析不同应用场景,学单例这一篇就够了
    【数学建模+数据处理类】国赛2021B题 乙醇偶合制备C4烯烃
    hjr-如何做双十一 618 活动的备战工作
  • 原文地址:https://blog.csdn.net/m0_49289284/article/details/139819167