Simon Shi的小站

人工智能,机器学习, 强化学习,大模型,自动驾驶

0%

ROS - mrobot 实战

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
2
3
export ROS_MASTER_URI=http://pc:11311
or配置
echo "export ROS_MASTER_URI=http://pc:11311" >> ~/.bashrc

测试

pc

1
2
roscore
rosrun turtlesim turtlesim_node

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