2021.3.13| ROS基础回顾整理

今天在Ubuntu系统上配置了VSCode+ROS的环境,装上了可以分窗口的Terminator,好用,可以分窗口打开roscore、rosrun...了。

ROS文件系统如下:

WorkSpace --- 自定义的工作空间

    |--- build:编译空间,用于存放CMake和catkin的缓存信息、配置信息和其他中间文件。

    |--- devel:开发空间,用于存放编译后生成的目标文件,包括头文件、动态&静态链接库、可执行文件等。

    |--- src: 源码

        |-- package:功能包(ROS基本单元)包含多个节点、库与配置文件,包名所有字母小写,只能由字母、数字与下划线组成

            |-- CMakeLists.txt 配置编译规则,比如源文件、依赖项、目标文件

            |-- package.xml 包信息,比如:包名、版本、作者、依赖项...(以前版本是 manifest.xml)

            |-- scripts 存储python文件

            |-- src 存储C++源文件

            |-- include 头文件

            |-- msg 消息通信格式文件

            |-- srv 服务通信格式文件

            |-- action 动作格式文件

            |-- launch 可一次性运行多个节点 

            |-- config 配置信息

        |-- CMakeLists.txt: 编译的基本配置

 一般自己写包的过程如下:

  1. 建立新的工作区,一般是xxx_ws,命令行mkdir -p 自定义空间名称/src
  2. cd 自定义空间名称
  3. catkin_make
  4. code .(这一步要求安装VSCode并配置好与ROS的环境)
  5. VSCode中选定 src 右击 ---> create catkin package,按提示输入包名和添加依赖
  6. 在功能包的 src 下新建 cpp 文件,并将自己想实现的功能编写进去
  7. 配置 CMakeLists.txt,将其中的如下注释符号#去掉,视几个.cpp就加几个,下面两个节点名称要一致
    add_executable(节点名称
      src/C++源文件名.cpp
    )
    target_link_libraries(节点名称
      ${catkin_LIBRARIES}
    )
    
  8. VSCode快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build,另外可以点击配置设置为默认,修改.vscode/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"
            }
        ]
    }
    

     

  9. 编译完后,在终端执行source ./devel/setup.bash,这步可以在VSCode中的终端执行,也可以在Terminator(ctrl+Alt+T)中执行。
  10. 最后roscore、rosrun 包名 节点名就可执行了。
  11. 注意:setlocale(LC_ALL,"");可以避免终端输出中文乱码
  12. rostopic echo "发布者名"查看publisher发出的信息。
  13. ros::spin();
  14. ros::spinOnce();
    #include <sstream>  
    std::stringstream ss; 
    int count 
     ss<<"hello --> "<<count;//拼接字符串
    ROS_INFO("........%s",ss.tr().c_str());//其中c.str()不可少,兼容c。

ROS文件系统相关命令

1.增

catkin_create_pkg 自定义包名 依赖包 === 创建新的ROS功能包

sudo apt install xxx === 安装 ROS功能包

2.删

sudo apt purge xxx ==== 删除某个功能包

3.查

rospack list === 列出所有功能包

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

roscd 包名 === 进入某个功能包

rosls 包名 === 列出某个包下的文件

apt search xxx === 搜索某个功能包

4.改

rosed 包名 文件名 === 修改功能包文件

需要安装 vim

比如:rosed turtlesim Color.msg

5.执行

5.1roscore

5.2rosrun

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

比如:rosrun turtlesim turtlesim_node

5.3roslaunch

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

 

ros计算图  rosrun rqt_graph rqt_graph

posted @ 2021-03-13 23:51  长歌弦断有谁听  阅读(238)  评论(0)    收藏  举报