3.9 分布式多机器通信
ROS是一种分布式软件框架, 节点之间通过松耦合的方式进行组合, 在很多应用场景下, 节点可以运行在不同的计算平台上, 通过Topic、 Service进行通信。 但是“一山不容二虎”, ROS中只允许存在一个Master, 在多机系统中Master只能运行在一台机器上, 其他机器需要通过ssh的方式和Master取得联系。 所以在多机ROS系统中需要进行一些配置。
设置IP
以两台计算机为例, 介绍分布式多机通信的配置步骤, 其中计算机hcx-pc作为主机运行Master, 计算机raspi2作为从机运行节点。
两天机器的网络可以Ping通(同一个网段)
pc (192.168.10.13) raspi(192.168.10.112)
@pc cat /etc/hosts
192.168.10.112 raspi
ping raspi
测试
@raspi
192.168.10.13 pc
ping pc
测试
配置ROS_MASTER_URI
raspi
1 | export ROS_MASTER_URI=http://pc:11311 |
测试
pc
1 | roscore |
raspi
1 | rostopic list 查看网络中的话题 |
master_URI=ip:11311
5 平台搭建
系统搭建
7 机器视觉
摄像头
标定
人脸识别
物体跟踪
二维码识别
物体识别
8 机器语音
英文语音识别: 基于创建的语音库, ROS中的pocketsphinx功能包可以实现机器人的语音识别功能
英文语音播放: ROS中的元功能包audio-common提供了文本转语音的功能包sound_play, 可以实现机器人的英文语音播放功能。
智能语音应答: 结合人工智能标记语言AIML, 机器人可以从语料库中智能匹配交流的输出语句, 从而实现智能化交流应用。
中文语音的识别与合成: 在ROS中集成科大讯飞的语音处理SDK, 让机器人更懂中文
9 SLAM & Navi
真实机器导航
自主探索SLAM