ROS中级教程

5/21/2021 ROS

# 手动创建ROS package

1.创建目录

cd ~/catkin_ws
mkdir -p src/foobar
cd src/foobar 
1
2
3

2.添加package.xml

<package>
  <name>foobar</name>
  <version>1.2.4</version>
  <description>
  This package provides foo capability.
  </description>
  <maintainer email="foobar@foo.bar.willowgarage.com">PR-foobar</maintainer>
  <license>BSD</license>

  <buildtool_depend>catkin</buildtool_depend>

  <build_depend>roscpp</build_depend>
  <build_depend>std_msgs</build_depend>

  <run_depend>roscpp</run_depend>
  <run_depend>std_msgs</run_depend>
</package>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

3.添加CMakeLists.txt

cmake_minimum_required(VERSION 2.8.3)
project(foobar)
find_package(catkin REQUIRED roscpp std_msgs)
catkin_package()
1
2
3
4

# 管理系统依赖项

rosdep 是一个能够下载并安装ROS packages所需要的系统依赖项的小工具

  • 用法:rosdep install [package]
  • 第一次使用需初始化
    sudo rosdep init
    rosdep update
    
    1
    2
  • 示例
    roscd turtlesim
    rosdep install turtlesim
      output: All required rosdeps installed successfully
    
    1
    2
    3

# 自定义消息

  • 自定义消息类型只需将 .msg 文件放到一个package的msg文件夹下即可
  • 引用和输出消息类型
    • 消息类型都被归属到与package相对应的域名空间下
    • C++
      #include <std_msgs/String.h>
      
      std_msgs::String msg;
      
      1
      2
      3
    • Python
      from std_msgs.msg import String
      
      msg = String()
      
      1
      2
      3
  • 依赖项 如果你要使用在其他package里定义的消息类型,不要忘记添加以下语句到 package.xml
    <build_depend>name_of_package_containing_custom_msg</build_depend>
    <exec_depend>name_of_package_containing_custom_msg</exec_depend>
    
    1
    2
Last Updated: 5/21/2021, 5:00:59 PM
我再没见过 像你一般的星空
Seto