lardemua / atlascar2

Core packages for the LAR DEMUA Atlas Project
6 stars 2 forks source link

LDRMS scans published in frame that does not exist in tf tree #11

Open miguelriemoliveira opened 5 years ago

miguelriemoliveira commented 5 years ago

@danifpdra can you help me? You use the sick ld rms right? Do you subscribe to the scan0, 1, etc messages?

miguelriemoliveira commented 5 years ago

Screenshot from 2019-05-27 23-16-25

danifpdra commented 5 years ago

@miguelriemoliveira I included the launch file for the lSICK LDMRS and the Novatel GPS + IMU in the altas-core in the car, and it is all lauched with the drivers.launch file (I didn't commit to github tho)

To obtain sensor data, topics /ld_rms/scan0 /ld_rms/scan1 /ld_rms/scan2 /ld_rms/scan3 must be subscribed, but to group all the data from the sensors, it is necessary to create a point cloud assembler like this:

    <node type="laser_scan_assembler" pkg="laser_assembler" name="my_assembler0">
        <remap from="scan" to="/ld_rms/scan0"/>
        <remap from="assemble_scans2" to="assemble_scans0"/>
        <param name="max_scans" type="int" value="100" />
        <param name="fixed_frame" type="string" value="map" />
    </node>
    <node type="laser_scan_assembler" pkg="laser_assembler" name="my_assembler1">
        <remap from="scan" to="/ld_rms/scan1"/>
        <remap from="assemble_scans2" to="assemble_scans1"/>
        <param name="max_scans" type="int" value="100" />
        <param name="fixed_frame" type="string" value="map" />
    </node>
    <node type="laser_scan_assembler" pkg="laser_assembler" name="my_assembler2">
        <remap from="scan" to="/ld_rms/scan2"/>
        <remap from="assemble_scans2" to="assemble_scans2_"/>
        <param name="max_scans" type="int" value="100" />
        <param name="fixed_frame" type="string" value="map" />
    </node>
    <node type="laser_scan_assembler" pkg="laser_assembler" name="my_assembler3">
        <remap from="scan" to="/ld_rms/scan3"/>
        <remap from="assemble_scans2" to="assemble_scans3"/>
        <param name="max_scans" type="int" value="100" />
        <param name="fixed_frame" type="string" value="map" />
    </node> 

and maybe see this file https://github.com/lardemua/road_detection/blob/master/negative_obstacles/src/cloud_assembler.cpp

miguelriemoliveira commented 5 years ago

Hi @danifpdra ,

Thank you for the help. One thing I don't understand ... how can you assemble without knowing where the frame /ld_rms/scan1 (for example) is?

Can you post the pdf that results from

rosrun tf view_frames

Do you have the link ldrms0 (check my image, that's the frame_id of the messages) in your tf tree?

danifpdra commented 5 years ago

frames.pdf

@miguelriemoliveira , I do have the ldrms frames. Is the device_frame_publisher node from the free_space_detection package running?

miguelriemoliveira commented 5 years ago

Not sure. Let me check your drivers.launch ...

miguelriemoliveira commented 5 years ago

Hum, I don't think there is any device_frame_publisher in the atlas core repo. Where do you have it?

danifpdra commented 5 years ago

The drivers.launch only launches the sensor... I launch that node on my own launch file.

danifpdra commented 5 years ago

The free space detection package is in the lardemua github, it was created in previous years

miguelriemoliveira commented 5 years ago

OK, can you tell me where it is?

Also, it is clearly something that belongs to the scope of the drivers. It should be added to the drivers.launch. Can you add it to drivers.launch and remove it from your launch file?

danifpdra commented 5 years ago

Here: https://github.com/lardemua/free_space_detection

Yes, I'll do it in the atlascar computer since the github is not updated

miguelriemoliveira commented 5 years ago

It should be. If you can call me when you go and I will try to go with you.

Thanks, Miguel

On Tue, 28 May 2019 at 00:39, Daniela Rato notifications@github.com wrote:

Here: https://github.com/lardemua/free_space_detection

Yes, I'll do it in the atlascar computer since the github is not updated

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/lardemua/atlas-core/issues/11?email_source=notifications&email_token=ACWTHVVVH4ELRR47IHVIFJ3PXRWLDA5CNFSM4HP6RJ42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWKUFAQ#issuecomment-496321154, or mute the thread https://github.com/notifications/unsubscribe-auth/ACWTHVQY3VICJIJB45OP3LDPXRWLDANCNFSM4HP6RJ4Q .

miguelriemoliveira commented 5 years ago

Updated in 07d32af302aee6eb57e0b033f5f57e0f1686b8cc

miguelriemoliveira commented 5 years ago

So investigating this a bit more I noticed we are using a driver which is not the most common ...

@bernardomig you have any idea why?

It should be this one

https://github.com/SICKAG/sick_ldmrs_laser

since it is the one that appears officially in the ros webpages ... the problem we detected is because the "non-oficial" driver publishes the laser scans using a frame_id which does not exist in the tf tree.

The oficial driver does not publis the 2D scans separately, it only publishes a cloud.

I think this one would be better to use. @danifpdra do you need the separate scans? Is the point cloud enough for you?

I propose we change to this other driver, tell me what you think ...

miguelriemoliveira commented 5 years ago

here is the drivers.launch ...

    <!--    TODO can we replace this by the oficial driver?-->
    <node pkg="sick_ldmrs" type="sickldmrs.py" name="ld_rms" required="true" output="screen" if="$(arg ld_mrs)">
        <param name="host" value="192.168.0.244"/>
        <param name="port" value="12002"/>
    </node>
    <!--    TODO: Daniela chekc if this works for you?-->
    <!--    <group ns="frontal_laser">-->
    <!--        <include file="$(find atlas2_bringup)/launch/sick_ldmrs_node.launch">-->
    <!--        </include>-->
    <!--    </group>-->