ros端口映射全攻略,新手也能快速上手设置!

吉云

今天给大家唠唠我在折腾 ROS 端口映射时踩过的那些坑。事情是这样的,前阵子我不是搞个小项目嘛需要用到 ROS,但我这网络环境有点复杂,设备都在不同的局域网里,所以就得想办法让它们能互相通信,这就涉及到端口映射。

我以为这玩意儿挺简单的,不就是配置一下路由器的事儿嘛没想到,这一上手就给我来个下马威。

我得登录到路由器后台。我这人平时不怎么记这些东西,翻箱倒柜找半天说明书,终于找到默认的用户名和密码。输入进去,还真进去!

ros端口映射全攻略,新手也能快速上手设置!

折腾防火墙规则

登录后台之后,第一步,点击IP,找到“Firewall”这一项,再点进去就能看到“Nat”这个选项卡。这里就是配置端口映射的地方。我记得以前玩游戏的时候也弄过端口映射,所以还算轻车熟路。

点击左上角那个红色的加号,弹出一个新窗口。在这里,要添加一条新的规则。在“Chain”这里,选择“dstnat”,意思是目标地址转换。这应该算是通用操作,先这么配置就对。

然后,在“*”这里填上你要映射的公网IP地址。这一步挺关键的,因为我每次重新拨号,公网IP都会变,所以每次搞端口映射都得先看看自己现在的公网IP是多少。

创建ROS节点

路由器这边搞定,接下来就得在我的设备上动手。我得先创建一个ROS节点。打开终端,先用“cd”命令切换到我的ROS工作空间。然后,我用“catkin_create_pkg”命令创建一个新的ROS包。这一步主要是为让我的设备能作为一个节点加入到ROS网络里。

ros端口映射全攻略,新手也能快速上手设置!

配置脚本

接下来得写个脚本,让设备能自动更新端口映射规则。我在网上找一些资料,参考一下,写一个简单的shell脚本。脚本内容大概就是获取当前的公网IP,然后更新到路由器上的端口映射规则里。脚本不复杂,但是我这个人写代码经常丢三落四,所以调试半天才弄当时满脑子“怎么回事?”,又是一阵折腾。

设置定时任务

一步,我得让这个脚本定时执行。我用的是“System->Scheduler”这个功能。在这里,我添加一个新的定时任务,设置执行间隔为2分钟。这样,每隔2分钟,脚本就会自动运行一次,检查公网IP是否变化,并更新端口映射规则。都设置好之后,我在脚本里加一句“loginfo "ADSL映射修改完毕"”,每次脚本执行完,我就知道更新成功。

一番折腾下来,总算是把ROS端口映射搞定。虽然过程有点曲折,但也学到不少东西。所以说,实践出真知,多动手折腾总是有收获的。以后再遇到类似的问题,我就不用再抓瞎。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]