百科不全书之ROS

本文介绍了ROS(Robot Operating System)的基础知识,包括ROS的框架、catkin工作空间、通信架构和常用命令。重点讲解了topic、service、msg、srv、roscpp以及如何创建和管理ROS包。此外,还提到了TF与URDF在机器人坐标变换中的作用,SLAM技术以及如何使用launch文件和rosbag进行系统启动和数据记录。
摘要由CSDN通过智能技术生成

参考链接:

ROS简介

1.最常用 ROS 2016 kinetic 长期版本,支持5年。ROS 运行在linux下的中间件=框架+工具+功能+社区。
2.框架:定好的规范,分布式架构(扩展性高),进程管理,进程间通讯,叫节点node。可以仿真和调试。
3.功能:有很多可视包。官网有软件包,还有github。

catkin:工作空间

用来组织和管理功能包的文件夹。1.mkdir -p ~/catkin_ws/src 新建文件夹 catkon_init_workspace 2.cd ~/catkin_ws/ 3.catkin_make 系统可以自动构建并生成目标文件。 注意:.cd ~/catkin_ws/ 要回到工作空间才可以 然后source ~/catkin_ws/ devel/setuo.bash 编译完成后刷新环境,这样系统才知道我们生成的可执行文件放在哪里,才可以运行。source环境 build 存放cmake&catkin缓存和中间文件 devel 目标文件 头文件,动态静态链接库,可执行文件。 package1是catkin编译的基本单位,是ros软件的基本组织形式。一个package包含多个可执行文件。最精简的结构要包含:CMakeLists.txt和package.xml。也可以放自定义通信格式:消息(msg),服务(srv),动作(action)。 CML:规定catkin的编译规则。例如:源文件,依赖项,目标文件。 pack.xml 定义pack的属性:包含,版本号,作者,依赖等 代码文件:python,c++,shell。通常在package下新建:scripts文件夹(放*.py,.sh),include(.h),src(.cpp),srv(,srv)。launch以及配置文件 launch文件,config(配置文件,*.yaml)

通信架构

计算图层:master节点管理器:启动时先注册,管理,rosout:日志输出 parameter server:参数服务器。可执行文件就是node,node是动态的,可执行文件就是静态的。node是以功能划分的。
rosrun [pkg_name][node_name]启动一个node
rosnoed list 列出当前运行的node
rosnode info[node_name]小说某个node的详细信息
rosnode kill [node_name]结束某个node
roslaunch[pkg_bame][file_name.launch]启动master和多个nodw 机器人启动时候的包名:pr2-bringup pr2.launch

通讯方式

通信方式:topic用的最多,类似一个频道,A发B收,/topic类似一个字符串。异步通讯方式:一个发一个收,也可以多个收多个发,接收者收到数据有回调函数 message:topic内容的数据类型,定义在*.msg中,类似于类。

打印数据

打印数据使用 ROS_INFO 和 ROS_INFO_STREAM 。

    ROS_INFO_STREAM("frame_id"<<msg->header.frame_id);
    ROS_INFO("frame_id:%s",msg->header.frame_id.c_str());

注意: ROS_INFO 在打印字符串的时候一定要转换,因为不能直接输出 std::string,需要转成 c_str:

数据类型包括

bool,int8,int16,int32 int64,float32,float64,string,time,duration,header,可变长数组array[] 类似 vector,固定长数组array[]。

创建PKG时常用的msg

pcl_conversions 
pcl_ros
roscpp
std_msgs, 
sensor_msgs
nav_msgs
geometry_msgs
tf2 
tf2_geometry_msgs
tf2_ros

创建

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值