解决方法:
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-*
再次运行,成功运行: