ubuntu22.04 源码安装 ros1
如果你在使用 VSCode 远程连接到某个 IP 时遇到“秘钥不匹配”问题,通常是因为远程主机的 SSH 密钥发生了更改或与本地保存的密钥不匹配。解决此问题可以按以下步骤操作:
1 删除旧的 SSH 主机密钥
SSH 会在本地保存已知主机的密钥,当主机密钥更改时,会导致“不匹配”错误。要删除旧的密钥,首先找到并删除 known_hosts 文件中的旧条目。
直接删除 ~/.ssh/known_hosts 文件更便利
2 使用主机VPN
export https_proxy=http://<your pc id>:7890
export http_proxy=http://<your pc id>:7890
export all_proxy=socks5://<your pc id>:7890
1 安装依赖
sudo add-apt-repository universe
sudo apt update
sudo apt install python3-rosdep2 python3-rosinstall-generator python3-vcstools build-essential libboost-thread-dev python3-catkin python3-catkin-pkg python3-empy
2 修改 base.yaml 地址
# 下载 base.yaml https://gist.github.com/Meltwin/0317ae7481c94da7fd66c3eea8d40740
# 修改/etc/ros/rosdep/sources.list.d/20-default.list中 base.yaml 指向下载的文件路径
yaml file://<enter base.yaml address>
3 下载源码
mkdir ./noetic_ws
cd ./noetic_ws
# 可选 desktop 或 desktop_full,推荐先下载 desktop,根据需要添加新的功能包
rosinstall_generator desktop --rosdistro noetic --deps --tar > noetic-desktop.rosinstall
mkdir ./src
~/.local/bin/vcs import --input noetic-desktop.rosinstall ./src
ps: 可移除 qt_gui_cpp(用于开发和集成自定义的 rqt 插件,不影响现有插件使用)
3.1 切换到修复的分支
# 编译安装
cd src
rm -rf rosconsole urdf
git clone https://github.com/dreuter/rosconsole.git
cd rosconsole
git checkout noetic-jammy
git clone https://github.com/dreuter/urdf.git
cd urdf
git checkout set-cxx-version
git clone -b noetic https://github.com/ros-perception/vision_opencv.git
ps: 有其它需要的功能包可下载到 src
安装 PCL 10.0
高于10.0版本的PCL使用std替换了boost,而ros中仍然使用boost,直接传参会有冲突
# 安装依赖以及第三方库:Boost,Eigen,FlANN,VTK,(OpenNI,QHull)
sudo apt install build-essential libboost-all-dev libeigen3-dev libvtk7-dev
# FLANN
git clone --depth=1 https://github.com/flann-lib/flann.git
cd flann
mkdir build
cd build
cmake ..
make
make install # 记得使用sudo权限或者切换到root账号
cd ../..
# 可选。如果想要外接摄像头的话需要
sudo apt install libqhull-dev lisusb-1.0-0 libopenni2-dev libopenni-dev
# pcl
git clone --recursive https://github.com/PointCloudLibrary/pcl.git
cd pcl
git checkout pcl-1.10.1
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/pcl-1.10.0 ..
make
make install # 记得使用sudo权限或者切换到root账号
# 以PCL为例,为避免破坏本机环境
# 在新用户的~/.bashrc中添加
# PCL environment variables
export CMAKE_PREFIX_PATH=/usr/local/pcl-1.10.0:$CMAKE_PREFIX_PATH
export LD_LIBRARY_PATH=/usr/local/pcl-1.10.0/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/pcl-1.10.0/lib/pkgconfig:$PKG_CONFIG_PATH
安装 opencv 4.2
ros noetic 默认opencv版本为4.2,实际测试使用其它版本opencv也没有问题,可正常使用(若有NVIDIA显卡,安装时记得选项cuda编译,后续需要使用时更方便)
4 源码依赖
# 用 --skip-keys 跳过无法安装的,有些依赖名称改变了,可以自行安装,例如python3-rospkg-modules --> python3-rospkg
# 极端情况,需要根据编译提示,安装缺少依赖
rosdep install --from-paths ./src --ignore-packages-from-source --rosdistro noetic --skip-keys "libboost-thread python3-rospkg-modules" -y
5 编译
sudo ./src/catkin/bin/catkin_make_isolated -j5 -l5 --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/noetic
6 使用 desktop 时,额外需要的功能包
7 其他安装
- 中文支持
sudo apt install language-pack-zh-hans language-pack-zh-hans-base
sudo apt install fonts-noto-cjk fonts-wqy-microhei
- vscode 和 浏览器
sudo add-apt-repository ppa:xtradeb/apps -y
sudo apt update
sudo apt install chromium
- 其他问题
#### 安装回收站
apt install gvfs
# u盘弹出问题
sudo apt install eject
8 额外配置(个人)
sudo apt install librosconsole-bridge-dev
sudo apt install libpoco-dev libpoco-doc
sudo apt install libtinyxml-dev libtinyxml-doc libtinyxml2-dev
sudo apt install libqt5widgets5 qtbase5-dev libqt5opengl5
sudo apt install python3-pyqt5
sudo apt install python3-sip*
sudo apt install python3-numpy
sudo apt install libgtest-dev
sudo apt install libcurl4-openssl-dev
sudo apt install liblz4-dev
sudo apt install libjpeg-dev
sudo apt install libpng-dev
sudo apt install libfltk1.3-dev
sudo apt install libltdl-dev
sudo apt install liborocos-kdl-dev
sudo apt install liborocos-bfl-dev
sudo apt install liburdfdom-headers-dev
sudo apt install libgpgme-dev
sudo apt install libboost-python-dev
sudo apt install libyaml-cpp-dev
sudo apt install libturbojpeg0-dev
sudo apt install liblog4cxx-dev
sudo apt install libsuitesparse-dev
sudo apt install libgoogle-glog-dev
sudo apt install libsdl2-dev
sudo apt install libsdl1.2-dev
sudo apt install libsdl-image1.2-dev
sudo apt install liburdfdom-dev
sudo apt-get install libassimp-dev
sudo apt-get install libogre-1.9-dev
sudo apt-get install libswscale-dev
sudo apt-get install libpcap-dev
sudo apt install protobuf-compiler libprotobuf-dev ## 有问题
pip3 install defusedxml pycryptodome pycryptodomex gnupg
# libgtsam
sudo add-apt-repository ppa:borglab/gtsam-release-4.1
sudo apt update
sudo apt install libgtsam-dev libgtsam-unstable-dev
# libtbb
sudo apt-get install libtbb-dev
# 新增加
sudo apt install openjdk-8-jdk
sudo apt install libceres-dev
sudo apt install thunar-archive-plugin file-roller
sudo apt install debsums
交叉编译设置
# 设置 FLANN 头文件路径
set(FLANN_INCLUDE_DIR "/home/ubuntu/Documents/Cross_RK3588_ubuntu22/usr/local/include/")