ROS学习中遇到的问题以及解决方案

news2024/12/24 21:43:48

目录

    • 问题1. 在使用xarco建立urdf时,运行joint_state_publisher/joint_state_publisher_gui报错
    • 问题2. 使用amcl定位时报`No laser scan received`警告, /scan 话题有数据,amcl也订阅了该话题。
    • 问题3. 运行.py文件报错
    • 问题4. 在roalaunch一个launch文件时报 ModuleNotFoundError: No module named 'xxxxx'
    • 问题5. vscode 终端字符间距过大
    • 问题6. 首次在 ROS 中启动 Gazebo 时,出现 Err [REST.cc:205] Error in REST request 问题
    • 设置默认使用python3
    • 问题7. joint_state_publisher等文件字符集不兼容问题

问题1. 在使用xarco建立urdf时,运行joint_state_publisher/joint_state_publisher_gui报错

错误如下:

[joint_state_publisher_gui-4] process has died [pid 97153, exit code 1, cmd /opt/ros/melodic/lib/joint_state_publisher_gui/joint_state_publisher_gui __name:=joint_state_publisher_gui __log:=/home/ros/.ros/log/4422783c-0504-11ee-8b5a-000c29b0c758/joint_state_publisher_gui-4.log].
log file: /home/ros/.ros/log/4422783c-0504-11ee-8b5a-000c29b0c758/joint_state_publisher_gui-4*.log

原因:一般均因为urdf內部含有中文字符

解决方案:

  1. 将urdf文件内部中文字符全部刪除;
  2. 修改joint_state_publisher和 joint_state_publisher_gui 配置
    • cd /opt/ros/melodic/lib/joint_state_publisher (joint_state_publisher_gui类似)
    • sudo gedit joint_state_publisher
    • 修改
    • 在import sys後面加 reload(sys) sys.setdefaultencoding(“utf-8”)
  3. 若仍然報錯修改執行權限:

    cd /opt/ros/melodic/lib/joint_state_publisher

    chmod 777 joint_state_publisher

问题2. 使用amcl定位时报No laser scan received警告, /scan 话题有数据,amcl也订阅了该话题。

错误如下所示:

amcl: No laser scan received (and thus no pose updates have been published) for xxxx seconds ?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

原因:没有里程计信息,导致amcl坐标系紊乱。
解决方案:

  1. 加入里程计信息
  2. 发布/odom话题
  3. 加入从base_link到odom的转换

参考
amcl: No laser scan received (and thus no pose updates have been published) for xxxx seconds ?

问题3. 运行.py文件报错

原因:

  1. 是否授予.py文件权限,
  2. 是否在CMakeLists.txt中标记为可执行文件,
  3. 是否因为中文备注。

解决方案:

  1. sudo chomod +x .py
  2.  ## Mark executable scripts (Python etc.) for installation
     ## in contrast to setup.py, you can choose the destination
     # catkin_install_python(PROGRAMS
     #   scripts/my_python_script
     #   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
     # )
     # 
     catkin_install_python(PROGRAMS
     scripts/talker.py
     DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
     )
    
  3. 在python文件最顶部加入
    #! /usr/bin/env python
    # -*- coding: UTF-8 -*-
    

问题4. 在roalaunch一个launch文件时报 ModuleNotFoundError: No module named ‘xxxxx’

问题描述:

Traceback (most recent call last):
  File "/home/ros/catkin_workspace/src/arbotix_ros/arbotix_python/bin/arbotix_driver", line 30, in <module>
    import rospy
  File "/opt/ros/melodic/lib/python2.7/dist-packages/rospy/__init__.py", line 49, in <module>
    from .client import spin, myargv, init_node, \
  File "/opt/ros/melodic/lib/python2.7/dist-packages/rospy/client.py", line 52, in <module>
    import roslib
  File "/opt/ros/melodic/lib/python2.7/dist-packages/roslib/__init__.py", line 50, in <module>
    from roslib.launcher import load_manifest  # noqa: F401
  File "/opt/ros/melodic/lib/python2.7/dist-packages/roslib/launcher.py", line 42, in <module>
    import rospkg
ModuleNotFoundError: No module named 'rospkg'

原因

因为ubuntu18.04使用的ros版本是melodic,而melodic默认使用的是python2,但是我们跑代码实际用的是python3。

解决方案

  1. 在bashrc文件里加 alias python=python3
  2. 保存后 source ~/.bashrc
  3. 下载 pip3 install rospkg

问题5. vscode 终端字符间距过大

问题描述:
在这里插入图片描述

原因
由于Linux下字体原因,导致字符间距过大

解决方案
在这里插入图片描述

问题6. 首次在 ROS 中启动 Gazebo 时,出现 Err [REST.cc:205] Error in REST request 问题

  1. 问题描述
    在这里插入图片描述

  2. 解决方法:
    这里需要修改.ignition/fuel/config.yaml 文件

    打开yaml文件命令:

    sudo gedit ~/.ignition/fuel/config.yaml

    url : https://api.ignitionfuel.org 用 # 注释掉

    然后添加

    url: https://api.ignitionrobotics.org

    如下图所示:

    在这里插入图片描述

<!-- 将 Urdf 文件的内容加载到参数服务器 -->
<param name="robot_description" textfile="$(find simu02)/urdf/urdf02_helloworld.urdf" />
<node pkg="rviz" type="rviz" name="rviz" />
<!-- 启动 gazebo -->
<!-- <include file="$(find gazebo_ros)/launch/empty_world.launch" /> -->

<!-- 在 gazebo 中显示机器人模型 -->
<!-- <node pkg="gazebo_ros" type="spawn_model" name="model" args="-urdf -model car -param robot_description"  /> -->

设置默认使用python3

  1. 默认 Python2 调整为 Python3
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 200
    
  2. 默认 Python3 调整为 Python2
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 200
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 100
    
  3. 终端输入python,发现默认使用 python3 成功!
    在这里插入图片描述

问题7. joint_state_publisher等文件字符集不兼容问题

  1. 问题描述

    UnicodeEncodeError: 'ascii' codec can't encode characters in position 53-57: ordinal not in range(128)
    
    [joint_state_publisher-1] process has died [pid 9340, exit code 1, cmd /opt/ros/melodic/lib/joint_state_publisher/joint_state_publisher __name:=joint_state_publisher __log:=/home/yzh/.ros/log/5314feca-c547-11ed-b4c2-000c2907fba7/joint_state_publisher-1.log].
    
    log file: /home/yzh/.ros/log/5314feca-c547-11ed-b4c2-000c2907fba7/joint_state_publisher-1*.log
    
    
  2. 问题原因

    是由于字符集的问题,看到很多解决办法说不要写中文注释,但是注释是很重要的啊,不然以后重新审视代码就会不知道在干啥。

  3. 解决方法

    找到/opt/ros/melodic/lib/joint_state_publisher/joint_state_publisher里的文件加入

    reload(sys)
    sys.setdefaultencoding( "utf-8" )
    

    这两行代码即可解决字符集的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/638384.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot整合Elasticsearch(一):Linux下安装 Elasticsearch 8.x

1、下载安装包&#xff0c;官方下载地址&#xff1a; Past Releases of Elastic Stack Software | Elastic elasticsearch-8.8.1-linux-x86_64.tar.gz 2、拷贝到 Linux 服务器上&#xff0c; 执行解压缩命令 安装包路径&#xff1a;/home/ELK_8.8.1 [rootlocalhost ELK_8.8.1]…

使用VNISEdit为PyQGIS程序制作一个安装包

引言 通常一个需要发布的程序都需要使用安装包进行安装&#xff0c;不可能给客户发送一套程序和依赖性文件&#xff0c;这样如果需要桌面添加软件的快捷方式&#xff0c;就得让客户自己添加&#xff08;因为每台电脑、每个用户的桌面路径是不一样的&#xff09;&#xff0c;非常…

改善客户体验是客户管理系统的重要价值

在如今竞争激烈的商业环境中&#xff0c;企业需要更好地了解客户需求、偏好和行为&#xff0c;以便提供更好的服务并保持客户忠诚度。这就是为什么越来越多的企业开始使用客户管理系统&#xff08;CMS&#xff09;来改善客户体验。 客户管理系统是一种专门设计用于帮助企业跟踪…

Day05 03-MySQL主从-主主原理与搭建详解

文章目录 第十六章 MySQL的系统架构&#xff08;主从架构&#xff09;16.1 MySQL集群架构的介绍16.1.1 主从架构介绍16.1.2 主从复制的原理 16.2 MySQL主从复制的实现16.2.1 环境说明16.2.2 主库配置16.2.3 从库配置16.2.4 主从复制测试 16.3 MySQL主主复制的实现16.3.1 主主复…

移植好U8g2图形库的STM32F407标准库工程模板,0.96寸OLED驱动程序

移植好U8g2图形库的STM32F407标准库工程模板&#xff0c;用的0.96寸OLED屏&#xff08;SSD1306&#xff09;&#xff0c;用硬件IIC驱动。 花了一晚上时间去移植。开发板主控MCU用的是STM32F407VET6&#xff0c;I2C接口用I2C1&#xff0c;SCL接PB6&#xff0c;SDA接PB7。 嵌入…

从分布式到微服务解密“架构”原理与实战笔记

分布式架构与微服务平台是当今IT界的关键技术&#xff0c;也是资深软件工程师和系统架构师必须掌握的核心技术。 微服务、云原生、Kubernetes、Service Mesh是分布式领域的热点技术&#xff0c;它们并不是凭空出现的&#xff0c;一定继承了某些“前辈”的优点。我们不仅要了解…

网络安全零基础之从原理看懂的XSS

01、XSS 的原理和分类 跨站脚本攻击 XSS(Cross Site Scripting)&#xff0c;为了不和层叠样式表(Cascading Style Sheets&#xff0c;CSS)的缩写混淆 故将跨站脚本攻击缩写为 XSS&#xff0c;恶意攻击者往 Web 页面里插入恶意 Script 代码&#xff0c;当用户浏览该页面时&…

软件测试将会赢来陌路?

最近参加了某大厂总监做的一场测试培训&#xff0c;感触颇深&#xff0c;一句话萦绕在耳畔“测试乃至测开&#xff0c;大厂为了降本增效这些都要被优化掉”。去年由他操刀优化了一大批优秀的测试员&#xff01; 实际小酋这几年已经有切身体会&#xff0c;测试野蛮增长的阶段已经…

cv学习--图像分类完结

深度学习面试题05&#xff1a;激活函数sigmod、tanh、ReLU、LeakyRelu、Relu6 - 黎明程序员 - 博客园 (cnblogs.com)

解惑:测试圈网红工具 Jmeter 到底难在哪里

同样的起点&#xff0c;同样的工作时间&#xff0c;为什么别人接那么多项目&#xff0c;你还是在点点点&#xff1b;为什么别人升职了&#xff0c;而你还在原地踏步&#xff1f; 同样的工作内容&#xff0c;为什么别人下班了&#xff0c;你还在加班&#xff1f; 在现在竞争激烈…

Unity入门4——重要组件与API

一、GameObject &#xff08;一&#xff09;成员变量 // 名字 print(this.gameObject.name); this.gameObject.name "Lesson4唐老狮改名"; print(this.gameOb…

手机号码应该如何选择呢?一文解决你的选择困难症!

哈喽大家好&#xff0c;我是搜卡之家葫芦弟。最近有一些小伙伴们私信葫芦弟&#xff0c;想办一个本地的手机号&#xff0c;想着长久一直使用的。既然是长久使用&#xff0c;那就想选一个不错的号码&#xff0c;手机靓号的话&#xff0c;好一点的号码价格又太贵。这不是要在平凡…

参与PK赢大奖!阿里云机器学习平台PAI助力开发者激发AIGC潜能

近年来&#xff0c;随着海量多模态数据在互联网的爆炸性增长和训练深度学习大模型的算力大幅提升&#xff0c;AI生成内容&#xff08;AI Generated Content&#xff0c;AIGC&#xff09;的应用呈现出爆发性增长趋势。为助力开发者能够一站式快速搭建文生图、对话等热门场景应用…

GPT问题摘录go中接口实现和继承

go如何实现接口 package mainimport "fmt"type Shape interface {Area() float64 }type Circle struct {Radius float64 }func (c Circle) Area() float64 {return 3.14 * c.Radius * c.Radius }func main() {c : Circle{Radius: 6.2}fmt.Println(c.Area()) } 首先我…

在线合并Excel文档的HTML网页工具

构建一个在线合并Excel文档的HTML网页工具 导语&#xff1a; 在本篇技术分享文章中&#xff0c;我将向您展示如何使用HTML、CSS和JavaScript构建一个功能强大的在线合并Excel文档的网页工具。这个工具可以帮助用户将多个Excel文件合并成一个文件&#xff0c;提高工作效率和方便…

GDT陶瓷气体放电管会不会烧坏?有没有方向?

首先第一个问题&#xff1a;GDT陶瓷气体放电管会不会烧坏&#xff1f;标准答案&#xff1a;会的。 GDT放电管是一种过压保护开关型元件&#xff0c;通常用在电路防护的前端&#xff0c;起泄放浪涌电流及脉冲过电压防护的效果&#xff0c;在遇到电路设计规划不合理以及选型不当时…

汇川H5U计数器轴编程应用(高速计数和测速应用)

H5U编码器轴和脉冲轴相关应用测试请参看下面文章: H5U PLC本地脉冲轴和本地编码器轴测试_RXXW_Dor的博客-CSDN博客H5U PLC如何通过EtherCAT总线控制伺服运动,请参看下面的博客汇川H5U PLC通过EtherCAT总线控制SV660N和X3E伺服_RXXW_Dor的博客-CSDN博客。https://blog.csdn.n…

IDEA安装教程2023

在本文中&#xff0c;我们将提供关于如何安装 IntelliJ IDEA 的详细步骤。如果您是初学者或只是想尝试一下 IDEA&#xff0c;我们建议您下载 Community 版。如果您需要更多高级功能&#xff0c;可以选择 Ultimate 版。 步骤一&#xff1a;下载 IntelliJ IDEA 首先&#xff0c;…

潮向新世界丨2023亚马逊云科技出海日精彩回顾

2023年6月9日&#xff0c;2023亚马逊云科技“潮向新世界”出海日活动在深圳及线上同步盛大开启。在这场出海盛会中&#xff0c;亚马逊云科技、中国出海企业代表和合作伙伴们分享了哪些精彩内容&#xff1f;他们又对中国企业出海提出了哪些真知灼见&#xff1f; 十年蓄势十年爆…

yolov8中的C2f层

在代码注释中看到C2f其实是 CSP Bottleneck with 2 convolutions 找来CSP的图 大致是把一个output按channel拆成2部分&#xff0c;其中一部分不动&#xff0c; 另一部分过conv&#xff0c;再拼回去&#xff0c; 因为是with 2 convolutions, 会有2个conv. 下面根据代码来走一…