【ROS】初识ROS

ROS

  • 是什么?
    • 一款开源机器人操作系统
    • 提供包括硬件抽象, 底层设备控制, 进程间的数据交互, 功能包管理, 各种工具和库
    • 实现几种不同风格的通信: 通过服务进行的同步RPC式通信, 通过主题进行的异步数据流, 参数服务器上的数据存储
    • 非实时框架

工作空间

catkin

  • catkin工作空间文件夹中, 可定义,编译,安装cantkin包
    • 工作空间中包括
    • SOURCE SPACE
      • catkin包的源码, 在此可对源码进行提取,检查,克隆将要编译的代码
      • source space的每个文件夹含1或多个catkin包
      • space应在配置,构建,安装时保持不变
      • space根部含指向CMakeLists.txt的符号链接, 文件在配置catkin工程时被CMake调用
    • BUILD SPACE
      • space是Cmake用于编译catkkin包, 保存缓存信息和其他中间文件
      • 不一定包含在工作空间内/源空间之外
    • DEVELOPMENT SPACE
      • 安装前放置已建目标的地方, 提供安装步骤之外的测试开发环境
      • 位置由CMake参数CATKIN_DEVEL_PREFIX决定, 默认<build space>/develspace
    • INSTALL SPACE
      • 编译后可被安装在install space
      • 不含于工作空间
      • CMAKE_INSTALL_PREFIX配置, 默认/usr/local
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make # 创建和编译catkin workspace

source devel/setup.bash # 将当前工作空间设置在ROS工作环境的最顶层
$ echo $ROS_PACKAGE_PATH /home/<youruser>/catkin_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks # 确保环境变量包含工作空间目录

rosbuild

  • rosws: 提供各种版本控制系统(git,svn)统一接口, 管理所有软件包的工具
    • 非自带 sudo pt-get install python-rosinstall
  • 旧版编译工具, 已被catkin替代

文件系统

  • Packages: ROS代码中的软件组织单元, 每个package包含libraries库, executables可执行文件, scripts脚本, other artifacts
  • Manifests(package.xml): 一个pakcage的说明, 定义包之间的依赖, 捕捉包的元信息(version, maintainer, license)

文件系统工具

rospack

  • 获取packages的信息
  • find: 返回package的路径
    • rospack find [package_name]
rospack find roscpp

roscd

  • rosbash套件的一部分, 改变路径到一个pckage/stack
    • roscd <package-or-stack>[/subdir]
roscd roscpp
  • 只能找到ROS_PACKAGE_PATH包含的目录
    • 查看PATH中有什么echo $ROS_PACKAGE_PATH
  • roscd log: 进入ROS存放log的地方

rosls

  • rosbash套件的一部分, 允许以名字ls
    • rosls <package-or-stack>[/subdir]
rosls roscpp_tutorials

猜你喜欢

转载自blog.csdn.net/weixin_46143152/article/details/126813270
ROS