Ubuntu 22.04 编译安装 ROS noetic
1. 背景ROS noetic是ROS1的最后一个发行版它适配了 Ubuntu 20.0 4官方软件源此后只有 ROS2 适配 Ubuntu 的官方软件源。虽然ROS2对ROS1有一定的兼容但不够完善例如不再兼容catkin_make所以安装ROS1还是一种需求。如果此后的Ubuntu发行版想安装ROS1那只能自己行编译安装。2. 安装2.1. 添加ROS2源sudo apt-get update sudo apt-get install -y curlsudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpgecho deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release echo $UBUNTU_CODENAME) main | sudo tee /etc/apt-get/sources.list.d/ros2.list /dev/nullsudo apt-get update2.2. 安装依赖sudo apt-get install -y python3-pip python3-rosinstall-generator python3-vcstools build-essential python3-numpysudo pip3 install -U rosdep rosinstall_generator vcstoolsudo pip3 install --upgrade setuptoolssudo apt-get install -y build-essentialsudo apt-get install -y cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-devsudo apt-get install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libccd-dev libfltk1.3-dev libqhull-dev libbullet-dev libsdl1.2-dev libsdl-image1.2-dev libpcl-dev gazebo libgazebo-devsudo apt-get install -y libboost-all-dev uuid-dev python3-nose google-mock libgtest-dev libbz2-dev libgpgme-dev libssl-dev python3-coverage libboost-program-options-dev python3-psutil python3-opengl python3-pygraphviz python3-pydot qt5-qmake sbcl libapr1-dev libaprutil1-dev libboost-regex-dev liblog4cxx-dev python3-matplotlib libpyside2-dev libshiboken2-dev pyqt5-dev python3-pyqt5 python3-pyqt5.qtsvg python3-pyside2.qtsvg python3-sip-dev shiboken2 lm-sensors graphviz python3-paramiko python3-pycryptodome python3-gnupg python3-defusedxml python3-pyqt5.qtopengl libcurl4-openssl-dev libpoco-dev libogre-1.9-dev libassimp-dev libogre-1.9.0v5 libyaml-cpp-dev libgl1-mesa-dev libglu1-mesa-dev libqt5opengl5 libqt5opengl5-dev libopencv-dev python3-opencv python3-pykdl tango-icon-theme liborocos-kdl-dev libtinyxml-dev libtinyxml2-dev liburdfdom-headers-dev python3-numpy python3-empy libboost-filesystem-dev libboost-thread-dev python3-pygraphviz python3-pygraphviz python3-mock libboost-date-time-dev libboost-system-dev liburdfdom-dev libboost-chrono-dev libboost-dev libqt5core5a libqt5gui5 libqt5widgets5 qtbase5-dev libconsole-bridge-dev liblz4-dev python3-pyqt5.qtwebkit exfatprogs2.3. 下载ros_noeticgit clone https://github.com/tinkerfuroc/ros_noetic_on_jammy2.4. 编译ros_noeticcd ros_noetic_on_jammy./install.sh./devel/bin/catkin_make_isolated./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPERelease2.5. 添加环境bash:echo source ~/ros_noetic_on_jammy/install_isolated/setup.bash ~/.bashrc source ~/.bashrczsh:echo source ~/ros_noetic_on_jammy/install_isolated/setup.zsh ~/.zshrc source ~/.zshrc3. 编译ROS代码需要到编译路径中寻找catkin_make~/ros_noetic_on_jammy/src/catkin/bin/catkin_make也可以在.bashrc或.zshrc中设置catkin_makealias catkin_make~/ros_noetic_on_jammy/src/catkin/bin/catkin_make参考文献https://github.com/tinkerfuroc/ros_noetic_on_jammyubuntu22.04ROS noetic编译程序:error: ‘shared_mutex’ in namespace ‘std’ does not name a type_error: no member named random_shuffle in namespa-CSDN博客