ROS by example 阅读笔记

ROSby example 阅读笔记


.对于连接到同一个ROS网络中的所以机器(包括机器人上的电脑和桌面工作站的电脑),请确保它们运行的ROS版本相同.因为ROS信息签名每一版本都有修改,不同版本之间基本无法使用对方的话题和服务.

.Ubuntu的目录结构中”.”表示当前目录,”..”表示当前目录的父目录,”/”表示根目录。

.catkin包中移除所以的构建对象。命令如下:

$ cd ~/catkin_ws

$\rm -rf devel build install

 4.ros网络中,由于标架转换和很多消息类型都被标上了时间戳(时间戳是指格林威治时间197001010000秒起至现在的总秒数),机器之间的时间同步往往非常关键。

   时间同步:使用Ubuntuchrony数据包使得计算机上的时钟与互联网服务器上的时钟一致.使用命令如下:

    $sudo apt-get install chrony

 5.Zeroconf技术允许同一子网下的不同设备通过本地主机名(而不是IP地址)来连接彼此。

 6.如果你已经在机器人和桌面计算机之间设置好了ROS网络,你可以在任意一台设备上运行ROS节点,而两台设备都可以获取所以的话题和服务。

 7.ROS中使用米作为距离的量度,使用弧度作为角度的量度。

8.需要注意的是,无论在什么情况下,你都需要用不同的校准参数去适应 不同类型的地面。

9.线速度校准,执行步骤如下:

(1)用卷尺测量并记录下机器人的实际移动距离。

(2)用实际移动距离除以目标距离,并记录下这个比值。

(3)回到rqt_reconfigureGUI界面,用参数 odom_linear_scale_correction乘以上一步得到的比值,所得的乘积更新这个参数。

(4)重复测试,直到你得到满意的结果。

10.导航栈的核心,如下所示:

(1).用于让机器人在指定的框架内移动的目标位置的move_base包。

 (2).用于根据从激光扫描仪获得的数据(或从深度摄像头获得的模拟激光数据)来绘制地图的gmapping包。

(3).用于在现有的地图中定位的amcl包。

11.显示机器人定位系统所使用的是粒子云,云的传播代表了定为系统对机器人姿态的不确定性。一个非常分散的云反映了高度的不确定性,而浓缩的云代表的低的不确定性。】

12.时间同步:在ROS网络中,由于标架转换和和很多消息类型都被标上了时间戳,机器之间的时间同步往往是非常关键的。一种简单的方法为在机器人和计算机上同时安装Ubuntuchrony数据包。命令如下:

  $sudo apt-get install chrony

13.全局路径规划:环境完全已知。

局部路径规划:环境未知或者部分未知,通过感知实时获取环境信息,实时壁障。

14.Ros中”方位”指的是位置和方向。

15.Ros中,地图只是一张位图,用来表示网格被占据的情况,其中白色像素点没有被占据的网格,黑色像素点代表障碍物,而灰色像素点代表未知。

16.保存地图指令:rosrunmap_server map_server -f my_map。其中my_map为任意你喜欢的名字

17.Ros消息中的一种特殊数据类型是报文头,主要用于添加时间戳,坐标信息等。报文头还允许对消息进行编号,通过在报文头内部附加信息,我们可以知道是哪个节点发出的消息。

报文头类型包含以下字段:

uint32seq

Timestamp

Stringframe_id

18.最好让每一个节点都具有特定的单一功能,而不是在系统中创建一个包罗万象的大节点。

19.ros有另一种类型的节点,称为nodelet。其对摄像头和3D传感器这类数据传输量非常大的设备特别有用。

20.当你需要直接与节点通信并获得应答时,将无法通过主题实现,而需要使用服务.

21.Ros有五个日志记录标准级别,按照顺序排列分别是:

 DEBUG调试 INFO信息 WARN警告 ERROR错误 FATAL致命

(绿色) (白色) (黄色)  (红色)  (紫色)

猜你喜欢

转载自blog.csdn.net/dgreh/article/details/79705043