ROS2 Humble 机器人建模和Gazebo仿真

一.Ubuntu22.04系统虚拟机安装

1.下载镜像并安装 Index of /ubuntu-releases/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

2.安装选英文版,安装类型选清除磁盘。

 3.遇到无法复制windows内容到虚拟机里。需安装VMware tools。VMware tools安装不了,提示连接到更新服务器时发生证书错误。

科学上网,输入以下命令:

sudo apt autoremove open-vm-tools
sudo apt update
sudo apt install open-vm-tools
sudo apt install open-vm-tools-desktop

二.ROS2 humble系统安装

 1.系统搭配说明:Ubuntu 22.04搭配ROS 2 Humble。

 2.安装ROS2 Humble,需要科学上网。

官网提示https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.htm

 3.添加ROS2 apt源

sudo apt install software-properties-common
sudo add-apt-repository universe

 4.add ROS 2 GPG key

sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

 5.添加仓库源列表sources list.

echo "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/sources.list.d/ros2.list > /dev/null
sudo apt update
#安装ROS2核心组件、RViz可视化工具、演示和教程等资源,但不包含开发工具。
sudo apt install ros-humble-desktop
#安装ROS开发、构建、测试和调试ROS应用的工具
sudo apt install ros-dev-tools

 6.设置环境变量

source /opt/ros/humble/setup.bash

三.安装开发工具

 1.vscode

下载地址Visual Studio Code - Code Editing. Redefined 

 sudo dpkg -i code_1.9*

2. 安装terminator 

sudo apt install terminator

3.Rviz

#运行命令
ros2 run rviz2 rviz2

四.Gazebo仿真平台

ROS2支持的仿真平台有:Gazebo、Ignition、WeBots、Unity。

 1.安装Gazebo Harmonic

# 安装Gazebo的ROS 2集成包
sudo apt install ros-humble-gazebo-ros-pkgs
# 下载Gazebo的地图模型
git clone https://gazebosim.org/docs/latest/getstarted/

 2.制作机器人模型

动手学ROS2

3.验证gitee LiJianghao/mbot_gazebo_ros2代码,安装环境依赖

sudo apt install ros-humble-gazebo* #安装gazebo依赖库和插件
sudo apt install ros-humble-velodyne* #安装Velodyne(威力登)激光雷达依赖和软件包

 发现这套代码运行起来,虚拟机变得很卡!!!!应该是模型配置的有点复杂!!

五.URDF统一机器人建模语言

 1.建立机器人模型

动手学ROS2

 2.URDF可视化步骤如下:

  • 建立机器人描述功能包
  • 建立urdf文件夹编写urdf文件
  • 建立launch文件夹,编写launch文件
  • 修改setup.py配置,编译测试

3.机器人建模过程:参考鱼香ros

  • 创建机器人包,具体见以下网页
https://fishros.com/d2lros2/#/humble/chapt8/get_started/2.RVIZ2%E5%8F%AF%E8%A7%86%E5%8C%96URDF%E6%A8%A1%E5%9E%8B
ros2 pkg create fishbot_description --build-type ament_python
  • 查看节点和他们的通信关系
sudo snap install tree #安装新版的tree
rqt_graph  #显示节点和及它们之间的通信关系

<think>好的,我现在需要帮助用户解决他们在使用校园网通过清华源安装Ubuntu 22.04、ROS HumbleGazebo 11.10.2后,在模拟机械臂仿真时运行catkin_make报错的问题。首先,我得回忆一下常见的导致catkin_make失败的原因,并结合用户的环境进行分析。 用户提到他们已经成功安装了Ubuntu 22.04、ROS HumbleGazebo 11.10.2ROS Humble是专为Ubuntu 22.04设计的,所以版本兼容性应该没问题。Gazebo的版本方面,Humble通常与Gazebo Fortress(版本11)搭配,但用户安装的是11.10.2,可能需要确认是否兼容。不过Gazebo版本问题可能更多出现在运行时,编译时的错误可能来自其他地方。 接下来,用户的问题出现在构建urdf文件夹进行机械臂仿真时。可能的错误原因包括: 1. **依赖缺失**:ROS包通常需要声明依赖,如果package.xml中没有正确声明依赖项(如urdf、gazebo_ros等),会导致编译失败。 2. **语法错误**:URDF文件中的XML语法错误,比如标签未闭合、属性拼写错误等。 3. **CMakeLists.txt配置错误**:CMakeLists.txt中未正确添加依赖、未找到包或可执行文件配置错误。 4. **ROS环境未正确配置**:没有source正确的setup.bash文件,导致找不到ROS包。 5. **Python版本或脚本问题**:如果使用了Python节点,可能存在Python2/3的兼容性问题,或者脚本语法错误。 6. **Gazebo插件问题**:URDF中引用了Gazebo插件,但相关库未安装或链接错误。 7. **网络问题**:虽然用户已经通过清华源安装,但可能在编译时还需要下载其他依赖,但校园网可能有访问限制,不过可能性较低,因为主要依赖应该已安装。 现在需要一步步引导用户检查这些可能性。首先,用户应该查看具体的错误信息,因为不同的错误信息指向不同的问题。例如: - **找不到包的错误**:通常是由于依赖未安装或package.xml未声明。 - **未定义的引用**:可能是链接库缺失或CMakeLists.txt未正确链接。 - **语法错误**:URDF或代码中的语法问题。 - **Python错误**:如语法错误或模块未找到。 建议用户执行以下步骤: 1. **查看完整错误信息**:运行`catkin_make`时的具体报错内容,是C++编译错误、链接错误,还是Python或URDF解析错误。 2. **检查package.xml**:确认所有依赖的ROS包都已声明,如`urdf`、`xacro`、`gazebo_ros`等,并确保这些包已通过apt安装。 3. **检查CMakeLists.txt**:是否有正确的`find_package`调用,`catkin_package`声明,以及可执行文件的target_link_libraries是否正确。 4. **验证URDF文件**:使用`check_urdf`命令检查URDF文件是否有语法错误。 5. **确认环境变量**:是否在每次终端启动时都source了`/opt/ros/humble/setup.bash`,或者在构建前执行了`source devel/setup.bash`。 6. **安装缺失的依赖**:如果错误提示缺少某个包,使用`rosdep install`来安装。 7. **检查Gazebo插件**:确保URDF中使用的Gazebo插件对应的ROS包已安装,如`libgazebo_ros_control`等。 此外,用户可能没有运行`rosdep update``rosdep install`,特别是在新工作空间中,需要安装所有依赖。另外,如果用户自己编写的代码中存在错误,比如C++头文件缺失或函数名错误,也会导致编译失败。 可能还需要考虑工作空间的结构是否正确,比如urdf文件夹是否放在正确的位置,是否在CMakeLists.txt中添加了安装指令等。如果用户是从其他项目或教程中复制的代码,可能存在路径错误或版本差异,特别是ROS1ROS2之间的语法差异,但用户使用的是HumbleROS2),所以需要注意是否误用了ROS1的语法。 总结来说,用户需要根据具体的错误信息来定位问题,但常见的解决步骤包括检查依赖、配置文件、URDF语法环境设置。如果用户能提供具体的错误信息,可以更精准地诊断问题所在。</think>在Ubuntu 22.04 + ROS Humble + Gazebo 11.10.2环境中运行`catkin_make`报错,可能由以下原因导致。请按以下步骤排查: --- ### 一、核心原因分析 1. **依赖未正确声明** - `package.xml`中未声明`urdf`、`gazebo_ros`等关键依赖。 - 未安装系统级依赖库(如`liburdfdom-dev`)。 2. **URDF文件语法错误** - XML标签未闭合、属性拼写错误(如`<link>`写成`<ling>`)。 - 未正确引用模型文件路径(如贴图、Mesh文件路径错误)。 3. **CMake配置问题** - `CMakeLists.txt`中未正确调用`find_package(catkin REQUIRED ...)`。 - 未将`urdf`、`gazebo_plugins`等包加入`catkin_package()`的`CATKIN_DEPENDS`。 4. **环境配置问题** - 未正确source ROS环境:`source /opt/ros/humble/setup.bash`。 - 未安装Gazebo-ROS插件:如`ros-humble-gazebo-ros-pkgs`。 5. **Python脚本兼容性** - Python节点未声明`#!/usr/bin/env python3`导致解释器冲突。 - 使用了ROS1的语法(如`rospy`),但ROS2需用`rclpy`。 --- ### 二、逐步排查方法 #### 1. 检查编译错误具体信息 - **执行命令**: ```bash catkin_make --force-cmake -DCMAKE_BUILD_TYPE=Debug ``` - **重点关注**: - `fatal error: ... No such file` → 依赖缺失 - `undefined reference to ...` → 链接库缺失 - `Invalid XML ...` → URDF语法错误 #### 2. 验证URDF文件 - **语法检查**: ```bash sudo apt install liburdfdom-tools # 安装工具 check_urdf your_robot.urdf # 检查URDF ``` - **路径问题**:确保Mesh文件路径为**绝对路径**或**相对于`package://<pkg_name>/`**的路径。 #### 3. 检查`package.xml` - **必须包含的依赖**: ```xml <depend>urdf</depend> <depend>gazebo_ros</depend> <depend>gazebo_plugins</depend> ``` - **安装缺失依赖**: ```bash rosdep install --from-paths src --ignore-src -y ``` #### 4. 检查`CMakeLists.txt` - **关键配置示例**: ```cmake find_package(catkin REQUIRED COMPONENTS urdf gazebo_ros ) catkin_package( CATKIN_DEPENDS urdf gazebo_ros ) ``` #### 5. 安装Gazebo-ROS插件 - **ROS2 Humble所需插件**: ```bash sudo apt install ros-humble-gazebo-ros-pkgs \ ros-humble-gazebo-ros-control ``` #### 6. 验证环境变量 - **每次编译前**: ```bash source /opt/ros/humble/setup.bash source devel/setup.bash ``` --- ### 三、常见错误示例及解决 #### 错误1:`Could not find a package configuration file provided by "urdf"...` - **原因**:未安装`urdf`相关依赖。 - **解决**: ```bash sudo apt install ros-humble-urdf ``` #### 错误2:`undefined reference to 'gazebo::physics::WorldPtr'` - **原因**:未链接Gazebo库。 - **解决**:在`CMakeLists.txt`中添加: ```cmake target_link_libraries(your_node ${GAZEBO_LIBRARIES}) ``` #### 错误3:`Invalid <joint> tag: 'type' attribute not set` - **原因**:URDF中关节类型未定义(如`<joint type="fixed">`)。 - **解决**:检查所有`<joint>`标签的`type`属性。 --- ### 四、补充建议 - **使用colcon替代catkin_make**:ROS2推荐使用`colcon build`,若需兼容旧项目,需确保工作空间已适配。 - **调试Gazebo插件**:在URDF中添加`<gazebo>`标签时,确保引用的插件已安装(如`libgazebo_ros_control.so`)。 若问题仍未解决,请提供完整的错误日志,以便进一步定位!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值