ROS入门极简教程

目录

 

P6:《ros是什么》

P7:《ros核心概念》

P8:《ros命令行工具的使用》

P9:《创建工作空间与功能包》

P10:《发布者Publisher的编程实现》

P11:《订阅者Subscriber的编程实现》

P12:《话题消息的定义与使用》

P16:《参数的使用与编程方法》

P19:《launch启动文件的使用方法》


P6:《ros是什么》

    ros = 通信机制+开发工具+应用功能+生态系统
    主要目标:提高在机器人开发过程中的软件复用率

P7:《ros核心概念》

    节点:        执行具体任务的进程、独立运行的可执行程序
    节点管理器:    ros master
    话题Topic、消息Message、发布publish、订阅subscribe
    服务Service、服务srv、请求Request、应答Reply
    参数服务器Parameter
    功能包
    元功能包

P8:《ros命令行工具的使用》

    rosrun:    rosrun+功能包+节点
    rqt_graph: 查看整个系统全貌
    rosnode:查看所有节点
        rosnode list 查看ros系统中所有节点
        rosnode info 查看某个节点具体信息
    rostopic:查看话题:
        rostopic list
        rostopic pub +话题名+消息结构+“具体数据”
    rosmsg:查看消息结构
        rosmsg show
    rosservice:查看服务
        rosservice list
        rosservice call
    rosbag:继续话题数据并保存
        rosbag record -a(all) -O cmd_record 记录所有的话题
        rosbag play cmd_record.bag

P9:《创建工作空间与功能包》

    创建工作空间+编译
        echo $ROS_PACKAGE_PATH
    创建功能包:catkin_create_package+功能包名+依赖包
        package.xml功能包的描述文件:版本号,功能包的名字,维护者邮箱,编译/运行所需依赖项
        CMakeLists.txt功能包的编译规则:  

P10:《发布者Publisher的编程实现》

    初始化节点
    向ros master注册节点消息
    创建消息
    发布消息

P11:《订阅者Subscriber的编程实现》

    创建初始化节点
    创建需要订阅的话题
    循环等待消息
    回调函数相应消息处理

P12:《话题消息的定义与使用》

    1.数据接口的定义 file.msg (Person.msg 自定义消息文件与语言无关)
    2.package.xml中添加功能包的依赖(动态生成程序的功能包)
        <build_depend>message_generation</build_depend>
        <exec_depend>message_runtime</exec_depend>
    3.CMakeList.txt添加编译选项
        find_package(... message_generation)
        add_message_files(FILES Person.msg)
        generate_messages(DEPENDENCIES std_msgs)
        catkin_package(... message_runtime)
        //有些代码是动态生成的。add_dependencies作用是与msg生成的.h头文件去做连接的
        add_dependencies(person_subscriber ${${PROJECT_NAME}_generate_messages_cpp) //跟自定义消息产生连接

P16:《参数的使用与编程方法》

    Parameter Server 全局字典
    rosparam参数命令行工具:(yaml文件)
        rosparam list
        rosparam get /参数名
        rosparam set /参数名 +参数值
        rosparam dump 把参数保存成文件
        rosparanm load +yaml 加载参数文件

P19:《launch启动文件的使用方法》

    launch文件,能自启动roscore命令
    <node>标签:启动节点  <node pkg="package-name" type="executable-name" name="node-name"/>
        output打印日志到终端
        respawn节点启动失败是否需要重启
        required是否必须启动
        ns:namespace 给每个节点做个命名空间
        args:输入参数
    <param>标签:加载参数到参数服务器
        设置ros系统中的参数,存储在参数服务器中
        <param name="output_frame" value="odom"/>
        加载参数文件
        <rosparam file="params.yaml" command="load" ns="params"/>
    <arg>标签:launch文件内部的局部变量,仅限于launch文件使用
        <arg name="arg-name" default="arg-value"/>
        eg:调用
            <param name="foo" value="$(arg arg-name)"/>
    <remap>标签:重映射ros计算图资源的命名
        <remap from="/turtle1/cmd_vel" to="/cmd_vel"/>
        from:原名,to:重命名之后的名
    <include>标签:包含其他launch文件
        <include file="$(dirname)/other.launch"/>

猜你喜欢

转载自blog.csdn.net/weixin_44937328/article/details/114059523