ROS主从机配置方法及rviz显示从机雷达扫描信息

本文详细介绍如何在ROS中设置主从机通信,包括IP配置、环境变量设置、hosts文件修改,以及如何通过小乌龟测试和rviz展示从机雷达扫描信息。解决rviz中固定帧问题,确保雷达数据可视化。

ROS主从机配置方法及rviz显示从机雷达扫描信息

一、ros节点设置

1.IP查询

通过命令

ifconfig

分别查询主机从机ip

2.修改~/.bashrc文件

sudo gedit ~/.bashrc

主机中添加:

export ROS_HOSTNAME=主机hostname
export ROS_MASTER_URI=http://主机IP:11311
export ROS_IP=主机IP

从机中添加:

export ROS_HOSTNAME=从机hostname
export ROS_MASTER_URI=http://主机IP:11311
export ROS_IP=主机IP

3.修改/etc/hosts文件

sudo gedit /etc/hosts

主机添加:

从机IP 从机hostname

从机添加:

主机IP 主机hostname

例如:从机终端中显示 ubuntu@robot
robot为hosname、ubuntu为用户名(ssh连接时使用)

ssh ubuntu@192.168.0.123(从机ip)

即添加

192.168.0.104 robot

二、测试

1.小乌龟测试

以上设置完成后,基本就可以测试下了
主机运行

roscore
rosrun turtlesim turtlesim_node

从机运行:

rosrun turtlesim turtle_teleop_key

可以通过从机上键盘控制主机上的小乌龟移动,就说明成功了。

2.rviz测试

主机打开roscore

roscore

从机打开雷达节点

roslaunch rplidar_ros rplidar.launch  

主机打开rviz

rviz

配置好雷达话题后看不到激光雷达信息
报错:

For frame [laser]: Fixed Frame [map] does not exist”:

将global options中的fixed frame map改为laser可以在主机中查看到雷达传入的信息。
Global Options 当中的Fixed Frame ,是map。这是因为世界坐标定义成map,单独运行sensor 节点不会生成世界坐标,而传感器坐标laser找不到世界坐标,就定位不了自身的位置,从而报错。修改方法,只需要将世界坐标改成sensor的坐标laser就可以看到扫描数据了。

在这里插入图片描述
未完待续

参考:
https://blog.youkuaiyun.com/zhanghm1995/article/details/106781954
https://blog.youkuaiyun.com/sunyoop/article/details/78804941

### ROS主从配置方法 #### 1. 设置ROS Master节点 在ROS系统中,Master节点起到核心作用,负责管理各个节点间的通信。为了确保其正常工作,需为主分配充足的计算资源和网络带宽[^1]。 #### 2. 配置与从的`/etc/hosts`文件 为了让主与从能够相互识别,需要编辑两者的`/etc/hosts`文件。具体操作如下: - **主端** 使用命令 `sudo nano /etc/hosts` 或 `sudo vim /etc/hosts` 编辑文件,并添加以下内容: ```plaintext 192.168.1.xxx 从的hostname ``` - **从端** 同样使用命令 `sudo nano /etc/hosts` 或 `sudo vim /etc/hosts` 编辑文件,并添加以下内容: ```plaintext 192.168.1.xxx 主的hostname ``` 这里的 IP 地址应替换为实际使用的地址,而 hostname 则对应各自的器名称[^3]。 #### 3. 修改`.bashrc`文件 为了指定每台计算的角色以及连接至哪个 Master 节点,还需修改各自用户的 `.bashrc` 文件。 - **主端** 执行命令 `vim ~/.bashrc` 并追加以下行: ```bash export ROS_HOSTNAME=本的hostname export ROS_MASTER_URI=http://(主(底盘)的IP):11311 ``` 替换其中的占位符为具体的值后保存退出,再运行 `source ~/.bashrc` 生效更改。 - **从端** 类似地,在从上也执行相同的操作,只是保持 `export ROS_MASTER_URI` 的指向不变即可[^3]。 #### 4. 测试连通性 完成以上步骤之后就可以验证是否成功建立了主从关系了。通常做法是在一台电脑上启动 `roscore` ,另一台上尝试发布消息或者订阅主题看能否交互无误[^3]。 ```python import rospy from std_msgs.msg import String def talker(): pub = rospy.Publisher('chatter', String, queue_size=10) rospy.init_node('talker', anonymous=True) rate = rospy.Rate(10) # 10hz while not rospy.is_shutdown(): hello_str = "hello world %s" % rospy.get_time() rospy.loginfo(hello_str) pub.publish(hello_str) rate.sleep() if __name__ == '__main__': try: talker() except rospy.ROSInterruptException: pass ``` 上述代码片段展示了一个简单的发布者示例程序,可用于测试跨设备的消息传递功能。 #### 工具辅助简化流程 存在一些专门设计用来提升ROS主从配置效率的小型工具或脚本,它们允许用户通过定义变量如 ip_prefix 和 remote_name 来快速部署环境参数调整过程[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值