ubuntu20.04 ros2与ros1通信和分布式通信

开启四个终端

1.第一个终端(ros1)

第一个终端在ros1中启动roscore

roscore

2.第二个终端 (ros2)

在ros2中执行以下指令

source /opt/ros/noetic/setup.bash
ros2 run ros1_bridge dynamic_bridge

这里执行完第一行source以后会出现提示

ROS_DISTRO was set to 'foxy' before. Please make sure that the environment does not mix paths from different distributions.

这是正常现象不用理会,直接执行第二行代码即可

3.第三个终端(ros2)

第三个终端需要启动发布节点

cd camera_driver2
source install/setup.bash
ros2 launch miivii_gmsl_camera single.bash

这是相机在ros2的发布驱动节点,消息类型是image

4.第四个终端(ros1)

第四个终端需要启动监听节点

这里可以直接启动rviz

左下角add一个image话题类型,然后手动输入话题名称如miivii_gmsl/image0

到这里就实现了同一台电脑在ros1和ros2 之间进行通信

分布式通信

1.

首先将通信的两台设备连到同一个网络中

然后我们需要知道两台设备的ip地址以及名称

ifconfig
hostname

ifconfig指令用于查看本机ip地址

hostname用于查看本机名称

2.

其次,我们需要更改两台设备的文件 /etc/hosts

用下面这个指令

sudo gedit /etc/hosts

追加

另一台设备的ip         另一台设备的名称

如下

另一台设备也做同样的操作

3.

接下来需要修改~/.bashrc文件

sudo gedit ~/.bashrc

主机文件:

追加

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

从机文件:

追加

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

修改完后source一下

source ~/.bashrc

4.测试

主机和从机必须都启动roscore

主机启动发布节点

从机启动监听节点

通过rostopic list 可以查看所有主机发布的话题

rostopic list

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值