-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #126 from una-auxme:115-feature-research-lidar-data
115 feature research lidar data
- Loading branch information
Showing
1 changed file
with
55 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# LIDAR-Data | ||
|
||
This File discusses where the LIDAR-Data comes from, how its processed and how we could possibly use it. | ||
|
||
## Origin | ||
|
||
LIDAR-Data comes in Pointclouds from a specific LIDAR-Topic. | ||
|
||
`rospy.Subscriber(rospy.get_param('~source_topic', "/carla/hero/LIDAR"), | ||
PointCloud2, self.callback)` | ||
|
||
Read more about the LIDAR-Sensor [here](https://github.com/una-auxme/paf23/blob/main/doc/06_perception/03_lidar_distance_utility.md) | ||
|
||
## Processing | ||
|
||
The goal is to identify Objects and their distance. Therefor we need to calculate distances from the pointcloud data. | ||
To do this the lidar-distance node first converts pointcloud data to an array, which contains cartesian coordinates. | ||
|
||
`paf23-agent-1 | (76.12445 , -1.6572031e+01, 13.737187 , 0.7287409 )` | ||
|
||
`paf23-agent-1 | (71.9434 , -1.8718828e+01, 13.107929 , 0.7393809 )` | ||
|
||
`paf23-agent-1 | (-0.3482422 , -1.6367188e-02, -0.20128906, 0.99839103)` | ||
|
||
`paf23-agent-1 | (-0.3486328 , -1.4062500e-02, -0.20152344, 0.99838954)` | ||
|
||
`paf23-agent-1 | (-0.35070312, -2.3828126e-03, -0.2025 , 0.99838144)` | ||
|
||
The first three values of each row correspon to x, y, z. | ||
|
||
x - the X Cartesian coordinate of a point (float32) | ||
|
||
y - the Y Cartesian coordinate of a point (float32) | ||
|
||
z - the Z Cartesian coordinate of a point (float32) | ||
|
||
It wasn´t specified anywhere, what the 4th values represents. My best guess is some sort of intensity. | ||
|
||
## Distance Calculation | ||
|
||
The distance to a point is calculated by the euclidian distance to (0,0,0) for every point in the point cloud. | ||
|
||
`distances = np.array( | ||
[np.linalg.norm(c - [0, 0, 0]) for c in coordinates_xyz])` | ||
|
||
They then publish the minimum and maximum distance. | ||
|
||
## Open questions | ||
|
||
1. Currently we have no specified unit. | ||
**Is a relative distance enough?** | ||
|
||
2. How do we translate cartesian coordinates to pixel in the Image and vice-versa? | ||
|
||
We should be able to set the bounding box of the LIDAR-PointCloud2 to the camera-calibration. |