1、前记:在做MATLAB控制Baxter机器人的实验搭建过程中遇到的网络通信问题,这几个名词让人头疼。

        主机名--IP--域名

       以下记录方便查询!

       https://blog.csdn.net/houjixin/article/details/52604941

       https://www.cnblogs.com/sparkbj/articles/6146294.html

2、先验知识:(来自上链接的复制)

在网络通信中,每个IP可唯一标识一台主机,在多网卡或者路由器等的情况下,每个主机可以有多个IP,通过哪个IP都可以找到该主机;但是IP地址是一个32位的数字,为了便于记忆,我们通常把按每字节划分,然后用10进制表示出来,即我们通常说的点分十进制(在IPV6的中采用的是冒号分十六进制)。如下图的网络抓包,可以看到一个我们常见的IP地址:192.168.100.1的实际存在形式用16进制就是 :c0 a8 64 01 ,用二进制表示就是:

           1100  0000  1010  1000  0110  0100  0000  0001

              c       0         a        8        6        4         0      1
 

IP地址的可读性非常差,虽然用点分十进制表示之后,可读性有所提升,但是依然难以记忆,尤其是对于数字不敏感的老外,因此他们就想用易读的单词来代替这些纯数字,于是就诞生了主机名和域名。

在局域网中,每台主机都有一个主机名,可以使用英文字母或者单词组成的主机名来代替该主机的IP地址(这里假设主机只有一个网卡一个IP),这样就非常方便记忆,例如我们局域网中有一个主机名为:clsserv202的服务器,它的IP地址是:11.12.112.202,我们在使用IP地址11.12.112.202的地方使用clsserv202来代替它,例如我们要ping该主机,则可以执行命令:

ping clsserv202
。。。。。。。。。。。。。。。。。。。。具体看原文吧。。。。。。。。。。。。。。。。。。。。。。。。。。

3、以下是个人在机器人通信时的设置

(问题描述,我的电脑+Baxter机器人在同一局域网中(有路由分配各自IP))。

在装有MATLAB中的电脑上修改hosts文件中的内容----->添加Baxter机器人的IP和主机名(011602P0019.local)

Baxter机器人的IP地址是有另一个装有ROS的Ubuntu电脑上输入代码获得的,这个Ubuntu电脑之前可以直接控制Baxter机器人,

这里机器人开机之后在通过主机名在局域网解析中获得IP地址,开机成功之后可以ping通。机器人的ROS Master自动生成,等待

外部产生Nodehost与之通信。

 。。。。。。。。。。。。。。这里不贴图片了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

具体细节如下(在官网中询问之后得到的解决过程)

https://ww2.mathworks.cn/matlabcentral/answers/434933-cannot-connect-to-ros-master-and-connect-my-baxter-robot

4、后记:一个简单的问题大概花费了将近四天的时间,解决起来看似简单,但其中的心酸可能只有自己可以体会。

     今以一文以叙之,了表‘菜’意。。。太菜了自己   *-*//

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐