ROS在多机器人上的运行

ROS在多机器人上的运行

查看各台主机上的ip地址

主要有一下两种查询方式:

1. 点击网络链接图标,然后点击,网络信息,得到下图:
网络信息图
从上图可以看到本机的ip地址等网络信息。
2. 利用ifconfig -a 从终端查看网络信息,如下图所示:
网络信息图
根据以上两种方式,我们可以得到要同时运行ros的各个主机上的ip, 然后我们把ip地址和对应的主机名,加到初本机外的其他电脑的hosts文件中(/etc/hosts)中。
3. 查看主机之间是否连通
利用ping指令分别ping对方的电脑
例如在gaoyajun-desktop上执行:ping gaoyajun-laptop
双向执行,确保双向连通。

安装ssh

ubuntu默认没有安装ssh,执行一下指令,安装ssh:
sudo apt-get install openssh-server

在每台主机上安装了ssh之后,执行以下指令测试ssh:

ssh   用户名@主机名

如果没有错误,则就登陆到了指定电脑的执行账户上了。按ctrl d退出。

修改ROS环境变量

我们只需要在各台主机的.bashrc文件上加上ROS_HOSTNAME和ROS_MASTER_URI环境变量:
如下:export ROS_HOSTNAME=本机名1
export ROS_MASTER_URI=http://主机名2:11311
注:主机名1为本机的主机名,主机名2为要运行roscore的主机名,当然用主机名的时候,前提是你已经把映射写到了hosts文件里,如果没有写入的话,用ip地址,所以的主机用一个roscore即可!

测试

首先在主机1上运行roscore,然后即可在主机2上运行rosrun指令,如果主机2没有报错,说明配置成功。当在主机1上要运行主机2的包的时候,需要先用ssh指令登陆到主机2上,然后执行指令即可。

### 如何在ROS中监控或查看机器人运行速度 为了实现对机器人操作系统的实时监测,在ROS环境中通常会利用`rostopic echo`命令来获取特定话题的数据流。如果目标是监视机器人的线性和角速度,则可以订阅发布这些数据的话题,通常是`/cmd_vel`或者根据具体设置可能是其他名称的主题[^1]。 对于更复杂的可视化需求,RViz是一个强大的工具,它允许用户通过图形界面直观地观察到不同类型的传感器数据以及状态信息,其中括速度在内的种属性都可以被配置成可显示项。当希望以更加友好和综合的方式理解整个系统的运作情况时,这种方法尤为有用。 另外一种方法是在代码层面加入调试语句或是创建自定义节点用于专门处理并展示所需的速度参数。例如编写Python脚本监听相关主题,并计算平均值或其他统计量以便更好地分析性能表现: ```python import rospy from geometry_msgs.msg import Twist def callback(data): linear_speed = data.linear.x angular_speed = data.angular.z rospy.loginfo(f'Linear Speed={linear_speed}, Angular Speed={angular_speed}') def listener(): rospy.init_node('speed_monitor', anonymous=True) rospy.Subscriber("/cmd_vel", Twist, callback) rospy.spin() if __name__ == '__main__': listener() ``` 上述程序片段展示了怎样建立一个简单的ROS节点去接收来自`/cmd_vel`的消息,并打印出每次更新后的线性与角速度数值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值