ori-drs / plane_seg

Plane Segmentation Utilites
BSD 3-Clause "New" or "Revised" License
159 stars 40 forks source link

Edge detection #2

Closed orsoromeo closed 3 years ago

orsoromeo commented 4 years ago

I added two new packages to this repo:

External dependencies:

How to test it:

mauricefallon commented 4 years ago

I tried to compile this but it's missing the following:

I tried to compile these but eigen_stl_containers isnt installing headers so rviz visual tools fails. Can you explain how do get these?

I cannot merge in an edge detector that is dependent on 4 dependencies to draw simple MarkerArrays.

orsoromeo commented 4 years ago

Have you already tried running:

sudo apt install ros-melodic-eigen-stl-containers
sudo apt install ros-melodic-graph-msgs

Locomotion-viewer is supposed to be a conveniency to write MarkerArrays using Eigen and it allows to draw segments and paths as sequences of vertices (Vector3d) rather than providing the pose of each cylinder marker. But if you think that these 4 dependencies are too much then I can remove the locomotion-viewer dependency from this package.

mauricefallon commented 4 years ago

But if you think that these 4 dependencies are too much then I can remove the locomotion-viewer dependency from this package.

Please do this. We dont need new dependencies to draw simple lines.

I could build the code and run it on the default simulator: image

I dont think either of us will make any progress on this over email. I can discuss with you in person or on a call.

My preference is to go directly to real data. It's not worthwhile to develop perception using perfect simulated terrain data IMO.

orsoromeo commented 3 years ago

I spent some time tuning the parameters of the edge detector on the bag file collected on Anymal C: https://drive.google.com/file/d/1wIcW0aPcMIs9dfRAgIUmoUPH6rWsUmCH/view?usp=sharing This is how it looks: image

Ok, as regards the dependencies. I will fix it ASAP.

orsoromeo commented 3 years ago

I have removed the dependency from LocomotionViewer in the edge-detection branch as requested and all the rviz plotting is now done through standard markers. This removes the dependency fromros-melodic-eigen-stl-containers and ros-melodic-graph-msgs too.

Please notice that I also removed the dependency from the anymal_msgs and from the xpp_msgs that we use to update the robot state on the robot and in simulation respectively. These were used to sort the detected edges with increasing distance from the robot and to know which is the "next" edge in front of the robot. Because these have been deleted then the edges will be ordered with increasing distance from the origin of the map frame. If anyone wants to bring back this functionality s/he will have to fill the base_pose_ variable listening to its custom ros message.

mauricefallon commented 3 years ago

can you create a video of the performance of both this and elevation mapping (for ANYmal with real data) so I see the performance before merging. also want to share with LAAS

Something like this: https://www.youtube.com/watch?v=YYs4lJ9t-Xo

orsoromeo commented 3 years ago

Here is the video of the performances of the elevation map and the edge detection. The log was recorded while performing a walk gait with TOWR-MPC so I would say that the motion is fairly dynamic (the base moves a lot). The elevation map is updated at 0.5 Hz and only the front camera is used at the moment.

Edit: here is the same video with the actual robot on the side

mauricefallon commented 3 years ago

thanks @orsoromeo . that video is great. I'll merge this.

FYI: @mcamurri @TLasguignes and @ChristosIoannou : this will be useful and can be used for the staircase edge detection.