ROS1配置husky仿真环境遇到的一些问题+方法论

2024-06-11 01:52

本文主要是介绍ROS1配置husky仿真环境遇到的一些问题+方法论,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

ROS 系列学习教程(总目录)

本文目录

  • 一、问题描述
  • 二、问题分析
    • 2.1 分析日志
    • 2.2 尝试一(失败)
    • 2.3 尝试二(成功)
  • 三、husky仿真需要安装的软件包
  • 四、总结 - 方法论
    • 4.1 文件路径不合法
    • 4.2 文件内容不合法
    • 4.3 ROS 环境变量
      • 4.3.1 方法一
      • 4.3.2 方法二
  • 五、源码下载

一、问题描述

从github下载husky源码,加工作空间,编译,加环境变量,一顿操作后运行launch文件,结果一片红 -。-

在这里插入图片描述

二、问题分析

2.1 分析日志

在日志中,一般报错自顶向下是符合错误出现的先后顺序的,后出现的错误可能是由先出现的错误导致的,所以一般先分析最先出现的错误,对这个来说就是:

resource not found: fath_pivot_mount_description
ROS path [0]=/opt/ros/noetic/share/ros
ROS path [1]=/home/vistar/Desktop/husky/src
ROS path [2]=/home/vistar/Desktop/robot_mrobot/src
ROS path [3]=/home/vistar/Desktop/ROS-Learning/src
ROS path [4]=/opt/ros/noetic/share

第一句的意思是资源 fath_pivot_mount_description 没有找到,然后列出了搜索路径,这些都是我加入ROS环境变量的路径,其中包括husky,说明husky的环境变量配置成功了。

搜了一下这是一个ROS功能包,用于添加摄像机和其他传感器的手动可调 Fath 枢轴支架,仓库路径。

而后面的报错:

RLException: while processing /home/vistar/Desktop/husky/src/husky_gazebo/launch/spawn_husky.launch:
while processing /home/vistar/Desktop/husky/src/husky_control/launch/control.launch:
while processing /home/vistar/Desktop/husky/src/husky_description/launch/description.launch:
Invalid <param> tag: Cannot load command parameter [robot_description]: command [['/opt/ros/noetic/lib/xacro/xacro', '/home/vistar/Desktop/husky/src/husky_description/urdf/husky.urdf.xacro', 'robot_namespace:=/']] returned with code [2]. Param xml is <param name="robot_description" command="$(find xacro)/xacro '$(find husky_description)/urdf/husky.urdf.xacro'     robot_namespace:=$(arg robot_namespace)"/>
The traceback for the exception was written to the log file

意思是说在处理 description.launch 文件时,命令 '/opt/ros/noetic/lib/xacro/xacro', '/home/vistar/Desktop/husky/src/husky_description/urdf/husky.urdf.xacro', 'robot_namespace:=/' 加载失败。看了一下 husky.urdf.xacro 文件确实依赖了 fath_pivot_mount_description,所以,要先解决 fath_pivot_mount_description 的问题。

2.2 尝试一(失败)

既然是找不到功能包,安装就行了,我的ROS版本是 noetic,安装对应功能包的指令如下:

sudo apt install ros-noetic-fath-pivot-mount-description

然而,人生不如意十之八九:
在这里插入图片描述

应该是ROS官方软件仓库没有包含该软件包。

2.3 尝试二(成功)

既然从官方库安装失败,那就直接源码安装,打开该软件包的 github仓库,复制 git 路径:
在这里插入图片描述

点击绿色的 Code 然后复制路径,并 clone 源码到本地 husky 工作空间的 src 下,然后编译,如下指令:

# clone源码
git clone https://github.com/clearpathrobotics/fath_pivot_mount_description.git
# 编译
catkin_make

编译成功后,继续执行 husky 的 gazebo 启动文件,结果 -。-
在这里插入图片描述

这次是另一个软件包找不到,说明 fath_pivot_mount_description 的问题已经解决了,按照如上方法继续处理 flir_camera_description 的问题即可。

三、husky仿真需要安装的软件包

ROS1配置husky机器人仿真环境需要安装的软件包信息及说明如下:

# fath_pivot_mount_description,官方库没有,需要源码安装
git clone https://github.com/clearpathrobotics/fath_pivot_mount_description.git# flir_camera_description,官方库没有,需要源码安装,注意安装分支要对应ROS版本
# 该仓库包括 flir_camera_description 和 spinnaker_camera_driver 两个软件包
# flir_camera_description 是相机模型,spinnaker_camera_driver 是相机驱动程序
# husky 仿真只用到了 flir_camera_description,如果你想保留spinnaker_camera_driver,需要额外安装 image_exposure_msgs 和 wfov_camera_msgs 两个消息软件包
# 仅对于 husky 仿真,下载 flir_camera_driver 后单独将 flir_camera_description 包放到husky/src下即可
git clone -b noetic-devel https://github.com/ros-drivers/flir_camera_driver.git# lms1xx,官方库有,直接安装即可,注意对应ROS版本
sudo apt install ros-noetic-lms1xx
# 源码安装,注意对应ROS版本
# git clone -b noetic-devel https://github.com/clearpathrobotics/LMS1xx.git# velodyne_description,官方库有,直接安装即可,注意对应ROS版本
sudo apt install ros-noetic-velodyne-description
# 源码安装
# git clone https://bitbucket.org/DataspeedInc/velodyne_simulator.git

至此,编译后,roslaunch husky_gazebo empty_world.launch 启动文件已经能启动gazebo并显示husky模型:
在这里插入图片描述

但启动过程中仍有一些报错:
在这里插入图片描述

这是 slam、手柄控制、键盘控制等功能的依赖包没有安装导致的加载失败,但不影响gazebo的启动与模型加载,如果需要仿真slam等功能,则需要安装他们,软件包信息及说明如下:

# robot_localization,官方库有,直接安装即可,注意对应ROS版本
sudo apt install ros-noetic-robot-localization
# 该软件包需要 geographic_msgs 消息软件包依赖,注意对应ROS版本
sudo apt install ros-noetic-geographic-msgs
# 该软件包需要 GeographicLib 库依赖
sudo apt install libgeographic-dev
# 源码安装,注意对应ROS版本
# git clone -b noetic-devel https://github.com/cra-ros-pkg/robot_localization.git# interactive_marker_twist_server,官方库有,直接安装即可,注意对应ROS版本
sudo apt install ros-noetic-interactive-marker-twist-server
# 源码安装,ROS1对应版本在kinetic已稳定,ROS1 kinetic及以后都安装该版本
# git clone -b kinetic-devel https://github.com/ros-visualization/interactive_marker_twist_server.git# twist_mux,官方库有,直接安装即可,注意对应ROS版本
sudo apt install ros-noetic-twist-mux
# 源码安装,注意对应ROS版本
# git clone -b noetic-devel https://github.com/ros-teleop/twist_mux.git# joy,官方库有,直接安装即可,注意对应ROS版本
sudo apt install ros-noetic-joy
# 源码安装,下载后单独将 joy 包放到husky/src下
# git clone https://github.com/ros-drivers/joystick_drivers.git# teleop_twist_joy,官方库有,直接安装即可,注意对应ROS版本
sudo apt install ros-noetic-teleop-twist-joy
# 源码安装,注意对应ROS版本
# git clone https://github.com/ros-teleop/teleop_twist_joy.git

四、总结 - 方法论

对这种 xacro 文件加载失败的问题,一般就几个原因:

4.1 文件路径不合法

检查xacro文件路径,使用vim等打开文件,能打开说明路径对的,如:

vim /home/vistar/Desktop/husky/src/husky_description/urdf/husky.urdf.xacro

4.2 文件内容不合法

检查xacro文件内容,使用xacro指令检查文件,如果命令成功运行,它应该输出生成的 URDF 文件内容。如果出现错误信息,根据错误提示修正 xacro 文件。

xacro /home/vistar/Desktop/husky/src/husky_description/urdf/husky.urdf.xacro robot_namespace:=/

如 xacro 未安装,使用如下命令安装:

sudo apt update
sudo apt install ros-noetic-xacro

4.3 ROS 环境变量

检查你的ROS工作空间路径是否加到环境变量中:

echo $ROS_PACKAGE_PATH

如不存在,有两种方法添加:

4.3.1 方法一

使用source指令,适合临时使用的工作空间:

source /opt/ros/noetic/setup.bash
source ~/Desktop/husky/devel/setup.bash

每次打开新终端,手动执行上述指令。

4.3.2 方法二

适合长期使用的工作空间。

将上述指令加到 ~/.bashrc 中,每次新终端打开都会自动调用该脚本,不用手动执行。

五、源码下载

加入依赖的 husky 源码,不需要再配置环境,欢迎加star:
https://github.com/vistar-terry/husky
由于我的初始环境不一定和你的一样,可能有些依赖没有加入,欢迎提issue或加下方技术群讨论。

这篇关于ROS1配置husky仿真环境遇到的一些问题+方法论的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1049880

相关文章

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修