docker内外连通ros_docker容器内的ros外设使用与远程配置
docker下ros外設使用與遠程配置
ros遠程配置
假設條件
docker容器網絡配置
docker 容器ros網絡配置
主機A的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=4099mtu 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=4163mtu 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
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中。
則每次打開新終端時可自動執行。
總結
以上是生活随笔為你收集整理的docker内外连通ros_docker容器内的ros外设使用与远程配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python如何进行双色球预测最准确_【
- 下一篇: 前后端_前后端编程