Giter VIP home page Giter VIP logo

velodyne_simulator's Introduction

Velodyne Simulator

URDF description and Gazebo plugins to simulate Velodyne laser scanners

rviz screenshot

Features

Parameters

  • *origin URDF transform from parent link.
  • parent URDF parent link name. Default base_link
  • name URDF model name. Also used as tf frame_id for PointCloud2 output. Default velodyne
  • topic PointCloud2 output topic name. Default /velodyne_points
  • hz Update rate in hz. Default 10
  • lasers Number of vertical spinning lasers. Default VLP-16: 16, HDL-32E: 32
  • samples Nuber of horizontal rotating samples. Default VLP-16: 1875, HDL-32E: 2187
  • min_range Minimum range value in meters. Default 0.9
  • max_range Maximum range value in meters. Default 130.0
  • noise Gausian noise value in meters. Default 0.008
  • min_angle Minimum horizontal angle in radians. Default -3.14
  • max_angle Maximum horizontal angle in radians. Default 3.14
  • gpu Use gpu_ray sensor instead of the standard ray sensor. Default false
  • min_intensity The minimum intensity beneath which returns will be clipped. Can be used to remove low-intensity objects.

Known Issues

  • At full sample resolution, Gazebo can take up to 30 seconds to load the VLP-16 pluggin, 60 seconds for the HDL-32E
  • With the default Gazebo version shipped with ROS, ranges are incorrect when accelerated with the GPU option (issue,image)
  • Gazebo cannot maintain 10Hz with large pointclouds
    • Solution: User can reduce number of points (samples) or frequency (hz) in the urdf parameters, see example.urdf.xacro
  • Gazebo crashes when updating HDL-32E sensors with default number of points. "Took over 1.0 seconds to update a sensor."
    • Solution: User can reduce number of points in urdf (same as above)
  • Gazebo versions in indigo and jade have different z orientations
    • Solution: Maintain separate branches for urdf changes (gazebo2 and master)

Example Gazebo Robot

roslaunch velodyne_description example.launch

Example Gazebo Robot (with GPU)

roslaunch velodyne_description example.launch gpu:=true

velodyne_simulator's People

Contributors

clalancette avatar hidmic avatar iantheengineer avatar jonathanwheare avatar khallenbeck-dsi avatar kmhallen avatar roboterbastler avatar robustify avatar thekvs avatar xqms avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

velodyne_simulator's Issues

Velodyne not working with turtlebot4

Hy.

I'm trying to implement a VLP16 from this repo in the turtlebot4 simulator avaliable here: https://github.com/turtlebot/turtlebot4_robot

Following the steps described at this issue I managed to import the model so it appears on gazebo, but the velodyne is not working: turtlebot/turtlebot4_simulator#46

This simulator works with ROS2 humble and gazebo ignition. Then my question is, this velodyne works with gazebo ignition?

If so, here is what I did:

  • First I get all the packages from this repo (velodyne_description, velodyne_gazebo_plugins and velodyne_simulator).
  • Then I copied the script of the issue, and added the following in the turtlebot xacro's file:
<!-- Path to the copied file -->
<xacro:include filename="$(find turtlebot4_sim)/urdf/sensors/velodyne_lidar.urdf.xacro" />

<!-- At the bottom of the file, where the sensors are imported -->
<xacro:velodyne_lidar name="velodyne" parent_link="shell_link">
    <origin xyz="${velodyne_x_offset} ${velodyne_y_offset} ${velodyne_z_offset}" rpy="0 0 0" />
</xacro:velodyne_lidar>
  • Then I added all the dependencies and paths as described at the mentioned issue.

At this point I can see the velodyne attached to the robot, but it isn't working. I don't have any topic in the ros2 topic list, and I'm pretty sure the velodyne is not running. So my second question is, does the velodyne need to be turned on? If so, how can i do it?

Digging at turtlebot4's code I found they connected the rplidar and the oak camera using gz_ros_bridge (file ros_ign_bridge.launch.py from turtlebot4 repo). Maybe I have to do something similar? I tried with this, but i didnt worked (it said that the topic was not found):

velodyne_bridge = Node(
    package='ros_gz_bridge',
    executable='parameter_bridge',
    name='velodyne_bridge',
    output='screen',
    parameters=[{
        'use_sim_time': use_sim_time
    }],
    arguments=[
        [namespace,
        '/sensors/velodyne/velodyne_scan' +
        '@sensor_msgs/PointCloud2[ignition.msgs.PointCloudPacked']
    ],
    )

Pd: I checked the example launcher found at "velodyne_description" and everything was working fine (at least in gazebo classic).

Missing model config, unable to insert model.

[Err] [InsertModelWidget.cc:426] Missing model.config for model "/ws/install/velodyne_description/share/ament_index"
[gazebo-3] [Err] [InsertModelWidget.cc:426] Missing model.config for model "/ws/install/velodyne_description/share/colcon-core"
[gazebo-3] [Err] [InsertModelWidget.cc:426] Missing model.config for model "/ws/install/velodyne_description/share/velodyne_description"
[gazebo-3]

May I know if anyone encountered this issue? Any directions to resolve them?

model:// uri

Hi,

In the .urdf files for the VLP16, I see you've used the package:// URI which defaults to model://.

In ROS 1, we could configure the URI through the tag within package.xml. However, in ROS 2 this functionality seems to be missing (leading to a host of "File or path does not exist" errors for the meshes after a long timeout searching through Gazebo's model repository.

Would it be more "general" if the package:// URI be swapped with file://, and paths be manually configured?

Thank you!

[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_scan.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_scan.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_scan.dae]
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_2.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_2.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_2.dae]
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_1.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_1.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_1.dae]
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_scan.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_scan.dae]
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_1.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_1.dae]
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_2.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_2.dae]
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_scan.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_scan.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_scan.dae]
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_1.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_1.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_1.dae]
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_2.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_2.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_2.dae]
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_scan.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_scan.dae]
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_1.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_1.dae]
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_2.dae]
[Err] [Visual.cc:2953] No mesh specified
[Wrn] [SystemPaths.cc:459] File or path does not exist [""] [model://velodyne_description/meshes/VLP16_base_2.dae]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.