第3章 ROS基础编程(1.编程工具的配置与使用)

✅博客主页:爆打维c-CSDN博客​​​​​​ 🐾

🔹分享自己学习AI/编程知识的过程 🐾

🔹我的GitHub代码仓库 https://github.com/lyy-0118

该文章是对手把手教你学ROS(万字详解)这篇博客的续写,将补全之前没讲到的知识,想系统了解ROS知识的可以去看我的ROS学习专栏,持续更新中~~~

gogogo 出发喽~


目录

[第3章 ROS基础编程](#第3章 ROS基础编程)

[3.1 编程工具的配置与使用](#3.1 编程工具的配置与使用)

[3.1.1 使用rosed编辑ROS代码](#3.1.1 使用rosed编辑ROS代码)

[1. 理解rosed](#1. 理解rosed)

[2. 配置rosed](#2. 配置rosed)

3.1.2使用VScode编译ROS代码

1.安装VScode

[2. VScode 集成ROS插件](#2. VScode 集成ROS插件)

[3. vscode的使用&基本配置](#3. vscode的使用&基本配置)

1) 创建ROS工作空间 创建ROS工作空间)

2) 启动vscode 启动vscode)

3) vscode 中编译 ros vscode 中编译 ros)

[3.1.3 创建ROS功能包](#3.1.3 创建ROS功能包)

[3.1.4 python代码的编写与执行](#3.1.4 python代码的编写与执行)

[1 python代码的编写](#1 python代码的编写)

[2 配置CMakeLists.txt](#2 配置CMakeLists.txt)

[3.1.5 C++代码的编译与执行](#3.1.5 C++代码的编译与执行)

[1 C++代码的实现](#1 C++代码的实现)

[2 配置CMakeLists.txt](#2 配置CMakeLists.txt)

[3 编译执行](#3 编译执行)


第3章 ROS基础编程

上机实践网站:ROS 机器人操作系统初级教程

rosdep是用于管理ROS package依赖项的命令行工具,用法如下:

|----------------------------|-----------------------|
| rosdep命令 | 作用 |
| rosdep check pacakge | 检查package的依赖是否满足 |
| rosdep install pacakge | 安装pacakge的依赖 |
| rosdep db | 生成和显示依赖数据库 |
| rosdep init | 初始化/etc/ros/rosdep中的源 |
| rosdep keys | 检查package的依赖是否满足 |
| rosdep update | 更新本地的rosdep数据库 |

3 .1 编程工具的配置与使用

3 .1.1 使用rosed编辑ROS代码

1. 理解 rosed

rosed是rosbash的一部分。利用它可以直接通过package名来获取到待编辑的文件而无需指定该文件的存储路径了。

使用方法:

  • rosed package_name filename

例子

  • rosed roscpp Logger.msg

这个实例展示了如何编辑roscpp package里的Logger.msg文件。

如果该实例没有运行成功,那么很有可能是你没有安装vim编辑器。请参考编辑器部分进行设置。

如果文件名在package里不是唯一的,那么会呈现出一个列表,让你选择编辑哪一个文件。

2. 配置 rosed

rosed默认的编辑器是vim。如果想要将其他的编辑器设置成默认的,你需要修改你的 ~/.zshrc 文件,增加如下语句:

  • export EDITOR=' gedit '

这将gedit设置成为默认编辑器。

注意: .zshrc文件的改变,只会在新的终端才有效。已经打开的终端不受环境变量的影响。

打开一个新的终端,看看那是否定义了EDITOR:

  • echo EDITOR

gedit

3 .1.2 使用VScode编译ROS代码

VSCode 全称 Visual Studio Code,是微软出的一款轻量级代码编辑器,免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比Diff、GIT等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持Win、Mac以及Linux。

vscode 下载:https://code.visualstudio.com/docs?start=true

历史版本下载链接:https://code.visualstudio.com/updates

1. 安装VSc ode

Visual Studio Code 在官方的微软 Apt 源仓库中可用。想要安装它,按照下面的步骤来:

1)以 sudo 用户身份运行下面的命令,更新软件包索引,并且安装依赖软件:

sudo apt update

sudo apt install software-properties-common apt-transport-https wgt

2)使用 wget 命令插入 Microsoft GPG key :

wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -

启用 Visual Studio Code 源仓库,输入:

sudo add-apt-repository "deb arch=amd64 https://packages.microsoft.com/repos/vscode stable main"

3)一旦 apt 软件源被启用,安装 Visual Studio Code 软件包:

sudo apt install code

当一个新版本被发布时,你可以通过你的桌面标准软件工具,或者在你的终端运行命令,来升级 Visual Studio Code 软件包:

sudo apt update

sudo apt upgrade

2. VS code 集成ROS插件

使用VScode开发ROS程序,需要先安装一些插件。

3. vscode 使用&基本配置
1 ) 创建ROS工作空间
  • mkdir -p xxx_ws/src (必须得有 src)
  • cd xxx_ws
  • catkin_make
2 ) 启动vscode

进入 xxx_ws 启动 vscode

  • cd xxx_ws
  • code .
3 ) vscode 中编译 ros

快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build

可以点击配置设置为默认,修改****.vscode/tasks.json文件****

cpp 复制代码
{

// 有关 tasks.json 格式的文档,请参见

    // https://go.microsoft.com/fwlink/?LinkId=733558

    "version": "2.0.0",

    "tasks": [

        {

            "label": "catkin_make:debug",   //代表提示的描述性信息

            "type": "shell",    //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令

            "command": "catkin_make",   //这个是我们需要运行的命令

            "args": [],   //如果需要在命令后面加一些后缀,可以写在这里

            "group": {"kind":"build","isDefault":true},

            "presentation": {

                "reveal": "always"    //可选always或者silence,代表是否输出信息

            },

            "problemMatcher": "$msCompile"

        }

    ]

}

3.1.3 创建ROS功能包

选定 src 右击 ---> create catkin package

设置包名 添加依赖

3 .1.4 py thon 代码的编写与执行

1 python 代码的编写
  • 功能包下新建scripts文件夹,添加python文件
python 复制代码
#!/usr/bin/env python

#coding=utf-8

import rospy # 1.导包



if __name__ == "__main__":



    rospy.init_node("Hello_Vscode_p")  # 2.初始化 ROS 节点

    rospy.loginfo("Hello VScode, 我是 Python ....")  #3.日志输出 HelloWorld
  • 添加可执行权限,在VS中,选中scripts目录,右键"在集成终端中打开"

chmod +x *.py

ll #查看权限

2 配置CMakeLists.txt

Python 配置:

python 复制代码
catkin_install_python(PROGRAMS scripts/自定义文件名.py 

  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}

)

注意:当不配置CMakeList.txt时,执行python文件抛出异常:找不到python!

编译: ctrl + shift + B

执行:在VScode中添加两个终端:

  • roscore
  • source ./devel/setup.bashs
  • rosrun 包名 节点名.py

3 .1.5 C++ 代码的编译与执行

1 C++代码的实现

功能包的 src下新建 cpp 文件

cpp 复制代码
#include "ros/ros.h"



int main(int argc, char *argv[])

{

    setlocale(LC_ALL,"");

    //执行节点初始化

    ros::init(argc,argv,"HelloVSCode");



    //输出日志

    ROS_INFO("Hello VSCode!!!哈哈哈哈哈哈哈哈哈哈");

    return 0;

}
  • PS1: 如果没有代码提示

修改 .vscode/c_cpp_properties.json

设置 "cppStandard": "c++14 "

  • PS2: main 函数的参数不可以被 const 修饰
  • PS3: 当ROS__INFO 终端输出有中文时,会出现乱码

INFO: ????????????????????????

解决办法:在函数开头加入下面代码的任意一句

setlocale(LC_CTYPE, "zh_CN.utf8");

setlocale(LC_ALL, "");

2 配置CMakeLists.txt

将Make文件关联到Make工具:

C++ 配置:

add_executable(节点名称 src/C++源文件名.cpp )

target_link_libraries(节点名称 ${catkin_LIBRARIES} )

3 编译执行

编译: ctrl + shift + B

执行:在VScode中添加两个终端:

  • roscore
  • source ./devel/setup.bash
  • rosrun 包名 节点名

3.1完~~~

大家一定要边看边动手,知识很简单但是得实践起来,不然真的很容易忘记!!

如果这篇文章对你有帮助的话,请给博主一个免费的赞鼓励一下吧~ 💓

相关推荐
Rocktech_ruixun2 小时前
机器人端侧大模型部署对主板有哪些要求?瑞迅主控板分级方案对比
人工智能·嵌入式硬件·机器人
Rocktech_ruixun4 小时前
机器人数据采集能力取决于什么?瑞迅科技RK3588/3576核心板方案深度解析
人工智能·嵌入式硬件·机器人
深念Y6 小时前
基于 NapCat 与本地 RAG 的群聊 AI 机器人方案(ARM64 部署)
人工智能·ai·机器人·node.js·自动化·情感陪伴·bot
M-Robots echo7 小时前
驱动抽象层解析:标准化硬件接口,解决机器人硬件碎片化适配难题
人工智能·机器人·ros·开源社区·m-robots
workflower7 小时前
例二:某汽车制造企业深度融合AI智能体,构建园区网络的智能运维体系
人工智能·机器学习·设计模式·机器人·云计算·汽车·制造
xwz小王子7 小时前
Science Robotics 观点探讨| 机器人是工具还是代理人?
人工智能·机器人
QYR-分析8 小时前
软爪采摘机器人加速落地,高价值果蔬采收迎来柔性自动化新机遇
大数据·机器人·自动化
7177779 小时前
开源协同底座支撑具身智能:Gitee 企业版与 AGIROS 共建机器人操作系统基础设施
机器人·gitee·开源
M-Robots echo1 天前
M-CLAW,面向具身智能的机器人任务编排开发框架
机器人·ros·鸿蒙·开源社区·m-robots
Axis tech1 天前
无标记点动作捕捉 vs 惯性动作捕捉:专业从业者需要了解这些要点
科技·机器人