shichaoy / semantic_3d_mapping

Semantic 3D Occupancy Mapping through Efficient High Order CRFs
Other
193 stars 60 forks source link

Ask about some code about ScrollGrid #14

Closed anzisheng closed 5 years ago

anzisheng commented 5 years ago

In compute() function of the ScrollForBaseFrame class, there exists the following code:

tf::Vector3 target_sensor_to_center = wv2laser * ca::point_cast< tf::Vector3 >(target_sensor_to_center_); Vec3 origin_laser = ca::point_cast<Vec3>(target_sensor_to_center); //sensor position in world frame. What is the meaning of "target_sensor_tocenter" , "wv2laser" and "origin_laser" ? and what is the meaning of "origin_laser-center"?

shichaoy commented 5 years ago

hi, @anzisheng scrollGrid is from thirdparty, the naming is quite messy here. wv2laser is a transform from camera (sensor, laser) frame to world. target_sensor_tocenter is the desired fixed grid center position in sensor frame. (set in launch file param scrolling_strategies/target_sensor_to_center_x,y,z) Multiply these two, we can get the desired grid center in world frame (named origin_laser in the code) Then it will be compared with current grid center, to determine how to scroll the grid.

If you print these variable, you will easily understand them. World frame is on ground and x right, y forward, z up. Camera frame is right, y down, z forward.

anzisheng commented 5 years ago

@shichaoy
Thans for your patient reply. I have another question: "How to fuse two overlapped occupancy grids generated by two adjacent cameras?" Would you like to tell me related algorithms or papers? Thanks.

shichaoy commented 5 years ago

@anzisheng that seems to be a common problem in reconstruction. In our system, there is only one occupancy grid map, grid value is updated when new sensor is available (just standard occupancy mapping, add/minus log value, our prior work also utilizes it https://shichaoy.github.io/Publications/JFR_2016_ship.pdf) There are also some other map representation such as TSDF, there are many materials online.