ROS学习笔记(一)

目录

  • 环境说明
  • ROS简介
  • 概念
  • 命令行工具
  • 创建工作空间与功能包
  • 参考

环境说明

系统环境:ubuntu18.04LTS
ROS版本:ROS Melodic Morenia
参考教程:古月·ROS入门21讲

ROS简介

ROS学习笔记(一)_第1张图片
ROS学习笔记(一)_第2张图片

概念

  1. 节点(执行单元)
    - Node
    - 执行具体的进程,独立运行的可执行文件

  2. 节点管理器(控制中心)
    - ROS Master

  3. 话题通信(异步通信)
    ROS学习笔记(一)_第3张图片

    • 话题(topic)
      • 发布/订阅模型
      • 同一个话题的订阅或发布者可以不唯一,一般来说发布者是一个,订阅者是多个
      • 实时性弱
      • 适用于数据传输
    • 消息(message)
      • 话题数据
      • 有定的类型和数据结构
      • .msg文件定义
  4. 服务通信(同步通信)
    ROS学习笔记(一)_第4张图片

    • 客户端/服务器 模型
    • .srv文件定义请求和应答数据结构
    • 实时性强
    • 适用于逻辑处理
  5. 参数(全局共享字典)

  6. 文件系统
    ROS学习笔记(一)_第5张图片

    • 功能包(Package)
    • 功能包清单
    • 元功能包

命令行工具

#启动小海龟,需在三个终端运行
roscore								#启动ROS Master
rosrun turtlesim turtlesim_node		#启动小海龟仿真器
rosrun turtlesim turtle_teleop_key	#启动控制节点

#查看话题列表
rosnode list

#发布话题消息,注意使用tab提示
rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist "linear:
x:0.0
y:0.0
z:0.0
angular:
x:0.0
y:0.0
z:0.0"


#发布服务请求,再生成一个小海龟
rosservice call/spawn "x:0.0
y:0.0
theta:0.0
name:'turtle2'"

#话题记录
rosbag record -a -O cmd_record
#话题复现
rosbag play cmd_record.bag

创建工作空间与功能包

  1. 工作空间ROS学习笔记(一)_第6张图片
  2. 创建工作空间
#创建工作空间
mkdir -p ~/workspace/src
cd ~/workspace/src
catkin_init_workspace

#编译工作空间
cd ~/workspace/
catkin_make

#设置环境变量
source devel/setup.bash
#检查环境变量
echo $ROS_PACKAGE_PATH
  1. 功能包
    同一个工作空间,不能有同名功能包
#创建
cd ~/workspace/src
catkin_create_pkg test_pkg std_msgs rospy roscpp

#编译
cd ~/workspace
catkin_make
source ~/workspace/devel/setup.bash

参考

古月·ROS入门21讲

你可能感兴趣的:(#,ubuntu,linux)