ROS学习笔记之——Navigation

 

 

 

Navigation Stack

首先看看整个导航的包是怎么样的

ROS学习笔记之——Navigation

tf Transform

首先不同坐标系之间的tf变换要明确,详细可以参考博客《ROS学习笔记之——ROS之tf变换》以及

 

ROS学习笔记之——Navigation

 

Sensor Information

导航包中采用了来自sensors的信息来进行避障(avoid obstacles)。并且假设这些传感器发布的数据是sensor_msgs/LaserScan或者sensor_msgs/PointCloud 

关于具体消息的定义,可以参考:

下面补充一下在ROS中发布sensor的消息流的相关知识

Publishing Sensor Streams over ROS

机器人导航的过程中,需要各种sensors来提供定位、避障等功能。如 lasers, cameras, sonar, infrared, bump sensors(碰撞传感器)等等。然而,ros中的导航只接收数据格式为sensor_msgs/LaserScan或者sensor_msgs/PointCloud形式的消息。

sensor_msgs/LaserScan以及sensor_msgs/PointCloud消息都带有tf帧以及时间这两个独立的信息。这些信息都存储在header中。一共有三种类型的header

#Standard metadata for higher-level flow data types
#sequence ID: consecutively increasing ID 
uint32 seq
#Two-integer timestamp that is expressed as:
# * stamp.secs: seconds (stamp_secs) since epoch
# * stamp.nsecs: nanoseconds since stamp_secs
# time-handling sugar is provided by the client library
time stamp
#Frame this data is associated with
# 0: no frame
# 1: global frame
string frame_id

seq field为从给定发布服务器发送消息时自动增加的标识符相对应。

 

 

 

运动规划

运动规划(Motion Planning)是一个过程,用来寻找从起始状态到目标状态的移动步骤。运动规划常常需要在运动受到约束的条件下找到最优解。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考资料

http://moorerobots.com/blog/post/3

http://wiki.ros.org/navigation/Tutorials/RobotSetup

 

 

 

上一篇:RocketMQ专题2:三种常用生产消费方式(顺序、广播、定时)以及顺序消费源码探究


下一篇:Odometry的发布和发布odom到base_link的tf变换