docker容器内的ros外设使用与远程配置

ros远程配置

假设条件

A电脑中安装了ros, B电脑安装了docker,docker中安装了ros系统。即B电脑为机器人内部使用,B电脑为master,故需采用A电脑进行远程调试与控制。

docker容器网络配置

由于docker内执行ros,故主要需要配置网络,使docker内的网络与外界通信,可采用端口映射功能。这里为通用性,可采用容器与主宿机网络端口共用,采用如下指令进入容器,则可使容器内与宿主B电脑的ip与端口共享。

sudo docker run -it  \
    --network host       \
    ros:kinetic-robot /bin/bash

其中--network host为容器的网络配置,可使开启的容器与宿主机共享IP和端口。

查看B电脑的当前的IP地址,采用ifconfig命令如下:

pi@raspberrypi:~/docker_ros $ ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:91:6a:c3:a7  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.113  netmask 255.255.255.0  broadcast 192.168.5.255
        inet6 fe80::fe56:c579:853d:6e5d  prefixlen 64  scopeid 0x20<link>
        ether dc:a6:32:80:2c:45  txqueuelen 1000  (Ethernet)
        RX packets 354776  bytes 401333083 (382.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 352905  bytes 222508344 (212.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker 容器ros网络配置

进入容器后,需要进行配置ros网络参数,进入终端后,先执行

export ROS_MASTER_URI=http://192.168.1.113:11311
export ROS_HOSTNAME=192.168.1.113

以上的IP地址均为B电脑的ip地址,可运行roscore命令,启动ros master。

主机A的ros网络配置

在A电脑中打开终端,同样先查看A电脑的ip地址,如:192.168.1.110,先执行

export ROS_MASTER_URI=http://192.168.1.113:11311
export ROS_HOSTNAME=192.168.1.110

其中ROS_MASTER_URI的ip为B主机的ip地址。
ROS_HOSTNAME的ip为本机的ip地址。

则执行后的终端,可输入

rostopic list

可看到rosmaster已启动。

网络永久配置

以上命令每新打开一个终端,都必须执行一遍以上命令,可将其

export ROS_MASTER_URI=http://192.168.1.113:11311
export ROS_HOSTNAME=192.168.1.110

写入.bashrc中。
则每次打开新终端时可自动执行。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值