既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
导入第三方软件包
cd ~/bookros2_ws/src
sudo apt install python3-vcstool
vcs import . < third_parties.repos
这个命令用于安装名为
python3-vcstool
的软件包。vcstool
是一个用于管理多个版本控制系统(Version Control System,VCS)仓库的工具。它是 ROS 2 中用于管理工作空间中的多个软件包的版本控制的工具之一。具体而言,
python3-vcstool
提供了一个名为vcs
的命令行工具,可以使用YAML文件描述工作空间中包含的各个软件包及其对应的版本控制信息。这样,通过一个简单的配置文件,你可以方便地一次性克隆、更新或检查多个软件包的状态。执行
sudo apt install python3-vcstool
后,你就能在系统中使用vcs
命令了,该命令可帮助你更有效地管理 ROS 2 工作空间中的软件包。
这个命令使用
vcs
工具,通过读取名为third\_parties.repos
的配置文件,将多个版本控制系统(VCS)仓库克隆到当前工作目录中。让我解释一下这个命令的各个部分:
vcs import
: 这是vcs
工具的命令,用于执行导入(import)操作,即根据指定的配置文件克隆或更新多个仓库。
.
: 这表示当前工作目录。克隆的仓库将被放置在当前目录下。
< book\_ros2/third\_parties.repos
:<
符号用于将配置文件book\_ros2/third\_parties.repos
的内容传递给vcs import
命令。该配置文件通常包含了需要导入的各个仓库的信息,如URL、分支等。这个命令的实际效果是根据
third\_parties.repos
文件中的配置信息,使用vcs
工具将多个仓库克隆到当前目录中。这对于管理工作空间中的依赖项和第三方软件包非常有用,因为它能够一次性处理多个仓库的克隆操作,简化了配置和管理的过程。
安装配置文件并生成软件包
cd ~/bookros2_ws
rosdep install --from-paths src --ignore-src -r -y
sudo apt update
sudo apt install python3-colcon-common-extensions
colcon build --symlink-install
rosdep install
: 这是 ROS 工具链中的一个工具,用于安装 ROS 软件包的系统依赖项。rosdep
通过读取软件包的package.xml
文件,确定软件包所需的系统依赖项,并尝试安装它们。--from-paths src
: 指定rosdep
从指定的路径中读取软件包信息。在这里,src
表示 ROS 2 工作空间中的src
目录。--ignore-src
: 忽略src
目录中的源码,只处理已构建的软件包。通常,src
目录包含源码和已构建的软件包,但在使用--ignore-src
选项时,rosdep
将仅处理已构建的软件包。-r
: 递归安装依赖项。这表示rosdep
将检查工作空间中所有软件包的依赖项,并确保这些依赖项被安装。-y
: 不询问用户确认,直接安装。这个选项用于自动确认rosdep
提示,使安装过程无需用户交互。总的来说,这个命令的作用是根据 ROS 2 工作空间中
src
目录下的软件包信息,递归地安装所有依赖项,并通过-y
选项直接应用这些更改,无需用户确认。这是为了在构建 ROS 2 工作空间之前确保所有的依赖项都已安装
ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: diff_drive_controller: Cannot locate rosdep definition for [realtime_tools] gazebo_ros2_control_demos: Cannot locate rosdep definition for [gazebo_ros] forward_command_controller: Cannot locate rosdep definition for [realtime_tools] tiago_gazebo: Cannot locate rosdep definition for [play_motion_msgs] br2_tracking: Cannot locate rosdep definition for [vision_msgs] joint_trajectory_controller: Cannot locate rosdep definition for [realtime_tools] pmb2_description: Cannot locate rosdep definition for [joint_state_publisher_gui] gazebo_ros2_control: Cannot locate rosdep definition for [gazebo_ros] tiago_controller_configuration: Cannot locate rosdep definition for [pal_local_joint_control] br2_fsm_bumpgo_py: Cannot locate rosdep definition for [rclcpy] imu_sensor_broadcaster: Cannot locate rosdep definition for [realtime_tools] pal_gazebo_worlds: Cannot locate rosdep definition for [gazebo_msgs] tiago_2dnav_gazebo: Cannot locate rosdep definition for [tiago_2dnav] force_torque_sensor_broadcaster: Cannot locate rosdep definition for [realtime_tools] pal_gripper_description: Cannot locate rosdep definition for [rostest] tiago_bringup: Cannot locate rosdep definition for [tiago_moveit_config] pmb2_bringup: Cannot locate rosdep definition for [joy_teleop] tiago_description: Cannot locate rosdep definition for [custom_ee_description] gripper_controllers: Cannot locate rosdep definition for [realtime_tools] Continuing to install resolvable dependencies… #All required rosdeps installed successfully ------------------------------------------------
在构建过程中,出现了一些无法解析的 rosdep
错误,其中一些软件包无法找到其依赖项的 rosdep
定义。解决这些问题的一般步骤如下:
- 手动安装缺失的系统依赖项: 对于每个无法解析的
rosdep
错误,你可以手动安装相应软件包的依赖项。
sudo apt install ros-foxy-realtime-tools ros-foxy-gazebo-ros ros-foxy-play-motion-msgs ros-foxy-vision-msgs ros-foxy-joint-state-publisher-gui ros-foxy-gazebo-msgs ros-foxy-pal-local-joint-control ros-foxy-rclcpp ros-foxy-tiago-2dnav ros-foxy-rostest ros-foxy-tiago-moveit-config ros-foxy-joy-teleop ros-foxy-custom-ee-description
正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
E: 无法定位软件包 ros-foxy-play-motion-msgs
E: 无法定位软件包 ros-foxy-pal-local-joint-control
E: 无法定位软件包 ros-foxy-tiago-2dnav
E: 无法定位软件包 ros-foxy-rostest
E: 无法定位软件包 ros-foxy-tiago-moveit-config
E: 无法定位软件包 ros-foxy-custom-ee-description
- 重新运行
colcon build
命令
colcon build
: 这是构建 ROS 2 工作空间的命令,colcon
是用于构建、测试和分发 ROS 2 软件包的构建工具。--symlink-install
: 通过使用符号链接方式进行安装,软件包的文件将被链接到安装目录而不是复制。这使得对软件包的更改可以立即在系统中生效,而无需重新构建。这对于开发和调试过程中的迭代非常方便。综合起来,这个命令的目的是使用
colcon
构建 ROS 2 工作空间,并通过--symlink-install
选项以符号链接方式进行软件包的安装。这有助于提高开发效率,特别是在频繁进行修改和测试的情况下。
附加依赖项
twist_mux
软件包的构建失败。错误信息表明缺少 diagnostic_updater
软件包的配置文件。
hardware_interface
软件包的构建失败。错误信息表明缺少 control_msgs
软件包的配置文件。
br2_bt_bumpgo
和 br2_bt_patrolling
软件包的构建失败。错误信息表明缺少 behaviortree_cpp_v3
软件包的配置文件。
sudo apt install ros-foxy-diagnostic-updater
sudo apt-get install ros-foxy-control-msgs
sudo apt-get install ros-foxy-xacro
sudo apt-get install ros-foxy-behaviortree-cpp-v3
sudo apt-get install ros-foxy-nav2-msgs
sudo apt-get install ros-foxy-vision-msgs
sudo apt-get install ros-foxy-realtime-tools
sudo apt-get install ros-foxy-gazebo-dev
sudo apt-get install ros-foxy-control-toolbox
sudo apt-get install ros-foxy-gazebo-ros
成功构建
colcon build --symlink-install
Starting >>> controller_manager_msgs
Starting >>> ros2_control_test_assets
Starting >>> launch_pal
Starting >>> twist_mux
Starting >>> hey5_description
Starting >>> tiago_description_calibration
Starting >>> pal_gazebo_worlds
Starting >>> urdf_test
Finished <<< ros2_control_test_assets [3.16s]
Finished <<< hey5_description [2.81s]
Starting >>> hardware_interface
Starting >>> pmb2_maps
Finished <<< tiago_description_calibration [3.22s]
Starting >>> br2_tracking_msgs
Finished <<< pal_gazebo_worlds [3.45s]
Finished <<< launch_pal [4.95s]
Finished <<< urdf_test [4.27s]
Starting >>> br2_basics
Starting >>> br2_bt_bumpgo
Starting >>> pal_gripper_description
Finished <<< controller_manager_msgs [6.57s]
Finished <<< twist_mux [6.20s]
Starting >>> br2_bt_patrolling
Starting >>> br2_fsm_bumpgo_cpp
Finished <<< pmb2_maps [4.51s]
Finished <<< br2_bt_bumpgo [2.80s]
Starting >>> pmb2_2dnav
Starting >>> br2_fsm_bumpgo_py
Finished <<< br2_tracking_msgs [5.76s]
Starting >>> br2_navigation
Finished <<< pal_gripper_description [4.91s]
Finished <<< hardware_interface [7.56s]
Finished <<< br2_basics [5.78s]
Starting >>> controller_interface
Starting >>> br2_tf2_detector
Starting >>> br2_tiago
Finished <<< br2_fsm_bumpgo_cpp [5.37s]
Starting >>> br2_vff_avoidance
Finished <<< br2_bt_patrolling [6.06s]
Starting >>> groot
Finished <<< br2_fsm_bumpgo_py [5.24s]
Finished <<< pmb2_2dnav [5.65s]
Starting >>> br2_tracking
Starting >>> pmb2_navigation
Finished <<< br2_navigation [5.16s]
Starting >>> transmission_interface
Finished <<< br2_tiago [3.74s]
Finished <<< br2_tf2_detector [4.24s]
Finished <<< controller_interface [4.71s]
Starting >>> controller_manager
Finished <<< br2_vff_avoidance [4.92s]
Finished <<< groot [4.75s]
Finished <<< pmb2_navigation [4.11s]
Finished <<< br2_tracking [4.57s]
Finished <<< transmission_interface [4.04s]
Finished <<< controller_manager [3.10s]
Starting >>> forward_command_controller
Starting >>> joint_state_broadcaster
Starting >>> diff_drive_controller
Starting >>> imu_sensor_broadcaster
Starting >>> joint_trajectory_controller
Starting >>> force_torque_sensor_broadcaster
Starting >>> ros2controlcli
Starting >>> gazebo_ros2_control
Finished <<< forward_command_controller [3.56s]
Finished <<< imu_sensor_broadcaster [3.35s]
Starting >>> position_controllers
Starting >>> effort_controllers
Finished <<< joint_state_broadcaster [4.35s]
Finished <<< ros2controlcli [3.70s]
Finished <<< force_torque_sensor_broadcaster [4.43s]
Starting >>> joint_state_controller
Starting >>> velocity_controllers
Finished <<< joint_trajectory_controller [5.35s]
Starting >>> ros2_control
Starting >>> gripper_controllers
Finished <<< diff_drive_controller [6.73s]
Finished <<< gazebo_ros2_control [7.60s]
Finished <<< ros2_control [3.97s]
Finished <<< joint_state_controller [5.68s]
Starting >>> pmb2_controller_configuration
Finished <<< pmb2_controller_configuration [4.51s]
Starting >>> pmb2_description
Finished <<< effort_controllers [16.0s]
Finished <<< position_controllers [16.5s]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
…(img-gvigoM2g-1715475747667)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新