话题通信 和 服务通信
发布订阅 请求响应
自定义消息类型
发布订阅的msg 和 请求响应的srv
- 创建msg和srv目录,并写好内容
- 修改配置文件并编译好
- 在你的pkg上一级(src)的同级目录devel下的include有生成的头文件
TF坐标变换
我认为两边通信不是依靠话题,而是发布出去的当前活动的父坐标和子坐标
geometry_msgs::PointStamped psAtSon2 = buffer.transform(ps,"son2");
把点ps转换到"son2"坐标上去。
geometry_msgs::TransformStamped tfs = buffer.lookupTransform("turtle2","turtle1",ros::Time(0));
lookupTransform函数获取两个点(或理解为两个坐标的原点)的相对关系。例如:X轴上相差5cm...
URDF
其实ROS就认识俩玩意---------link 和 joint
底座、相机、雷达、手臂 都是 LINK
SLAM算法之Gmapping
里程计包括:轮子编码器、视觉里程计(相机)、IMU
定位:首先,里程计信息是可知的。通过先前订阅到机器人地盘(base)到里程计(odom)的坐标关系,就可以输出map和base的坐标关系,实现定位。
建图:非常直观,直接发布/map(该话题的消息类型就是图片)
地图坐标、里程计坐标、底盘坐标
导航navgation ------“move_base”,作用:全局规划、局部规划、处理异常行为(发生碰撞)
resolution:每个像素代表几米(0.05 0.025一般)