Ubuntu22.04 编译 ROS1 Noetic

📅 2026/7/18 18:33:50
Ubuntu22.04 编译 ROS1 Noetic
1. 安装清单生成和源码下载工具Ubuntu 22.04sudo apt update sudo apt install -y \ python3-pip \ python3-rosdep \ python3-vcstool安装rosinstall_generatorpython3 -m pip install --user \ rosinstall_generator \ rosdistro确保用户命令目录在PATH中export PATH${HOME}/.local/bin:${PATH}检查rosinstall_generator --help vcs --help2. 创建工作区mkdir -p ~/ros1_bridge_ws/ros1_noetic/src cd ~/ros1_bridge_ws3. 生成noetic-minimal.rosinstall推荐命令rosinstall_generator ros_comm \ --rosdistro noetic \ --deps \ --tar \ ~/ros1_bridge_ws/noetic-minimal.rosinstall参数解释ros_commROS1 通信基础环境。--rosdistro noetic使用 Noetic 软件包索引。--deps递归加入所有依赖。--tar使用ros-gbp的固定版本 release tarball。生成时会读取https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml并进一步读取 Noetic 的 distribution 文件从中解析每个软件包的 release 仓库和版本。检查生成结果head -20 ~/ros1_bridge_ws/noetic-minimal.rosinstall grep -c ^- tar: \ ~/ros1_bridge_ws/noetic-minimal.rosinstall结果Pasted image 20260717095353.png4. 生成bridge专用精简清单如果希望使用精简版可以明确指定 bridge 需要的 ROS1 包rosinstall_generator \ catkin \ roscpp \ rospy \ rosmsg \ rosmaster \ roslaunch \ rosout \ rosparam \ actionlib_msgs \ diagnostic_msgs \ geometry_msgs \ nav_msgs \ sensor_msgs \ std_msgs \ std_srvs \ tf2_msgs \ --rosdistro noetic \ --deps \ --tar \ ~/ros1_bridge_ws/noetic-bridge-fixed.rosinstall验证它包含rosmsggrep -A3 local-name: ros_comm/rosmsg \ ~/ros1_bridge_ws/noetic-bridge-fixed.rosinstall不过精简清单节约的空间并不多推荐直接使用noetic-minimal.rosinstall。5. 根据清单下载 ROS1 源码使用推荐的完整清单cd ~/ros1_bridge_ws/ros1_noetic vcs import src \ ~/ros1_bridge_ws/noetic-minimal.rosinstall或者使用精简清单cd ~/ros1_bridge_ws/ros1_noetic vcs import src \ ~/ros1_bridge_ws/noetic-bridge-fixed.rosinstall下载完成后检查find ~/ros1_bridge_ws/ros1_noetic/src \ -name package.xml \ -print检查关键包test -f ~/ros1_bridge_ws/ros1_noetic/src/ros_comm/rosmsg/package.xml test -f ~/ros1_bridge_ws/ros1_noetic/src/ros_comm/roscpp/package.xml test -f ~/ros1_bridge_ws/ros1_noetic/src/common_msgs/nav_msgs/package.xml test -f ~/ros1_bridge_ws/ros1_noetic/src/common_msgs/sensor_msgs/package.xml6. 初始化 rosdep 并安装依赖第一次使用sudo rosdep init如果提示已经初始化可以忽略。更新 Noetic 索引rosdep update --rosdistro noetic安装源码所需的系统依赖cd ~/ros1_bridge_ws/ros1_noetic rosdep install \ --from-paths src \ --ignore-src \ --rosdistro noetic \ -y7. 编译下载的 Noetic 源码cd ~/ros1_bridge_ws/ros1_noetic ./src/catkin/bin/catkin_make_isolated \ --install \ -DCMAKE_BUILD_TYPERelease验证source ~/ros1_bridge_ws/ros1_noetic/install_isolated/setup.bash python3 -c import rosmsg; print(rosmsg.__file__) rosmsg show nav_msgs/Odometry rosmsg show sensor_msgs/PointCloud2最短可复制版本sudo apt update sudo apt install -y python3-pip python3-rosdep python3-vcstool python3 -m pip install --user rosinstall_generator rosdistro export PATH${HOME}/.local/bin:${PATH} mkdir -p ~/ros1_bridge_ws/ros1_noetic/src cd ~/ros1_bridge_ws rosinstall_generator ros_comm \ --rosdistro noetic \ --deps \ --tar \ noetic-minimal.rosinstall cd ros1_noetic vcs import src ../noetic-minimal.rosinstall rosdep install \ --from-paths src \ --ignore-src \ --rosdistro noetic \ -y ./src/catkin/bin/catkin_make_isolated \ --install \ -DCMAKE_BUILD_TYPERelease