GithubHelp home page GithubHelp logo

object_builders_lib's Introduction

object_builders_lib

 Object Orientation Corrected Bounding Box Fit for Point Cloud Clusters.

TODO list

  • Apollo's Min-box Object Builder
  • TAS: An Orientation Corrected Bounding Box Fit Based on the Convex Hull under Real Time Constraints, similar to Apollo, IV 2018.
  • M. Himmelsbach's Fit Oriented Box by a RANSAC algorithm to fit the dominant line in the xy-projection of the segment’s points; the other axis is then taken to be perpendicular to the dominant line, IV 2012.
    @inproceedings{himmelsbach2012tracking,
      title={Tracking and classification of arbitrary objects with bottom-up/top-down detection},
      author={Himmelsbach, Michael and Wuensche, H-J},
      booktitle={Intelligent Vehicles Symposium (IV), 2012 IEEE},
      pages={577--582},
      year={2012},
      organization={IEEE}
    }

How to use

  1. git clone as a ROS package, with common_lib as dependency.
  2. find_package for this object_builders_lib local package.
    find_package(catkin REQUIRED COMPONENTS
        # ROS core
        roscpp
        # ROS messages
        #std_msgs
        #sensor_msgs
        # ROS PCL
        #pcl_conversions
        #pcl_ros
        # 3rd modules for ROS, like Eigen
        cmake_modules
        # local packages
        common_lib
        object_builders_lib
    )
  3. Use Point Cloud Clusters' Object Builder in your source code.
    // 1.include files
    #include "object_builders/base_object_builder.hpp"
    #include "object_builders/object_builder_manager.hpp"
    
    // 2.define object builder
    boost::shared_ptr<object_builder::BaseObjectBuilder> object_builder_;
    
    // 3.create object builder by manager
    object_builder_ = object_builder::createObjectBuilder();
    
    // 4.build 3D orientation bounding box for clustering point cloud
    std::vector<PointICloudPtr> cloud_clusters;
    std::vector<ObjectPtr> objects;
    object_builder_->build(cloud_clusters, &objects);

object_builders_lib's People

Contributors

durant35 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

object_builders_lib's Issues

The bounding box is unstable

when I run the code with my rosbag, the orientation of bounding box is changing sometimes? Have you encountered a similar problem?

A bunch of compilation errors

Hi, I am trying to build package as in read me file but when I do catkin_make I run into problems . Here is the error output;

In file included from /home/atas/catkin_ws/src/ROS_Raw_Kitti_Player/object_builders_lib/include/object_builders/base_object_builder.hpp:4:0,

                 from /home/atas/catkin_ws/src/ROS_Raw_Kitti_Player/kitti_ros/include/kitti_ros/perception/sensor_fusion.h:12,

                 from /home/atas/catkin_ws/src/ROS_Raw_Kitti_Player/kitti_ros/include/kitti_ros/kitti_ros_node.h:2,

                 from /home/atas/catkin_ws/src/ROS_Raw_Kitti_Player/kitti_ros/src/kitti_ros_node.cpp:1:
/home/atas/catkin_ws/src/ROS_Raw_Kitti_Player/common_lib/include/common/types/type.h:11:30: error: template argument 1 is invalid
 typedef pcl::PointCloud<Point> PointCloud;

                              
/home/atas/catkin_ws/src/ROS_Raw_Kitti_Player/common_lib/include/common/types/type.h:12:25: error: expected initializer before ‘PointCloudPtr’
 typedef PointCloud::Ptr PointCloudPtr;

                         
/home/atas/catkin_ws/src/ROS_Raw_Kitti_Player/common_lib/include/common/types/type.h:13:30: error: expected initializer before ‘PointCloudConstPtr’
 typedef PointCloud::ConstPtr PointCloudConstPtr;

                              
In file included from /home/atas/catkin_ws/src/ROS_Raw_Kitti_Player/object_builders_lib/include/object_builders/base_object_builder.hpp:5:0,

                 from /home/atas/catkin_ws/src/ROS_Raw_Kitti_Player/kitti_ros/include/kitti_ros/perception/sensor_fusion.h:12,

                 from /home/atas/catkin_ws/src/ROS_Raw_Kitti_Player/kitti_ros/include/kitti_ros/kitti_ros_node.h:2,

                 from /home/atas/catkin_ws/src/ROS_Raw_Kitti_Player/kitti_ros/src/kitti_ros_node.cpp:1:
/home/atas/catkin_ws/src/ROS_Raw_Kitti_Player/common_lib/include/common/types/object.hpp:240:31: error: template argument 1 is invalid
 typedef std::shared_ptr<Object> ObjectPtr;

                               
/home/atas/catkin_ws/src/ROS_Raw_Kitti_Player/common_lib/include/common/types/object.hpp:241:31: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
 typedef std::shared_ptr<const Object> ObjectConstPtr;

                               
/home/atas/catkin_ws/src/ROS_Raw_Kitti_Player/common_lib/include/common/types/object.hpp:241:37: error: template argument 1 is invalid
 typedef std::shared_ptr<const Object> ObjectConstPtr;

Could you please look into it , what could be thr cause ?

How to improve box orientation?

First thanks a lot for sharing your code.

I am testing your bounding box generator in autoware.ai:
I am using a lidar based clustering algorithm to generate point clusters, which I feed to your object builder. I then convert the output objects into a jsk_recognition_msgs::BoundingBox so I can visualize the result in Rviz.

The result looks like this:
Screenshot from 2020-06-18 17-49-07

I think I am using your library correctly as the 3d boxes look rather nice. However, I notice some boxes orientation is not always great. For example in the image above, you can see the few cars on the right side of the road are not properly oriented (boxes should be straight).

Do you know any way to mitigate this issue?

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.