Ubuntu22.04 编译 ROS1 Noetic
2026/7/18 18:33:41 网站建设 项目流程

1. 安装清单生成和源码下载工具

Ubuntu 22.04:

sudo apt update sudo apt install -y \ python3-pip \ python3-rosdep \ python3-vcstool

安装rosinstall_generator

python3 -m pip install --user \ rosinstall_generator \ rosdistro

确保用户命令目录在PATH中:

export PATH="${HOME}/.local/bin:${PATH}"

检查:

rosinstall_generator --help vcs --help

2. 创建工作区

mkdir -p ~/ros1_bridge_ws/ros1_noetic/src cd ~/ros1_bridge_ws

3. 生成noetic-minimal.rosinstall

推荐命令:

rosinstall_generator ros_comm \ --rosdistro noetic \ --deps \ --tar \ > ~/ros1_bridge_ws/noetic-minimal.rosinstall

参数解释:

  • ros_comm:ROS1 通信基础环境。
  • --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.png

4. 生成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

验证它包含rosmsg

grep -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.xml

6. 初始化 rosdep 并安装依赖

第一次使用:

sudo rosdep init

如果提示已经初始化,可以忽略。

更新 Noetic 索引:

rosdep update --rosdistro noetic

安装源码所需的系统依赖:

cd ~/ros1_bridge_ws/ros1_noetic rosdep install \ --from-paths src \ --ignore-src \ --rosdistro noetic \ -y

7. 编译下载的 Noetic 源码

cd ~/ros1_bridge_ws/ros1_noetic ./src/catkin/bin/catkin_make_isolated \ --install \ -DCMAKE_BUILD_TYPE=Release

验证:

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_TYPE=Release

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询