ros-perception / pointcloud_to_laserscan Goto Github PK
View Code? Open in Web Editor NEWConverts a 3D Point Cloud into a 2D laser scan.
Home Page: http://wiki.ros.org/pointcloud_to_laserscan
License: BSD 3-Clause "New" or "Revised" License
Converts a 3D Point Cloud into a 2D laser scan.
Home Page: http://wiki.ros.org/pointcloud_to_laserscan
License: BSD 3-Clause "New" or "Revised" License
Hi,
First of all, thanks a lot for this great package!
There is one point I find quite misleading in the documentation : the explanation of the "scan_time" parameter.
On the wiki :
~scan_time (double, default: 1.0/30.0)
The scan rate in seconds.
And on the readme on git :
scan_time (double, default: 1.0/30.0) - The scan rate in seconds. Used to populate the output laser scan.
The first definitions leads to think that this parameter enables to down-sample the frequency of the output messages.
The second definition is quite unclear, weather it is the down-sampling the output messages or just for filling the messages.
After asking on Ros Answers it seems that the scan_time is only put into the corresponding field of the output messages, and not used for any computations.
If the conclusions are correct, I would suggest changing the message to a clearer one, for example :
scan_time (double, default: 1.0/30.0) - The scan rate in seconds. Only used to populate the scan_time field of the output laser scan message.
Thanks a lot in advance
Best regards
Felix
Data on the scan
topic still contains inf data points even when use_inf
is false. To remedy this, range_max
must be set to something, and use_inf
must be false. In other words, the default value of range_max
does not seem to affect the infinite range (defined as range_max
+ 1 if use_inf
is false). Instead, range_max
must explicitly be given a value in order for the infinite range to be range_max
+ 1.
What's the difference between Laserscan and pointcloud?
Hi, is there a release version for jade and kinetic? Thanks!
In the documentation, it says that angle_min
defaults to -pi/2 and angle_max
defaults to pi/2. But they actually default to -pi and pi respectively.
It seems that either you should also skip angles that equal the value of angle_max
here:
Or make the number of range readings one item larger here:
Otherwise you'll have an out-of-bounds array element access when one day there is an angle of the value angle_max
.
Note that I have posted a question here about how many values the sensor_msgs::LaserScan should actually contain, because I'm not sure if angle_max
really is supposed to be excluded from the range of values.
I launched the following launch file to run pointcloud_to_laserscan_node but could not find the cloud_in
topic which is used to input pointcloud data into the node
<!-- run pointcloud_to_laserscan node -->
<node pkg="pointcloud_to_laserscan" type="pointcloud_to_laserscan_node" name="pointcloud_to_laserscan">
<rosparam>
target_frame: camera_link # Leave disabled to output scan in pointcloud frame
transform_tolerance: 0.01
min_height: 0.0
max_height: 1.0
angle_min: -1.5708 # -M_PI/2
angle_max: 1.5708 # M_PI/2
angle_increment: 0.0087 # M_PI/360.0
scan_time: 0.3333
range_min: 0.45
range_max: 4.0
use_inf: true
inf_epsilon: 1.0
# Concurrency level, affects number of pointclouds queued for processing and number of threads used
# 0 : Detect number of cores
# 1 : Single threaded
# 2->inf : Parallelism level
concurrency_level: 1
</rosparam>
</node>
On doing a rostopic list with this launch file running, the following topics were listed.
/clock /rosout /rosout_agg /scan /tf /tf_static
How can input point cloud to the node?
I came here from ROS tutorial. Where can I find pointcloud_to_laserscan for ROS1?
Hello, I ran ./file_name.py to run a python file on ros2 supported open source . But I am getting the following error: I followed the installation instructions in the Ros2 basic documentation and just run the file.
to_laserscan_launch.py
Traceback (most recent call last):
File "./sample_pointcloud_to_laserscan_launch.py", line 3, in <module>
from launch import LaunchDescription
ImportError: No module named launch
#!/usr/bin/python
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
def generate_launch_description():
return LaunchDescription([
DeclareLaunchArgument(
name='scanner', default_value='scanner',
description='Namespace for sample topics'
),
Node(
package='pointcloud_to_laserscan', executable='dummy_pointcloud_publisher',
remappings=[('cloud', [LaunchConfiguration(variable_name='scanner'), '/cloud'])],
parameters=[{'cloud_frame_id': 'cloud', 'cloud_extent': 2.0, 'cloud_size': 500}],
name='cloud_publisher'
),
Node(
package='tf2_ros',
executable='static_transform_publisher',
name='static_transform_publisher',
arguments=['0', '0', '0', '0', '0', '0', '1', 'map', 'cloud']
),
Node(
package='pointcloud_to_laserscan', executable='pointcloud_to_laserscan_node',
remappings=[('cloud_in', [LaunchConfiguration(variable_name='scanner'), '/cloud']),
('scan', [LaunchConfiguration(variable_name='scanner'), '/scan'])],
parameters=[{
'target_frame': 'cloud',
'transform_tolerance': 0.01,
'min_height': 0.0,
'max_height': 1.0,
'angle_min': -1.5708, # -M_PI/2
'angle_max': 1.5708, # M_PI/2
'angle_increment': 0.0087, # M_PI/360.0
'scan_time': 0.3333,
'range_min': 0.45,
'range_max': 4.0,
'use_inf': True,
'inf_epsilon': 1.0
}],
name='pointcloud_to_laserscan'
)
])
Actually, I posted it on the ros wiki, but I didn't get a reply.
Hi,
I am using the library (pointcloud_to laserscan) and I successfully made it work and communicate with the other nodes.My problem is that I have very few points and my laser data in rviz. The depthimage_to_laserscan library is doing the same thing, but the "resolution" of the output is a lot better(they are just a lot of points in the laser line). I want to ask if they are any arguments or parameters that can change the resolution of the output laser scan from the library. Any kind of help or idea will be very helpful.
Is it possible to make a galactic and rolling release for pointcloud_to_laserscan
?
Just the normal foxy package works fine on galactic for us, but it is easier to not have it included in a workspace.
Would you mind releasing this package also for the newest distribution ROS Noetic? :)
Can we get a Noetic release :)?
Hey there,
I would like to use your node to transform a pointcloud to a laserscan. I'm working on Ubuntu 20.04 with the ros2 foxy branch.
I attached a minimal launch file and a node to subscribe and simply publish the subscribed topic as it was. It doesn't work.
If I subscribe the topic in cmd, the message "Got a subscriber to laserscan, starting pointcloud subscriber" shows up, if I stop the echo output in cmd, the message "No subscribers to laserscan, shutting down pointcloud subscriber" shows up.
With and without the subscriber it seems that your node doesn't start working, because my subscriber to /scan (simply echo the topic in cmd) doesn't get published messages.
minimal_launch.py.txt
pub_sub_node.cpp.txt
Can we convert the sparse point cloud generated from Orb Slam to convert to Laserscan type?
I need this package for kinetic. I do not see a branch for kinetic.
Hello!
I am using ROS Kinetic and facing a weird issue here. Unable to subscribe to my pointcloud using your package. It works fine with simulation, but not with bag or real lidar.
I have tried every possible combination of trick I could think of, including changing the cpp file to subscribe to topic directly, sampling pointcloud, remapping and God knows what. Still unable to subscribe to my Velodyne. Can anyone suggest what might be the problem. I will appreciate any help in this regard.
After the minimum range is checked here, the point is dropped when the value is smaller than range_min_
.
Another check should be performed to also skip readings beyond the maximum range (threshold determined by the parameter range_max
).
Example:
[...]
else if (range > range_max_) {
NODELET_DEBUG("rejected for range %f above maximum value %f. Point: (%f, %f, %f)", range, range_max_, *iter_x, *iter_y, *iter_z);
continue;
}
[...]
Unfortunately I can't make a PR right now. Maybe I will get to that later.
i can compile this package successfully, i use 'rosrun pointcloud_to_laserscan pointcloud_to_laserscan_node' to launch the node successfully because there is a node called /pointcloud_to_laserscan_node and a topic called /scan. And i also rosbag a velodyne bag, there is data coming out from my topic /velodyne_points, but /scan cannot get inputs from /velodyne_points!!! by the way, i have already changed the topic name in code from /cloud_in to /velodyne_points.
Hi, when i download your programm and try to catkin_make it, I get the following error:
This workspace contains non-catkin packages in it, and catkin cannot build a non-homogeneous workspace without isolation. Try the 'catkin_make_isolated' command instead.
I thought that maybe your program is in ROS2, but my environment is ROS. Do you have the versions in ROS?
thanks:)
The scan works in RVIZ2, but using ros2 topic echo /scan
raises the following error:
$ ros2 topic echo /scan
Unable to convert call argument '0' of type 'object' to Python object
tf2_->transform(*cloud_msg, *cloud, target_frame_, ros::Duration(tolerance_));
high cpu usage -_-
I was trying to build this package and was getting "Package failed" with no error message.
I'm using ROS2 Foxy on Windows 10 with Visual Studio 2019.
By using this command while building:
colcon build --packages-select pointcloud_to_laserscan --event-handlers console_cohesion+
I was able to find this error :
"error C2065: 'M_PI': undeclared identifier [C:\nav2_ws\build\pointcloud_to_laserscan\pointcloud_to_laserscan.vcxproj]"
I was able to build it by adding this line to "pointcloud_to_laserscan/pointcloud_to_laserscan_node.cpp" :
#define M_PI 3.14159265358979323846
I hope this helps. I'm not sure if that was the right approach as I'm quite new to ROS!
Regards,
Xavier Trudeau
I tried pointcloud_to_laserscan node and it works. When I try to use the nodelet instead, it fails.
I get this error:
Failed to load nodelet [/front_pointclout_to_laser] of type [pointcloud_to_laserscan/point_cloud_to_laserscan_nodelet] even after refreshing the cache: According to the loaded plugin descriptions the class pointcloud_to_laserscan/point_cloud_to_laserscan_nodelet with base class type nodelet::Nodelet does not exist. Declared types are camshift/camshift contour_moments/contour_moments convex_hull/convex_hull depth_image_proc/convert_metric depth_image_proc/crop_foremost depth_image_proc/disparity depth_image_proc/point_cloud_xyz depth_image_proc/point_cloud_xyz_radial depth_image_proc/point_cloud_xyzi depth_image_proc/point_cloud_xyzi_radial depth_image_proc/point_cloud_xyzrgb depth_image_proc/register depthimage_to_laserscan/DepthImageToLaserScanNodelet edge_detection/edge_detection face_detection/face_detection fback_flow/fback_flow find_contours/find_contours freenect_camera/driver general_contours/general_contours goodfeature_track/goodfeature_track hough_circles/hough_circles hough_lines/hough_lines image_proc/crop_decimate image_proc/crop_nonZero image_proc/debayer image_proc/rectify image_rotate/image_rotate image_view/disparity image_view/image kobuki_auto_docking/AutoDockingNodelet kobuki_bumper2pc/Bumper2PcNodelet kobuki_node/KobukiNodelet kobuki_random_walker/RandomWalkerControllerNodelet kobuki_safety_controller/SafetyControllerNodelet laser_scan_matcher/LaserScanMatcherNodelet lk_flow/lk_flow nodelet_tutorial_math/Plus octomap_server/OctomapServerNodelet openni2_camera/OpenNI2DriverNodelet pcl/BAGReader pcl/BoundaryEstimation pcl/ConvexHull2D pcl/CropBox pcl/EuclideanClusterExtraction pcl/ExtractIndices pcl/ExtractPolygonalPrismData pcl/FPFHEstimation pcl/FPFHEstimationOMP pcl/MomentInvariantsEstimation pcl/MovingLeastSquares pcl/NodeletDEMUX pcl/NodeletMUX pcl/NormalEstimation pcl/NormalEstimationOMP pcl/NormalEstimationTBB pcl/PCDReader pcl/PCDWriter pcl/PFHEstimation pcl/PassThrough pcl/PointCloudConcatenateDataSynchronizer pcl/PointCloudConcatenateFieldsSynchronizer pcl/PrincipalCurvaturesEstimation pcl/ProjectInliers pcl/RadiusOutlierRemoval pcl/SACSegmentation pcl/SACSegmentationFromNormals pcl/SHOTEstimation pcl/SHOTEstimationOMP pcl/SegmentDifferences pcl/StatisticalOutlierRemoval pcl/VFHEstimation pcl/VoxelGrid people_detect/people_detect phase_corr/phase_corr pico_flexx_driver/pico_flexx_nodelet pointcloud_to_laserscan/pointcloud_to_laserscan_nodelet segment_objects/segment_objects simple_compressed_example/simple_compressed_example simple_example/simple_example simple_flow/simple_flow stdr_robot/Robot stereo_image_proc/disparity stereo_image_proc/point_cloud2 toru_cmd_vel_mux/CmdVelMuxNodelet turtlebot_follower/TurtlebotFollower watershed_segmentation/watershed_segmentation yocs_cmd_vel_mux/CmdVelMuxNodelet yocs_velocity_smoother/VelocitySmootherNodelet
I have a launch file like this:
<launch>
<arg name="nodelet_manager" default="nodelet_manager" />
<arg name="nodelet_name" default="pointcloud_to_laserscan" />
<!-- pointcloud to laserscan nodelet -->
<node pkg="nodelet" type="nodelet" name="$(arg nodelet_name)"
args="load pointcloud_to_laserscan/point_cloud_to_laserscan_nodelet $(arg nodelet_manager)"
respawn="true" output="screen">
<rosparam>
transform_tolerance: 0.01
min_height: 0.0
max_height: 1.0
angle_min: -1.5708 # -M_PI/2
angle_max: 1.5708 # M_PI/2
angle_increment: 0.087 # M_PI/360.0
scan_time: 0.3333
range_min: 0.45
range_max: 4.0
use_inf: true
# Concurrency level, affects number of pointclouds queued for processing and number of threads used
#0 : Detect number of cores
#1 : Single threaded
#2->inf : Parallelism level
concurrency_level: 1
</rosparam>
</node>
</launch>
Included by another launch file:
<launch>
<arg name="nodelet_manager" value="nodelet_manager" />
<arg name="start_manager" default="true"/>
<!-- Nodelet manager. -->
<node pkg="nodelet" type="nodelet" name="$(arg nodelet_manager)" args="manager"
if="$(arg start_manager)" output="screen"/>
<!-- front pointcloud to laserscan -->
<include file="$(find pico_flexx_driver)/launch/includes/pointcloud_to_laserscan_nodelet.launch">
<arg name="nodelet_manager" value="$(arg nodelet_manager)" />
<arg name="nodelet_name" value="front_pointclout_to_laser" />
</include>
</launch>
why does it crash?
I am using ros indigo on Ubuntu 14.04 and installed pointcloud_to_laserscan from the deb package.
hi,
i noticed there is a 'angle_increment' parameter. is 'angle_increment' for input data or output data? And if this for input data(which mean set this parameter by checking lidar's hardware manual), vertical resolution or horizontal resolution this refer to?
many thanks
when i was cmaking, errors occurred.
Could not find a package configuration file provided by "message_filters" with any of the following names:
message_filtersConfig.cmake
message_filters-config.cmake
then i think is my version of ros2, my ros2 version is bouncy, can you tell me which version is your ros2
Hi I have been tring to use this package for some time now but no success. Maybe I am just configuring wrong.
So I have a gazebo simulation running with a kinetic camera plugin that is generating a sensor_msgs/PointCloud2.
Here is a configuration part that I am using
<sensor name="front_camera" type="depth">
<update_rate>50</update_rate>
<camera>
<horizontal_fov>1.518436</horizontal_fov>
<image>
<format>L8</format>
<width>424</width>
<height>240</height>
</image>
<clip>
<near>0.35</near>
<far>15</far>
</clip>
</camera>
<plugin filename="libgazebo_ros_depth_camera.so" name="camera_controller">
<cameraName>camera_front</cameraName>
<alwaysOn>true</alwaysOn>
<updateRate>20</updateRate>
<pointCloudCutoff>0.2</pointCloudCutoff>
<pointCloudCutoffMax>20</pointCloudCutoffMax>
<imageTopicName>rgb/image_raw</imageTopicName>
<cameraInfoTopicName>rgb/camera_info</cameraInfoTopicName>
<depthImageTopicName>depth/image_raw</depthImageTopicName>
<depthImageCameraInfoTopicName>depth/camera_info</depthImageCameraInfoTopicName>
<pointCloudTopicName>depth/points</pointCloudTopicName>
<frameName>front_camera_link</frameName>
<distortion_k1>0.0</distortion_k1>
<distortion_k2>0.0</distortion_k2>
<distortion_k3>0.0</distortion_k3>
<distortion_t1>0.0</distortion_t1>
<distortion_t2>0.0</distortion_t2>
And this is what I changed in the launch file from
<arg name="camera" default="camera_front" />
<!-- run pointcloud_to_laserscan node -->
<node pkg="pointcloud_to_laserscan" type="pointcloud_to_laserscan_node" name="pointcloud_to_laserscan">
<remap from="cloud_in" to="/camera_front/depth/points"/>
<remap from="scan" to="/camera_front/scan"/>
<rosparam>
target_frame: front_camera_link # Leave disabled to output scan in pointcloud frame
transform_tolerance: 0.01
min_height: 0.0
max_height: 3
angle_min: -0.7592 # -M_PI/2
angle_max: 0.7592 # M_PI/2
angle_increment: 0.003581217 # M_PI/360.0
scan_time: 0.3333
range_min: 0.45
range_max: 4.0
use_inf: true
inf_epsilon: 1.0
But the laserscan output is like this:
Please notice that I have two frames for the camera since Gazebo(Z forward) uses a different convention than ROS(x forward).
Any idea What I might be doing wrong ? Or Why this is not working?
Any help would be much appreciated.
I am having an issue where the node seems to stop publishing the scan a few seconds after it starts. The scan is published properly for the first few seconds and I can see it in rviz, but after maybe 5 seconds it stops. I am using ROS2 Galactic with the foxy branch of this repo.
Here is the node in the launch file:
Node(
package='pointcloud_to_laserscan', executable='pointcloud_to_laserscan_node',
remappings=[('cloud_in', '/camera/depth/points'),
('scan', '/scan')],
parameters=[{
'min_height': 0.0,
'max_height': 1.0,
'angle_min': -1.5708, # -M_PI/2
'angle_max': 1.5708, # M_PI/2
'angle_increment': 0.0087, # M_PI/360.0
'scan_time': 0.3333,
'range_min': 0.3,
'range_max': 10.0,
'use_inf': True,
'inf_epsilon': 1.0
}],
name='pointcloud_to_laserscan'
)
Hello!
Thank you for making this package. However, I am having issues with subscribing to the output laser scans.
When I launch sample_pointcloud_to_laserscan_launch.py and subscribe to it in RViz, it shows Showing [0] points from [0] messages and the node indicates that it is not processing any input due to a lack of subscribers.
However, ros2 topic echo counts as a valid subscriber and when I wrote a sample node to subscribe to it, it does not work as well.
Do you know why this happens?
Regards,
Zeon
how should i do?
/home/wuxin/slam-algorithm/pointcloud_to_laserscan/src/laserscan_to_pointcloud_node.cpp:67:10: fatal error: tf2_ros/create_timer_ros.h: No such file or directory
#include "tf2_ros/create_timer_ros.h"
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
CMakeFiles/laserscan_to_pointcloud.dir/build.make:62: recipe for target 'CMakeFiles/laserscan_to_pointcloud.dir/src/laserscan_to_pointcloud_node.cpp.o' failed
make[2]: *** [CMakeFiles/laserscan_to_pointcloud.dir/src/laserscan_to_pointcloud_node.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/laserscan_to_pointcloud.dir/all' failed
make[1]: *** [CMakeFiles/laserscan_to_pointcloud.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Hey you all!
I'm trying to get laserscan readings from a 3D point cloud from a lidar in ignitio gazebo fortress. I can see the pointcloud just fine in rviz after i bridged it but haven't managed to use the pointcloud_to_laserscan package. If i try to run ros2 run pointcloud_to_laserscan pointcloud_to_laserscan_node --ros-args --remap cloud_in:="/model/prius_hybrid/laserscan/points", nothing happens, no node or topic created.
I also tried with the launch file provided, sample_pointcloud_to_laserscan_launch.py and tweaked a little with the params. With that the node is created and the topics /cloud and /scan as well, il post the launch file, my /scan topic echo and my /cloud topic echo, as well a img of my rviz and ignition and my ign topic list and ros2 topic list:
My sample_pointcloud_to_laserscan.launch.py
`
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
def generate_launch_description():
return LaunchDescription([
DeclareLaunchArgument(
name='scanner', default_value='model/prius_hybrid/laserscan',
description='Namespace for sample topics'
),
Node(
package='pointcloud_to_laserscan', executable='dummy_pointcloud_publisher',
remappings=[('cloud', [LaunchConfiguration(variable_name='scanner'), '/cloud'])],
parameters=[{'cloud_frame_id': 'cloud', 'cloud_extent': 2.0, 'cloud_size': 500}],
name='cloud_publisher'
),
Node(
package='tf2_ros',
executable='static_transform_publisher',
name='static_transform_publisher',
arguments=['0', '0', '0', '0', '0', '0', '1', 'map', 'cloud']
),
Node(
package='pointcloud_to_laserscan', executable='pointcloud_to_laserscan_node',
remappings=[('cloud_in', [LaunchConfiguration(variable_name='scanner'), '/points']),
('scan', [LaunchConfiguration(variable_name='scanner'), '/scan'])],
parameters=[{
'target_frame': 'prius_hybrid/base_link/lidar',
'transform_tolerance': 0.01,
'min_height': 0.0,
'max_height': 1.0,
'angle_min': -3.14, # -M_PI/2
'angle_max': 3.14, # M_PI/2
'angle_increment': 0.0087, # M_PI/360.0
'scan_time': 0.3333,
'range_min': 0.45,
'range_max': 10.0,
'use_inf': True,
'inf_epsilon': 1.0
}],
name='pointcloud_to_laserscan'
)
])
`
My /scan topic echo:
`
header:
stamp:
sec: 1451
nanosec: 400000000
frame_id: prius_hybrid/base_link/lidar
angle_min: -3.140000104904175
angle_max: 3.140000104904175
angle_increment: 0.008700000122189522
time_increment: 0.0
scan_time: 0.33329999446868896
range_min: 0.44999998807907104
range_max: 10.0
ranges:
`
My echo on /cloud topic:
`
header:
stamp:
sec: 1653517593
nanosec: 138440161
frame_id: cloud
height: 1
width: 500
fields:
`
My ros2 topic list:
/clock
/joint_states
/model/prius_hybrid/laserscan/cloud
/model/prius_hybrid/laserscan/points
/model/prius_hybrid/laserscan/scan
/parameter_events
/robot_description
/rosout
/scanner/scan
/tf
/tf_static
My ign topic list:
/clock
/gazebo/resource_paths
/gui/camera/pose
/model/prius_hybrid/imu
/model/prius_hybrid/laserscan
/model/prius_hybrid/laserscan/points
/model/prius_hybrid/odometry
/stats
/world/empty/clock
/world/empty/dynamic_pose/info
/world/empty/model/prius_hybrid/joint_state
/world/empty/pose/info
/world/empty/scene/deletion
/world/empty/scene/info
/world/empty/state
/world/empty/stats
I've already tried to change the max and min height, the target frames, scan time, range max and diferent namespaces. All help will be welcomed, thank you all!
Is it possible to make a foxy release of pointcloud_to_laserscan?
I am trying to convert Pointcloud2 msg to laser scan, I mapped the input topic in the launch file . the out laser scan topic is empty ?.
Hi all!
I tried running the pointcloud to laserscan node, by launching the node and remapping cloud_in
to my pointcloud topic. I then checked the rqt node graph to see if everything looks nice and connected. But it doesn't! I did some digging and realized that the you must subscribe to the laserscan output before the node will subscribe to the pointcloud input. This was confusing for me. Can we document this behaviour somewhere? I suppose the wiki page is a good location. I tried editing it myself, but I'm having issues with my ros.org login. Another, maybe better way is to have the node print something like "waiting for someone to subscribe to " when starting if nobody subscribes right away, then it will be very clear to the user what he needs to do.
Hi i am trying to transfrom PointCloud2 message from a lidar sensor to laserscan for using in hector_slam but when i launch the launch file and try to make rostopic echo for check it gives errors like these:
Can't transform pointcloud from frame velodyne to camera_link at time 1588865937.438738688, reason: 0
rostopic list shows that /sensor/lidar subscribed by pointcloud_to_laserscan
but rostopic echo gives nothings
and here is my launch file:
`
<!-- run pointcloud_to_laserscan node -->
<node pkg="pointcloud_to_laserscan" type="pointcloud_to_laserscan_node" name="pointcloud_to_laserscan">
<remap from="cloud_in" to="sensor/lidar"/>
<remap from="scan" to="sensor/lidarL"/>
<rosparam>
target_frame: camera_link # Leave disabled to output scan in pointcloud frame
transform_tolerance: 0.01
min_height: 0.0
max_height: 3.0
angle_min: -1.5708 # -M_PI/2
angle_max: 1.5708 # M_PI/2
angle_increment: 0.0087 # M_PI/360.0
scan_time: 0.3333
range_min: 0.45
range_max: 9.0
use_inf: true
inf_epsilon: 1.0
# Concurrency level, affects number of pointclouds queued for processing and number of threads used
# 0 : Detect number of cores
# 1 : Single threaded
# 2->inf : Parallelism level
concurrency_level: 1
</rosparam>
</node>
`
Running >rosrun nodelet declared_nodelets
Does not show pointcloud_to_laserscan in either ROS-kinetic or ROS-lunar.
System was installed on Ubuntu-16.04 using command
sudo apt-get install ros-kinetic-desktop-full (or ros-lunar-desktop-full)
If nodelets aren't available, does this require an installation of catkin and a ros launch file
such as: https://answers.ros.org/question/37312/problem-running-pointcloud_to_laserscan-launch-file/ ?
Not sure whether I am at the right address here but wouldn't it be nice to also add a laserscan_to_pointcloud
package? I could do the initial package, but I do not have any rights in the perception group.
Hi,
I am getting a curved point cloud for some reason for some scenes even though there are no curved objects. I used the exact same parameters as shown in the pointcloud_to_laserscan_node.cpp. I am using a RealSense camera. Also, when pointed to a wall, it does not show any laserscan. The wall might be at a distance of a meter.
Kindly help me...
Thank you..
Regards,
Karan Manghi
i write a a code publish sensor data (pointcloud) to /cloud_in
i can view the points in rviz2, seems no problem
then run:
ros2 run pointcloud_to_laserscan pointcloud_to_laserscan_node --ros-args -p angle_min:=-1.0471975511965976 -p angle_max:=1.0471975511965976
a /scan topic is created, but all data is - .inf
how to resolve the problem?
my ros2 version is foxy
Thank you very much!
I download the code and compile it by my self but when I use the .launch file author provided I can not subscribe any topic,I can echo the /camera/depth/points and can output cloud data but when I use launch there isn't any link to node pointcloud_to_laserscan.So I want to ask how to use the code,just simplely launch sample_node.launch?If not,please tell me how.
I only change the remap :remap from="/cloud_in" to="/camera/depth/points"/,and I use the origin code still cannot work.
Hi,
for a project I am working on I would need to convert a PointCloud2 message to LaserScan message. I am developing my code in ROS1 (melodic) and Python and I would like to make this procedure fully working inside my Python code. I would ask if there exist a version of this package working in ROS1 and maybe if it already exists or it will be provided a version of this package for Python too.
Thanks in advance for the answer.
Best Regards.
It looks the recent update on this repository is not yet released. (e.g. #28 )
@paulbovbel
Could you please release on kinetic and later distros if there is no problem?
The error is ROS1 recognize "pointcloud_to_laserscan" as cmake package.
how can i solve this problem?
Hi, when I launch the sample_node.launch with camera arg as "xtion", it all populates at the right places but I have no laserscan published, am I missing something ?
Otherwise with the default "camera" name everything works fine, I can see my laserscan in Rviz.
Thanks!
There is no official kinetic release yet.
Hi,
I am working on sensor fusion which I take readings from lidar and 3D cameras, combine them and then publish them as one scan topic. I thought this package may be a good fit for this usage. However, when I want the laserscan to be generated on the specific frame (the sensor frame), it does not work unless I change the frame to base link. May I know how should I deal with this matter ?
When running a the following command: roslaunch pointcloud_to_laserscan sample_node.launch
I get this error:
process[pointcloud_to_laserscan-16]: started with pid [28156]
terminate called after throwing an instance of 'pluginlib::InvalidXMLException'
what(): XML Document has no Root Element. This likely means the XML is malformed or missing.
I am running ROS Lunar. Could anybody assist me?
Hi,
Is there any package going to be released for melodic in the near future?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.