多台电脑基于ROS通信

前言

主机电脑名:cbc-Inspiron
从机电脑名:lab5081

主机cbc-Inspiron操作如下:

1./etc/hosts修改,增加从机的电脑名和IP地址

sudo gedit /etc/hosts

192.168.1.113   lab5081

2.重启网络

sudo /etc/init.d/networking restart

3..bashrc中增加主机电脑的ros_master

export ROS_MASTER_URI=http://cbc-Inspiron:11311
source ~/.bashrc
从机lab5081操作如下:

1./etc/hosts修改,增加主机的电脑名和IP地址

sudo gedit /etc/hosts

192.168.1.115   cbc-Inspiron

2.重启网络

sudo /etc/init.d/networking restart

3..bashrc中增加主机电脑的ros_master

export ROS_MASTER_URI=http://cbc-Inspiron:11311
source ~/.bashrc
泣血的过程:

1.电脑名不能为纯数字
2.ssh A@B
(A是用户名,B是电脑名)
3.没有export ROS_MASTER_URI
4.装低版本ros的电脑不能当主机

### ROS机器人与电脑通信的方法 ROS(Robot Operating System)提供了一种灵活的机制用于实现机器人与电脑端之间的通信。这种通信主要依赖于ROS的核心组件——Master和Node,以及多种通信模式,如Topic、Service和Action。 #### 1. **通过SSH建立连接** 为了使PC能够与运行ROS的机器人进行交互,通常需要配置网络环境并使用SSH协议建立安全连接。具体步骤如下: - 配置主机名和IP地址映射关系,在`/etc/hosts`文件中添加双方设备的信息[^2]。 ```bash sudo gedit /etc/hosts ``` 添加类似以下内容: ``` 192.168.x.x robot_host_name ``` - 设置环境变量以便指定ROS Master URI。编辑`.bashrc`文件以永久保存这些设置: ```bash export ROS_MASTER_URI=http://robot_host_name:11311 export ROS_IP=your_pc_ip_address source ~/.bashrc ``` 完成上述操作后即可利用SSH登录目标机器执行命令或者启动节点[^1]。 #### 2. **基于Topic的消息传递** 在ROS框架下,Topic是最常见的数据交换形式之一。它允许Publisher持续不断地广播特定主题上的更新信息给所有感兴趣的Subscriber接收处理[^4]。例如,如果想让计算机显示来自传感器的数据流,则可以在两者间创建相应的Pub/Sub链路。 以下是简单的Python脚本示范如何构建这样的关联: ```python import rospy from std_msgs.msg import String def callback(data): rospy.loginfo(rospy.get_caller_id() + "I heard %s", data.data) def listener(): rospy.init_node('listener', anonymous=True) rospy.Subscriber("chatter", String, callback) rospy.spin() if __name__ == '__main__': try: listener() except rospy.ROSInterruptException: pass ``` 此代码片段展示了监听名为“chatter”的字符串型话题实例[^3]。 #### 3. **其他高级功能扩展** 随着需求复杂度增加还可以探索更多可能性比如调用远程服务(Service Calls),触发长时间任务(Action Clients/Servers)等等。另外当遇到诸如“No route to host”错误提示时应检查防火墙状态或是物理层连通状况等问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值