1. 代理

1. curl
  • 误使用代理的情况下 我在开启代理的情况下执行命令curl http://repo.ros2.org/repos.key | sudo apt-key add -,出现了如下错误 pic1
    url http://repo.ros2.org/repos.key | sudo apt-key add -
    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                   Dload  Upload   Total   Spent    Left  Speed
    0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    curl: (5) Could not resolve proxy: http
    gpg: no valid OpenPGP data found.
    

    解决方法是,关闭当前终端和代理,然后重新开启终端执行如下命令。

    sudo apt update && sudo apt install curl gnupg2 lsb-release
    curl http://repo.ros2.org/repos.key | sudo apt-key add -
    


    对我而言,最常见的情况是,在打开代理的情况下使用终端,而git等默认不使用代理,因此会导致网络错误。但我并不想把代理设置为永久性的,因此我此处只给出了临时设置代理的方式。

  • 开启代理
    curl -x socks5://127.0.0.1:1024 http://www.google.com 
    

    其中,-x 等同于 --proxysocks5://127.0.0.1:1024是代理的地址。

  • 另一种开启方式
    export http_proxy=http://your-ip-address:port/
    

    例如我的代理地址为localhost:8888,因此我的实际输入命令为

    export http_proxy=http://localhost:8888/
    

    取消代理

    unset http_proxy
    # 或:
    unset https_proxy
    
2. git代理

在打开代理的情况下,直接打开终端使用git clone,会提示如下错误

fatal: unable to access 'https://github.com/...': Could not resolve proxy: http

这是因为在使用代理的情况下打开的终端,该终端也使用了代理。但所在的git repository没有设置为使用代理,就发生了这个代理错误。使用env|grep -i proxy查看此时使用的环境代理。我的输出如下

no_proxy=localhost,127.0.0.0/8,::1
https_proxy=http://http://localhost:8888/
NO_PROXY=localhost,127.0.0.0/8,::1
HTTPS_PROXY=http://http://localhost:8888/
HTTP_PROXY=http://http://localhost:8888/
http_proxy=http://http://localhost:8888/

使用git config --global http.proxy查看git使用代理的情况,注意这是全局设置。如果没有使用代理,不会有任何输出。要确保环境的代理状况和git的代理状况一致。为了加快git的速度,我选择给git添加代理。我输入git config --global http.proxy http://localhost:8888以使用代理。使用git config --global http.proxy查看此时使用的git代理。我的输出如下

http://localhost:8888

此时已经可以正常使用了。这个设置会一直有效,不限于当前终端。如果需要取消代理,使用git config --global --unset http.proxy即可。如果使用git config http.proxy http://localhost:8888,则可以单个repository设置为使用代理。取消代理的方法同上。

以上的代理都是关于http的,如果是https,只需要把http改成https即可,例如git config --global https.proxy。 更多关于git代理的操作,可以参考这里

3. apt-get代理

参考链接。先使用以下命令显示自己当前环境使用的代理,后面是我实际使用的代理的情况。

env|grep -i proxy

HTTP_PROXY=http://http://localhost:8888/
https_proxy=http://http://localhost:8888/
http_proxy=http://http://localhost:8888/
no_proxy=localhost,127.0.0.0/8,::1
NO_PROXY=localhost,127.0.0.0/8,::1
HTTPS_PROXY=http://http://localhost:8888/

根据以上查询结果,使用以下命令开启apt-get的代理。注意,该代理仅在当前终端页面有效。之后就可以使用代理执行命令。

sudo apt-get -o Acquire::http::proxy="http://localhost:8888/" update

If you start a terminal with proxy, this proxy are valid in all tabs in this terminal.

4. wget设置代理
jw@jc:~$ wget https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
--2023-02-27 14:01:54--  https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 0.0.0.0, ::
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|0.0.0.0|:443... failed: Connection refused.
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|::|:443... failed: Connection refused.

解决办法是正确地设置代理。首先查看当前的代理。

jw@jc:~$ env|grep -i proxy
no_proxy=localhost,127.0.0.0/8,::1
https_proxy=http://http://localhost:8888/
NO_PROXY=localhost,127.0.0.0/8,::1
HTTPS_PROXY=http://http://localhost:8888/
HTTP_PROXY=http://http://localhost:8888/
http_proxy=http://http://localhost:8888/

http出现了两次,代理不正确,因此修改当前的代理。

jw@jc:~$ export https_proxy=http://localhost:8888/
jw@jc:~$ env|grep -i proxy
https_proxy=http://localhost:8888/

改正代理后再次尝试。

jw@jc:~$  wget https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
--2023-02-27 14:05:14--  https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8888... connected.
Proxy request sent, awaiting response... 200 OK
Length: 3967 (3.9K) [text/plain]
Saving to: ‘index-v4.yaml’

index-v4.yaml                 100%[=================================================>]   3.87K  --.-KB/s    in 0s      

2023-02-27 14:05:24 (10.4 MB/s) - ‘index-v4.yaml’ saved [3967/3967]


可能在使用命令rosdep update时也会出现下面这种错误。解决方法是一样的。

ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml]:
	<urlopen error [Errno -3] Temporary failure in name resolution> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml)

2. 域名教程

直接买就行。

CNAME是把当前域名关联到另一个网址。输入这两个网址最后都会显示为购买的域名,内容为原网址指向的内容。

通常,购买的域名是一级域名,例如我的blue-stone.top。可以在域名控制台中新建二级域名,例如social.blue-stone.top,然后把这个二级域名和另外一个网址关联。这样就可以买一个域名,关联多个网站。

autoware经验分享

autoware.ai是早期版本,基于ros1,适用于简单场景,已经停止维护。autoware.auto基于ros2,代码和功能较少,适用于低速、封闭场景,是商业化版本。autoware.universe是商业化的版本,处于维护状态。

autoware的优点在于模块的整合,具体的单个功能包可能并不是最好的。不适合直接作为商用产品,更适合作为前期开发的demo。

Apollo的部分功能包不再开源,cyberRT社区也不如ROS社区。

ros2比ros1更加实时。

autoware可在Jetson Orin和ARM x86设备上运行。