Turtlebot3_burger机器人与远程PC网络配置问题
-
问题
昨天在做Turtlebot3_burger机器人与远程PC,主从机时间同步的时候出现了个问题, 主从可以通信,Turtlebot3不受主机的控制,但是主机可以接受从机传送过来的。后来多次检查发现是本机IP的问题(我原以为locahost是指向本机IP的,连接网络后会覆盖127.0.0.1,但是这个理解是错误的)。
首先,他们通信需要进行网络配置,需要修改PC与树莓派的~/.bashrc:
Turtlebot3配置如下:
export ROS_MASTER_URI=http://IP_OF_PC:11311(远程PC机的IP地址)
export ROS_HOSTNAME=IP_OF_TURTLEBOT(机器人的IP地址)
远程PC的配置如下:
export ROS_MASTER_URI=http://IP_OF_PC:11311(远程PC机的IP地址)
export ROS_HOSTNAME=IP_OF_PC(远程PC机的IP地址)
ROS_MASTER (节点管理器)运行在远程PC上
修改了bashrc文件,肯定少不了source下环境,source ~/.bashrc
-
localhost与127.0.0.1
localhost是一个域名,也可以理解为本地服务器,它一般都是指向127.0.0.1这个IP地址,在操作系统中都会有个配置文件把localhost指向127.0.0.1绑定他们(Linux 中,localhost在 /etc/hosts 中);不会被连接网络后被其他的IP覆盖。实际上127.0.0.1是一个回送的地址,一般是用来是测试用的。可以理解为虚拟网卡,用于本机软件之间的网络交互。
当然你想修改localhost的IP地址127.0.0.1也是可以的,可以ping的通。但是我没有测试过其他的软件,只是ping了一下。
-
本机IP
指的是“本机物理网卡所绑定的网络协议地址”(目前是IPV4),能被其他设备访问到。就目前而言,貌似IPV4的地址已经不够用了,已经在推广IPV6了。
本人第一次写博客,有写的不好地方,请各位前辈留言指出,方便我改正。