CMU,[gazebo]process has died.报错解决.VLP-16.velodyne

2023-05-16

解决方法:

sudo apt-get install ros-noetic-velodyne-*

报错:

        roslaunch vehicle_simulator system_garage.launch 一输入就报各种各样的process has died,接着就是Gazebo卡死,这个错误困扰了笔者几个星期。

心路历程:

         笔者踏踏实实从基础开始学

https://so.csdn.net/so/search?q=%E4%BB%BF%E7%9C%9F%E6%9C%BA%E5%99%A8%E4%BA%BA&t=blog&u=Netceor&urw=

        从头开始了解了launch文件、xacro文件和world文件,并了解他们的语法、关系和作用。

        后面再一一从launch文件入手,查看到底是哪段代码让Gazebo“便秘”?

一、查看launch文件

逐段注释运行,最后发现是vehicle_simulator.lauch除了问题

<launch>

  <arg name="world_name" default="garage"/>
  <arg name="vehicleHeight" default="0.75"/>
  <arg name="cameraOffsetZ" default="0"/>
  <arg name="vehicleX" default="0"/>
  <arg name="vehicleY" default="0"/>
  <arg name="terrainZ" default="0"/>
  <arg name="vehicleYaw" default="0"/>
  <arg name="gazebo_gui" default="true"/>
  <arg name="checkTerrainConn" default="true"/>

  <include file="$(find ps3joy)/launch/ps3.launch" />

  <include file="$(find local_planner)/launch/local_planner.launch" >
    <arg name="cameraOffsetZ" value="$(arg cameraOffsetZ)"/>
    <arg name="goalX" value="$(arg vehicleX)"/>
    <arg name="goalY" value="$(arg vehicleY)"/>
  </include>

  <include file="$(find terrain_analysis)/launch/terrain_analysis.launch" />

  <include file="$(find terrain_analysis_ext)/launch/terrain_analysis_ext.launch" >
    <arg name="checkTerrainConn" value="$(arg checkTerrainConn)"/>
  </include>

  <include file="$(find vehicle_simulator)/launch/vehicle_simulator.launch" >
    <arg name="world_name" value="$(arg world_name)"/>
    <arg name="vehicleHeight" value="$(arg vehicleHeight)"/>
    <arg name="cameraOffsetZ" value="$(arg cameraOffsetZ)"/>
    <arg name="vehicleX" value="$(arg vehicleX)"/>
    <arg name="vehicleY" value="$(arg vehicleY)"/>
    <arg name="terrainZ" value="$(arg terrainZ)"/>
    <arg name="vehicleYaw" value="$(arg vehicleYaw)"/>
    <arg name="gui" value="$(arg gazebo_gui)"/>
  </include>

  <include file="$(find sensor_scan_generation)/launch/sensor_scan_generation.launch" />

  <include file="$(find visualization_tools)/launch/visualization_tools.launch" >
    <arg name="world_name" value="$(arg world_name)"/>
  </include>

  <node launch-prefix="nice" pkg="rviz" type="rviz" name="rvizGA" args="-d $(find vehicle_simulator)/rviz/vehicle_simulator.rviz" respawn="true"/>

</launch>

二、进入vehicle_simulator.lauch

继续逐段注释运行,发现camera link摄像头传感器和lidar link这段注释后,Gazebo不便秘了。

  <param name="camera_description" command="$(find xacro)/xacro --inorder '$(find vehicle_simulator)/urdf/camera.urdf.xacro'" />
  <node pkg="gazebo_ros" type="spawn_model" name="spawn_camera" args="-urdf -param /camera_description -model camera"/>

  <param name="lidar_description" command="$(find xacro)/xacro --inorder '$(find vehicle_simulator)/urdf/lidar.urdf.xacro'" />
  <node pkg="gazebo_ros" type="spawn_model" name="spawn_lidar" args="-urdf -param /lidar_description -model lidar"/>

  <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find vehicle_simulator)/urdf/robot.urdf.xacro'" />
  <node pkg="gazebo_ros" type="spawn_model" name="spawn_robot" args="-urdf -param /robot_description -model robot"/>

三、最后发现仅注释掉lidar,留下camera能够正常运行

终端显示:

这说明是lidar的问题。

四、查找VLP-16发现这个是16束激光雷达,与普通的相比就是多了空间的概念,能够把立体轮廓扫描出来。

        然后查找Gazebo VLP-16仿真教程,并尝试安装环境、跑一遍。

https://blog.csdn.net/weixin_44570248/article/details/121974171

        最后发现还有包没有安装完毕:

sudo apt-get install ros-noetic-velodyne-*

再次运行,成功运行:

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CMU,[gazebo]process has died.报错解决.VLP-16.velodyne 的相关文章

  • Windows 服务和 Windows 进程有什么区别?

    是什么不同之处窗户之间service和一个窗户process 服务是真正的 Windows 进程 没有区别 服务的唯一特殊之处在于它由操作系统启动并在单独的会话中运行 一种独立的方式 可防止其干扰桌面会话 传统上命名为daemon http
  • 如何停止supervisord.conf文件中指定的单个程序? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想使用supervisor来管理几个进程 我已经在supervisord conf文件中进行了更改 我想稍后停止一些程序 我尝试使用 s
  • 从 java servlet 运行长进程的最佳方法是什么?

    我想问从 java servlet 运行长进程的最佳方法是什么 我有一个网络应用程序 当客户端发出请求时 它会运行一个 servlet 该 servlet 应该从请求中获取一些参数 然后运行一个进程 这个过程可能需要很长时间 所以我需要单独
  • 在 uwsgi 应用程序中运行子进程

    我正在编写一个 Django 应用程序 它需要执行长时间的异步任务 最初的想法是从执行该工作的视图启动一个子流程 并在另一个视图中监视进度 当应用程序通过以下方式启动时 这个想法运行良好manage py runserver 但是当它在 u
  • 为什么在谈论线程和进程时,“不要同时格式化软盘”的评论很有趣?

    我正在阅读之间的区别线程和进程 https stackoverflow com questions 200469 what is the difference between a process and a thread并在第二个答案中发现
  • Xamarin Android:获取内存中的所有进程

    有没有办法读取所有进程 而不仅仅是正在运行的进程 如果我对 Android 的理解正确的话 一次只有一个进程在运行 其他所有进程都被冻结 后台进程被忽略 您可以使用以下代码片段获取当前正在运行的所有 Android 应用程序进程 Activ
  • Java:执行 /cmd /c start path-with-spaces\program.exe

    我已经阅读了很多有关该问题的内容 但我找到的答案并不完全有效 我尝试运行这段代码 String args cmd c start C Program Files XML Marker xmlmarker exe Runtime rt Run
  • 如何以编程方式在 C# 中使用“using”关键字?

    我有一些 System Diagnostics Processes 要运行 我想自动调用它们的 close 方法 显然 using 关键字为我做到了这一点 这是使用using关键字的方法吗 foreach string command in
  • 获取进程的所有 DLL

    我想获取为给定进程加载的所有 dll 的列表 我目前正在使用 NET框架4 0 我知道有一个bug https connect microsoft com VisualStudio feedback details 546430 syste
  • 使用 ProcessBuilder 运行 shell 脚本

    我正在尝试使用 Java 和 ProcessBuilder 运行脚本 当我尝试运行时 我收到以下消息 error 2 没有这样的文件或目录 我不知道我做错了什么 但这是我的代码 ps 我尝试只执行不带参数的脚本 错误是相同的 String
  • 使用 strace 修复挂起内存问题

    我有一个在 RHEL6 x 64 位 上运行的多线程进程 我发现当我尝试启动该进程时 该进程挂起并且大多数线程 同一进程的 崩溃 有些线程等待线程之间的共享内存被创建 我可以看到所有的共享内存都没有被创建 但是当我使用 strace 时 进
  • AMQP延迟传递并防止重复消息

    我有一个会偶尔生成消息的系统 我只想每 5 分钟提交零条或一条消息 如果没有生成消息 队列消费者将不会处理任何内容 如果 5 分钟内生成一百条相同的消息 我只希望从队列中使用其中一条 我正在使用AMQP RabbitMQ 有没有办法在rab
  • 有什么工具可以了解 Windows 中正在运行的进程的布局(段)?

    我一直很好奇 该进程在内存中到底是什么样子的 其中有哪些不同的部分 部分 程序 在磁盘上 和进程 在内存中 到底是如何相关的 我之前的问题 有关可执行程序 进程 的内存布局的更多信息 https stackoverflow com ques
  • Runtime.getRuntime().exec(cmd) 挂起

    我正在执行一个命令 该命令返回文件的修订号 文件名 但如果执行命令时出现问题 应用程序就会挂起 我可以做什么来避免这种情况 请在下面找到我的代码 String cmd cmd C si viewhistory fields revision
  • 检测 C++/Win32 中的进程崩溃

    我正在开发一个包含 2 个程序的软件 Qt Main exe OpenGL Game exe 我们一开始总是使用 Qt Main exe 当我们点击 开始游戏 按钮时 我们执行OpenGL Game exe 这样做没问题 问题是 有时我们的
  • 向父进程发出信号,表明子进程已完全初始化

    我正在启动一个公开 WCF 端点的子进程 如何从子进程向父进程发出信号 表明子进程已完全初始化并且现在可以访问端点 我曾考虑过使用信号量来实现此目的 但不太清楚如何实现所需的信号 string pipeUri net pipe localh
  • cron 任务是否会阻塞主进程或者nodejs 会创建一个worker 来执行cron 任务

    我在用节点 cron https github com ncb000gt node cron每分钟执行一些繁重的任务 更新数据库 这个任务是使用主进程来工作还是nodejs会创建一些工作人员来完成这些任务 var CronJob requi
  • 是否可以将 Activity 作为新进程启动

    我遇到这种情况 我必须从我的 mainActivity 开始一个活动 但我希望这个新活动作为新进程启动 使用新进程 ID 在android中是否可以实现这一点 任何帮助表示赞赏 就放android process 进程名称 AndroidM
  • 如何在 alpine 中使用 ps 命令获取特定 PID 的进程名称

    在基于 ubuntu 的 docker os 中 ps PID USER TIME COMMAND 1 postgres 0 00 postgres 47 postgres 0 00 postgres checkpointer proces
  • 从 java 与 C++ 程序通信

    我想从 java 中执行外部 exe 程序 exe 是一个 CLI 应用程序 它在运行时 scanf 中获取输入并根据输入进行输出 我可以使用 java 调用要执行的程序 Process p Runtime getRuntime exec

随机推荐