先放一张成功的图片:
这里先建议一下,最好是刚刚装完的系统,比如刚安装完的manjaro(需要AUR源和PARU)
在这个之前,千万不要改源!!!也不要安装archlinux-cn!!!!!!!
在这个之前,千万不要改源!!!也不要安装archlinux-cn!!!!!!!
在这个之前,千万不要改源!!!也不要安装archlinux-cn!!!!!!!
否则系统yay paru可能会找不到ros-noetic-desktop-full在这个源!
前期准备:
安装yay
sudo pacman -Syyu
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
安装paru
sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
或者
yay -S paru
安装proxychains-ng(因为需要终端访问GitHub,这个是必须的,不然编译和下源码都gg)
sudo pacman -S proxychains-ng
在 /etc/proxychains.conf里修改sock的配置,一般是这样:
socks5 127.0.0.1:1080
安装tiiiziiii(这个自己随意了~)
安装
喝水不忘挖井人,感谢大佬的付出~
正式开始安装
proxychains4 paru -S ros-noetic-desktop-full
一路默认即可,如果报错下不下来某个包,就点开该链接,会跳转到AUR的网页,有一个git clone的代码 (比如报链接443错误,或者报没有这个包,都可以点对应的url下载下来放到下面的目录里,然后重新运行 proxychains4 paru -S ros-noetic-desktop-full),可能会报很多个包找不到,大概10~20个吧,要手动下下来。
cd /home/${USER}/.cache/paru/clone
在这里你会看到一堆ros-noetic的包,这是刚刚下载下来的,你要做的就是在这个目录把东西git clone进去,我现在找不到那个错误了,因为已经编完了。
然后全部下完以后就可以进行编译,如果编译的时候python报错,那就报什么错就sudo pip3 uninstall 什么库,比如这个
直接删除该pkg
sudo pip3 uninstall catkin_pkg
一直安装下去之后进入编译,大概半个小时,到了编译qt的时候会要求输入用户密码(因为和manjaro默认安装的qt有冲突,需要重新安装),等系统编译完成就可以啦~
然后直接把noetic写到zsh里
vim ~/.zshrc
source /opt/ros/noetic/setup.zsh
如果中间有报libboost-date-1.78.so的错误的话,可以看github上对应的issue,这个一般是你之前有个包没有下下来,然后系统跳过了这个包去编译下面的包,就会出现有的包用libboost1.79有的包是1.78,而且你重新proxychains4 paru -S ros-noetic-desktop-full是没有用的
编译完ros以后要注意系统内核的升级,不要动到影响ros的库,比如qt, boost等等,所以建议滚动版升级要慎重!!!!
在昨天调用velodyne的urdf模型的时候,报错/usr/include/c++/12.1.0/bits/random.h:1995: std::normal_distribution<_RealType>::param_type::param_type(_RealType, _RealType) [with _RealType = double]: Assertion '_M_stddev > _RealType(0)' failed.
我查证了一番,是这个部分报错,也就是生成均值为0,方差为1的高斯噪声报错。
发现是c++会检查stddev <= 0 is undefined behavior. 所以stddev不能为0,我们得取一个很小的数值,比如, <stddev>0.0000001</stddev>,把urdf或者xacro里对应高斯噪声部分的方差修改一下,可以运行了,没有问题。 这个是archlinux的通病好像,目前github上遇到这个问题的都是arch