# [Autoware] Inclined localizer, wrong detected obstacle height

Hi everyone,

I have needed to incline my localizer, in Setup tab I have:

x = 2.2, y = 0, z = 1.86, roll = 0.0, pitch = 0.2138, yaw = 0.0

I have my map and I can navigate it well, but the euclidean_cluster_detect resulting bounding boxes are inclined and the height limits are not well applied. Also aren’t well obstacles from velocity_set

I have seen in lidar_euclidean_cluster_detect/ cluster.cpp line 259

tf::Quaternion quat = tf::createQuaternionFromRPY(0.0, 0.0, rz);

None inclination has been considered, if I put pitch = -0.2138, I can see bounding boxes as they should be but the z position calculated isn't is good.

I pass under a roof that is at 3 meter with respect to base_link and with a height limit above the sensor of 0.3 meter to search obstacles it mark it as obstacle.

I can see using Veloview (after configure x, y, z, and pitch) correct values of x,y,z from this roof.

Any help?

Screenshots: url

Ubuntu 16.04 Ros Kinetic Autoware 1.9

edit retag close merge delete

Sort by » oldest newest most voted

Ok, I will try it.

If I didn't understood wrong, I've to do the tf from localizer (Velodyne) to base_link

 <!-- base_link_to_localizer -->
<arg name="x" default="2.2"/>
<arg name="y" default="0"/>
<arg name="z" default="1.86"/>
<arg name="yaw" default="0"/>
<arg name="pitch" default="0.2138"/>
<arg name="roll" default="0"/>
<arg name="period_in_ms" default="10"/>
<node type="static_transform_publisher" pkg="tf" name="base_link_to_localizer" args="$(arg x)$(arg y) $(arg z)$(arg yaw) $(arg pitch)$(arg roll) $(arg frame_id_baselink2localizer)$(arg child_frame_id_baselink2localizer) $(arg period_in_ms)"/>  And the new one ("lidar"), is it with respect to localizer?  <!-- localizer_to_lidar --> <arg name="x_lidar" default="0"/> <arg name="y_lidar" default="0"/> <arg name="z_lidar" default="0"/> <arg name="yaw_lidar" default="0"/> <arg name="pitch_lidar" default="-0.2138"/> <arg name="roll_lidar" default="0"/> <arg name="frame_id_localizer2lidar" default="velodyne"/> <arg name="child_frame_id_localizer2lidar" default="lidar"/> <arg name="period_in_ms_lidar" default="10"/> <node type="static_transform_publisher" pkg="tf" name="localizer_to_lidar" args="$(arg x_lidar) $(arg y_lidar)$(arg z_lidar) $(arg yaw_lidar)$(arg pitch_lidar) $(arg roll_lidar)$(arg frame_id_localizer2lidar) $(arg child_frame_id_localizer2lidar)$(arg period_in_ms_lidar)"/>


With this new tf, cluster points height should be similar to the height obtained with Veloview?

Thanks,

javcursor

EDIT_UPDATE:

I've tried it and if I'm doing it well I don't get the expected result

new screenshots

more

One way of solving this is registering a new "corrected" coordinate frame in the tf tree (let's call it lidar) with the desired pitch (have a look at the ROS tf package). Once this is done, just set the clustering param output_frame to use your new corrected frame lidar in the launch file or through Runtime Manager. The boxes will be transformed for you inside the code.

more