中国大学MOOC 中科院软件所《机器人操作系统入门》笔记

一、ROS 框架+工具+功能+社区(生态)
分布式架构 节点为进程
gazbo rvis slam
控制 规划 视觉 建图
软件包管理 apt-get(包管理工具)

ROS学习软件包:1、ROS官网的ROS Wiki 有各种文档 资料 教程
2、github ros相关的源代码都在上面

软件包的两种安装方式:
1、apt-get 二进制的安装方式 安装好后可以直e接使用 不会看到软件的源代码
2、另一种是源代码包 需要编译之后才能运行

二、工程结构,就是文件系统
catkin 是编译构建系统 也就是对代码进行编译的工具
rosbuild 老旧的一套编译系统 移植性不好

workspace:
src 自己建的 放代码包pkg(下面的是catkin_make生成的)
build 放cmake缓存文件和中间文件等
devel 放生成的目标文件

pkg:
cmakelisits:规定catkin编译规则
package.xml:自我描述 (rosbuild生成的是manifest.xml)
源代码
scripts:。py。sh
include:。h
src:。cpp/。py
自定义通信格式/内容
srv:
msg:
action:
其他
launch:一次性运行多个可执行文件
config:。yaml

指令
rospack find
rospack list
roscd
rosls
rosed (vi?)
catkin_create_pkg
rosdep install

三、metabackage
虚包,方便人们安装,通过依赖装一个等于装所有

四、通讯架构
roscore 启动ros master
rosrun [pkg_name][node_name] 启动一个node
roslaunch [pkg][file.launch] 启动master和launch里所有的node
管理node 可以看到消息收发和功能
rosnode list
rosnode info [node_name]
rosnode kill [node_name]

通信方式
1、topic(string) pubulish-subscribe
异步:发布者只管发布,不管返回状态;订阅者有消息就订阅,没消息就干别的
数据类型:message 或者说是数据规范 类 数据内容 对象 “类和对象”
类型定义:pkg/.msg
rostopic list
rostopic info/echo/pub /topic_name
rosmsg list
rosmsg show /msg_name
echo:显示某topic的内容
深度图+rgb+点云????? 定位 建图 识别
kinect相机范围1m-2/3m左右
××这一讲差一点指令应用 大概最后几分钟

2、service request-reply
同步:提供一个服务 client调用服务才会计算 不调用就不执行
远程过程调用RPC 偶尔需要的任务用service
数据格式:/.srv里定义
只能嵌套msg文件 (可以自定义 要在pkg.xml里添加依赖和在cmakelist里添加一些东西)
rosservice list
rosservice info service_name
rosservice call service_name args
srv是service的类型 就像msg是topic的数据类型 一般是request — reply
rossrv list
rossrv show srv_name

调用一个service:
info这个service 可以查到是由哪个node提供的服务和数据类型srv(type)
show一下这个srv的内容 知道要用什么样的格式request reply的又是什么
再用rosservice call 这个service 参数是show里看到的request里写的(也可以用tab提示)
也就是show的作用 就是让你知道call时最后的参数args 比如
$ rosservice call /gazebo/delete_light sun

3、parameter service
参数服务器 存的是字典 key对应的value 一些不怎么改动的配置参数可以放在这里面
rosparam list
rosparam get param_key
rosparam set param_key param_value
rosparam dump file_name
rosparam load file_name
rosparam delete param_key
get相当于info
dump 保存参数到文件 load 从文件读取参数 参数都是yaml格式的
launch文件里也涉及参数的读写 param设定标签后交给参数服务器维护 rosparam读取yaml格式的文件 相当于rosparam load
还一种是API里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目錄 前言 第一章 ROS简介 机器人时代的到来 ROS发展历程 什么是ROS 安装ROS 安装ROS-Academy-for-Beginners教学包 二进制与源码包 安装RoboWare Studio 单元测试一 第二章 ROS文件系统 Catkin编译系统 Catkin工作空间 Package软件包 CMakeLists.txt package.xml Metapacakge软件元包 其他常见文件类型 单元测试二 第三章 ROS通信架构(一) Node & Master Launch文件 Topic Msg 常见msg类型 单元测试三 第四章 ROS通信架构(二) Service Srv Parameter server 11.5.4 1.5.5 1.5.6 1.5.7 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.8 1.8.1 1.8.2 1.8.3 1.8.4 1.9 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.6.1 1.9.6.2 Action 常见srv类型 常见action类型 单元测试四 第五章 常用工具 Gazebo RViz Rqt Rosbag Rosbridge moveit! 单元测试五 第六章 roscpp Client Library与roscpp 节点初始、关闭与NodeHandle Topic in roscpp Service in roscpp Param in roscpp 时钟 日志与异常 第七章 rospy Rospy与主要接口 Topic in rospy Service in rospy Param与Time 第八章 TF与URDF 认识TF TF消息 tf in c++ tf in python 统一机器人描述格式 附录:TF数学基础 三维空间刚体运动---旋转矩阵 三维空间刚体运动---欧拉角 21.9.6.3 1.10 1.10.1 1.10.2 1.10.3 1.10.4 1.11 1.11.1 1.11.2 1.11.3 1.11.4 1.12 1.12.1 1.12.2 1.12.3 1.12.4 1.12.5 1.12.6 1.12.7 1.12.8 1.12.9 1.12.10 1.12.11 1.12.12 1.12.13 1.12.14 1.12.15 1.12.16 三维空间刚体运动---四元数 第九章 SLAM 地图 Gmapping Karto Hector 第十章 Navigation Navigation Stack move_base costmap Map_server & Amcl 附录:Navigation工具包说明 amcl local_base_planner carrot_planner clear_costmap_recovery costmap_2d dwa_local_planner fake_localization global_planner map_server move_base_msg move_base move_slow_and_clear navfn nav_core robot_pose_ekf rotate_recovery 3中国大学MOOC---《机器人操作系统入门》 课 程讲义

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值