在命令行上输入“sudo apt-get update”会出现一长串“无法获取...”错误,最后几行是:
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-security/Release.gpg Could not resolve 'archive.ubuntu.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.
我几乎尝试了互联网上看到的所有解决方案,包括:
- 禁用 IPv6
- 取消注释 /etc/gai.conf 中的“precedence ::ffff:0:0/96 100” - 在命令行中
输入 - 强制服务器使用带有新根文件的 IPV4 - 禁用我的 Kuri 机器人(我通过 SSH 进入其系统)和我的计算机上的防火墙 - 在 resolv.conf 文件中包括 Google DNS 名称服务器 - 在系统设置中禁用和启用网络连接 ......,等等。sudo rm /var/lib/apt/lists/* -vf
編輯:
cat /etc/resolv.conf
给出了以下输出:
# Generated by Connection Manager
search lan
nameserver 192.168.1.1
ip addr
:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:07:32:4c:4b:1d brd ff:ff:ff:ff:ff:ff
inet 10.73.116.169/29 brd 10.73.116.175 scope global eth0
valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:07:32:4c:4b:1c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.150/24 brd 192.168.1.255 scope global wlan0
valid_lft forever preferred_lft forever
ip route
:
default via 192.168.1.1 dev wlan0
10.73.116.168/29 dev eth0 proto kernel scope link src 10.73.116.169
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.150
192.168.1.1 dev wlan0 scope link
ls -al /etc/resolv.conf
:
ls -al /etc/resolv.conf
观察和说明:
- PING ubuntu.com(或任何其他网站)在终端上显示“主机名未知”错误
- 我的笔记本电脑通过以太网电缆连接到互联网。我能够使用以太网连接在我的网络浏览器中访问互联网,因此我排除了以太网连接故障。我通过 WiFi 通过 SSH 连接到我的机器人。(注意:WiFi 不提供互联网连接,仅用于通过 SSH 连接到机器人,这就是我使用以太网访问互联网的原因。)
- 我最终尝试在机器人上安装 rosbridge 和 ros-web-video-server,但这没有成功,可能出于与上述相同的原因。
答案1
如果您的机器人无法访问互联网,那么它将无法更新或 ping 互联网上的任何内容。
当您说“(注意:WiFi 不提供互联网连接,仅用于通过 SSH 进入机器人,这就是我使用以太网访问互联网的原因。)”时,您就已经回答了您自己的问题。
您的计算机通过以太网访问互联网对机器人没有任何作用,因为它们是两个独立的东西。就您而言,ssh 仅为您提供机器人上的 shell 访问权限,它不充当代理或网关。
我在 Kuri 网站上找到了一些文档,解释了如何在与 Kuri 连接到同一网络的计算机(即您的计算机)上运行高级功能
以下步骤必须从连接到与 Kuri 相同网络的开发环境运行。以下内容已使用最新版本的 Firefox 和 Chrome 进行了测试。
检查代码:
git 克隆https://github.com/KuriRobot/kuri-documentation
运行本地服务器
cd kuri-documentation/examples/webrtc python3 -m http.server
打开浏览器窗口并将其指向http://本地主机:8000 通过在机器人上运行以下命令来获取机器人的 UUID
roboversion - 在网页中输入主机名和机器人 UUID,然后单击“加入”按钮,您应该会看到机器人看到的内容,并且会出现一个文本框
额外步骤:rosbridge 协议
出现的文本框使您能够通过 rosbridge 协议向机器人发送命令并接收机器人的响应。
我觉得 rosbridge 应该已经在机器人上了。如果没有,你应该能够将东西下载到你的笔记本电脑上,然后通过 SSH 将它们移动到 Kuri,但scp