2024年大数据最新创建ROS 2工作区+导入第三方软件包_ros2 使用第三方库,2024年最新一个APP从启动到主页面显示经历了哪些过程

img
img
img

既有适合小白学习的零基础资料,也有适合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)仓库克隆到当前工作目录中。让我解释一下这个命令的各个部分:
> 
> 
> 1. `vcs import`: 这是 `vcs` 工具的命令,用于执行导入(import)操作,即根据指定的配置文件克隆或更新多个仓库。
> 
> 
> 2. `.`: 这表示当前工作目录。克隆的仓库将被放置在当前目录下。
> 
> 
> 3. `< book\_ros2/third\_parties.repos`: `<` 符号用于将配置文件 `book\_ros2/third\_parties.repos` 的内容传递给 `vcs import` 命令。该配置文件通常包含了需要导入的各个仓库的信息,如URL、分支等。
> 
> 
> 这个命令的实际效果是根据 `third\_parties.repos` 文件中的配置信息,使用 `vcs` 工具将多个仓库克隆到当前目录中。这对于管理工作空间中的依赖项和第三方软件包非常有用,因为它能够一次性处理多个仓库的克隆操作,简化了配置和管理的过程。
> 
> 
> 
> 


 ![](https://img-blog.csdnimg.cn/direct/112a28d6a07a41c598c2864bcd5961d9.png)



##  安装配置文件并生成软件包



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



> 
> 1. `rosdep install`: 这是 ROS 工具链中的一个工具,用于安装 ROS 软件包的系统依赖项。`rosdep` 通过读取软件包的 `package.xml` 文件,确定软件包所需的系统依赖项,并尝试安装它们。
> 2. `--from-paths src`: 指定 `rosdep` 从指定的路径中读取软件包信息。在这里,`src` 表示 ROS 2 工作空间中的 `src` 目录。
> 3. `--ignore-src`: 忽略 `src` 目录中的源码,只处理已构建的软件包。通常,`src` 目录包含源码和已构建的软件包,但在使用 `--ignore-src` 选项时,`rosdep` 将仅处理已构建的软件包。
> 4. `-r`: 递归安装依赖项。这表示 `rosdep` 将检查工作空间中所有软件包的依赖项,并确保这些依赖项被安装。
> 5. `-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` 定义。解决这些问题的一般步骤如下:


1. **手动安装缺失的系统依赖项**: 对于每个无法解析的 `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 
> 
> 
> 


1. **重新运行 `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]                                        
>  Starting >>> pal\_gripper\_controller\_configuration  
>  Finished <<< pmb2\_description [5.37s]     
>  Starting >>> pmb2\_bringup  
>  Finished <<< gripper\_controllers [15.9s]                                         
>  Finished <<< velocity\_controllers [16.9s]                                        


![img](https://img-blog.csdnimg.cn/img_convert/1ec3fea9a7d8101197af84c19881e0bb.png)
![img](https://img-blog.csdnimg.cn/img_convert/39c34e6f9bfb5fcd6234009b2ddbd907.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

mg-ZHUAMigU-1714884865239)]

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 21
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值