• 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
        

        在这里插入图片描述

  • 相关阅读:
    Node.js之TCP(net)
    分布式任务xxl-job调度中心安装说明
    【iOS-知乎日报第四周总结】
    数据挖掘学习——KNN(k-近邻)
    吹爆,阿里最新开源的这份Redis全栈小册,涵盖了Redis的所有操作
    HDFS学习笔记(三):HDFS 分布式文件系统原理
    【FPGA教程案例65】硬件开发板调试5——基于RS232的串口通信,由FPGA发射数据到PC
    花了20W才怠结出的短视频运营真话
    【LeetCode】191、461、190、118、268
    docker基于debian11基础环境安装libreoffice
  • 原文地址:https://blog.csdn.net/m0_49289284/article/details/139819167