zoukankan      html  css  js  c++  java
  • ros用法

    以下适用于 ubuntu 16.04系统,因此对应着 ROS Kinetic. 另一个比较流行的版本是 ROS Melodic.
    1. 参考资料:
    http://wiki.ros.org/cn
    https://github.com/

    2. 基本概念
    ROS (Robot Operating System) 机器人操作系统,包含包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理等模块,开源,有什么功能,怎么使用

    3. 几种不同的通信方式
    (1)基于同步RPC样式通信的服务(services)机制
    (2)基于异步流媒体数据的话题(topics)机制
    (3)用于数据存储的参数服务器(Parameter Server)

    3. 安装ROS
    https://blog.csdn.net/softimite_zifeng/article/details/78632211?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-7.baidujs&dist_request_id=1619578033968_08009&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-7.baidujs


    4. 安装rqt_graph
    $ sudo apt-get install ros-kinetic-rqt-graph


    5. 创建工作空间
    $ mkdir -p ~/catkin_ws/src
    $ cd ~/catkin_ws/src
    $ catkin_init_workspace

    6.编译源文件
    $ cd ~/catkin_ws/
    $ catkin_make

    7. source添加Ros搜索的路径
    $ source devel/setup.bash

    8.修改系统环境变量文件
    $ sudo gedit ~/.bashrc
    $ source ~/catkin_ws/devel/setup.bash

    9. 验证环境变量
    $ echo $ROS_PACKAGE_PATH

    10. 案例-小海龟
    (1)新终端,初始化环境:$ roscore
    (2)新终端,打开节点:$ rosrun turtlesim turtlesim_node
    (3)新终端,打开键盘控制功能:$ rosrun turtlesim turtle_teleop_key
    (4)新终端,查看ROS节点信息:$ rosrun rqt_graph rqt_graph

    11. ros常用命令工具
    $ rostopic
    $ rosservice
    $ rosnode
    $ rosparam
    $ rosmag
    $ rossrv


    12.工作空间
    src:代码空间
    build:编译空间
    devel:开发空间
    install:安装空间


    13. 创建功能包
    $ cd ~/catkin_ws/src
    $ catkin_creat_pkg <package_name> [depend1] [depend2] [depend3]

    14. C++程序编译功能包
    $ cd ~/catkin_ws
    $ catkin_make
    $ source ~/catkin_ws/devel/setip.bash (添加到~/.bashrc后就不用运行这句话,但是需要重新打开一个终端)

    15.编写功能包
    (1)初始化ros节点名(不可重复)
    (2)创建节点句柄
    (3)创建publisher

    16.python脚本可直接执行
    $ rosrun learning_topic pose_subscriber.py

    17. 认识功能包里的文件
    (1)CMakeLists.txt 编译配置文件
    (2)include头文件库,如果需要用到自己或别人写的头文件,可放在该文件夹下
    (3)launch启动脚本文件夹,里面包含.launch文件,功能是一次性启动多个节点
    (4)package.xml清单文件,包含软件包的相关信息的描述,包括版本号,开发者信息,各软件包之间的依赖关系
    (5)src程序源码库,存放编写的cpp或者python源码文件

    18. ros基本框架
    (1)节点node
    节点是ROS机器人系统里任何操作的单元,可以理解为每一个节点可以实现一个小功能;
    节点与节点之间可以相互通信,相互协调完成工作;
    (2)话题topic
    话题是ROS里的一个通信方法,topic里包含了消息的名称,类型,内容;
    节点可以发布或者订阅某个或某几个话题;
    话题有两个重要的性质:a.话题的发布频率;b.话题的消息类型;
    (3)发布者和订阅者publisher & subscriber
    ROS里的节点node可能是发布者或者是订阅者,甚至两者都兼备;
    发布者就是发布topic的节点,订阅者就是订阅topic的节点;
    消息类型参考: http://wiki.ros.org/std_msgs

  • 相关阅读:
    Linux(CentOS6.5)下编译安装Nginx官方最新稳定版(nginx-1.10.0)
    Linux(CentOS6.5)修改系统市区被中国标准时间(北京时间)
    Linux(以CentOS6.5示例)下安装Oracle官方最新版JDK(JDK1.8)
    Linux发行版 CentOS6.5下删除分区操作
    Linux发行版 CentOS6.5下的分区操作
    Linux发行版 CentOS6.5 禁用防火墙步骤
    [置顶] drools规则引擎因为内存泄露导致的内存溢出
    架构师必读经典
    Google Chart API学习(二)
    Google Chart API学习(一)
  • 原文地址:https://www.cnblogs.com/USTBlxq/p/14738259.html
Copyright © 2011-2022 走看看