ROS学习第一章(赵虚左老师的课程)

速刷一遍ROS

通信(核心)+工具(可以仿真)+功能(调参与优化算法)+生态

松耦合:跟传感器原理无关,只关注输出格式

初始化遇到的问题:

  1. 用搜狗输入法就行,别的配置太恶心

环境搭建完成,可以跑小乌龟

ROS涉及语言为C++和python,目前选择python

  1. 先创建一个工作空间

  1. 创建一个功能包

Catkin_cre会自动补齐后面 helloworld是文件名 roscpp rospy std_msgs三个包加入

  1. 编辑源文件

进入helloworld,与src平级建一个文件夹scripts

为python文件添加可执行权限

  1. 编辑配置文件

  1. 编译并执行

在工作空间打开终端,调用catkin_make

执行的话新开一个命令行启动ros核心

再回刚才界面,调用setup.bash刷新下环境变量

上面是记事本编程,还是安装下IDE

Vscode安装完毕,没有选择python路径,usr/bin/python3

VS使用方法

在工作区目录输入code .就可以打开VSCODE

=

CTRL+SHIFT+B修改catkin_make:build

{

// 有关 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"

        }

    ]

}

配置以后按CTRL+SHIFT+B默认对整个空间进行编译

选择SRC右键Create Catkin Package

Package name:hello_vscode

依赖:rospy roscpp std_msgs

编写代码在src/hellovscode2下新建scripts文件夹

之后要给权限,scripts文件夹在终端中打开

Chmod +x *.py 给所有.py文件添加执行权限

之后修改配置文件CMake 162行CTRL+/解注释 改文件名(必须)

如果不搞解决方法:1.在解释器声明时写python3(不建议) 2.通过软链接将python链接到python3:直接在终端sudo ln -s /usr/bin/python3 /usr/bin/python

再开个终端启动roscore

CD到项目目录

Launch:

问题引出:像之前乌龟的例子,需要启动多个节点,一个一个很麻烦,官方的解决方案是使用launch文件

实现

在项目目录下新建launch文件夹以及.launch后缀的文件

pkg:包名 type:被运行的节点文件 name:为节点命名

运行这个就可以出来乌龟

这样可以执行自定义函数,如果终端要输出文本的话需要设置下output参数=screen

ROS文件系统

catkin:就是之前的demo01_ws

build:编译空间,存放缓存

devel:开发空间,存放编译后生成的目标文件

package包就是功能包,比如之前的hello

scripts存储python文件

launch文件存储.launch

package.xml

重点

CMakeLists.txt

目前要改的地方是162行使用scripts目录下的.py文件

ROS文件系统命令,较之Linux文件操作更加简洁高效

roscore:必须先启动他才能使ROS节点进行通信,它将启动ros master,ros参数服务器,rosout日志节点

rosrun包名 可执行文件名(运行指定的ROS节点)

roslaunch包名 launch文件名(执行某个包下的launch文件)

catkin_create_pkg 自定义包名 依赖包

sudo apt install xxx 安装xxx包

sudo apt purge xxx 卸载xxx包

rospack list 列出所有的功能包

rospack find 查找当前是否包含某个功能包,如果存在返回安装路径

rosls 包名 列出包名下的文件

roscd 进入某个功能包

apt serach ros-noetic-* | grep-i gamapping 搜索有没有当前版本适配的这个包

rosed 包名 文件名 直接进入功能包修改文件(终端中打q退出)

这是ROS的文件结构,他是基于存储的,即是静态的,但执行开程序之后,不同节点的关系是错综复杂的,使用rqt_graph辅助分析,他能够创建一个显示当前系统运行状态的动态的图形,可以表现不同节点的数据交换过程

调用时使用ros rqt_graph rqt_graph 前面一个是包名 后面一个是节点名

首先还是启动乌龟程序

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值