TixiaoShan / traversability_mapping

Bayesian Generalized Kernel Inference for Terrain Traversability Mapping
GNU General Public License v3.0
277 stars 64 forks source link

Navigation problam and save mapfile #6

Closed Yeah2333 closed 4 years ago

Yeah2333 commented 4 years ago

I have test traversabilty_mapping with robosense 16 lines lidar (rslidar-16), just use rosbag play rslidar16.bag --clock /rslidar_points:=/velodyne_points it seems working beautiful,but i still have some question. How to publish goal ? And how to save mapfile and load mapfile. Thank you very much.

Yeah2333 commented 4 years ago

these days i have explore this code,finally i have found how to publish goal, topic of publish goal is /move_base_simple/goal, but cant publish goal such as 2d navigation that publish goal use rviz 2d nav goal. Should publish goal use this command rostopic pub /move_base_simple/goal geometry_msgs/PoseStamped "header: seq: 0 stamp: secs: 0 nsecs: 0 frame_id: 'map' pose: position: x: 0.0 y: 0.0 z: 0.0 orientation: x: 0.0 y: 0.0 z: 0.0 w: 1.0" to obtain goal pose is hard,so my next step is find some easy way to publish goal .

Yeah2333 commented 4 years ago

but i don't konw how to save map file and reuse it , and how to init pose through the saved map file,is system have this function? and i have find costmap in this system,using for local plan to avoid obstacles? @TixiaoShan

TixiaoShan commented 4 years ago

@Yeah2333 Another way to publish the goal is to write it in the code. You can create a geometry_msgs/PoseStamped and send it to " /move_base_simple/goal". move_base subscribes to " /move_base_simple/goal" and will generate paths upon receiving it.

However, it is NOT easy to implement map saving function. All the map data is saved in vector<childMap_t*> mapArray, which is a vector of a customized struct. One way to do this is to implement your own code and save all the data into some files and read back to mapArray.

i have find costmap in this system,using for local plan to avoid obstacles? That is correct.

Yeah2333 commented 4 years ago

@TixiaoShan ,thank you for your reply。I think publish goal is not diffcult to solve,but i don’t find a easy way to obtain goal location。in rviz,it has a tool named publish point,is this can help to find goal location?

in order to save map and reuse it, i should write my own code to save vector<childMap_t*> mapArray.Should i save elevation_pointcloud?

if i can save mapfile and successful to load map file .I need a transform from base_link to map,is lego_loam have some funtion to use ?I have write a package about ndt_location,it can recieve inti pose estimate.My idea is use ndtlocation pack to init robot pose and send a transform from baselink to map.

Another question,I have watch your youtube video about traversability_mapping.Honestly speaking,the functionality of traversability_mapping is amazing.And in your test ,how do you deal with these problems?And do you have some document about this package?

TixiaoShan commented 4 years ago

@Yeah2333 I think publish goal is not diffcult to solve,but i don’t find a easy way to obtain goal location。in rviz,it has a tool named publish point,is this can help to find goal location? Yes, you can subscribe to that topic and get the location where you click your mouse. But I found it buggy sometimes because it crashes Rviz occasionally.

in order to save map and reuse it, i should write my own code to save vector mapArray.Should i save elevation_pointcloud? You don't need to. The elevation point cloud can be re-created by using the information saved in each cell. You know the x and y position of the mapCell_t, the elevation of a cell is also known. The point cloud can be converted using this information. In my code, I saved the point cloud for each childMap_t to make visualization easier and skip this conversion.

if i can save mapfile and successful to load map file .I need a transform from base_link to map,is lego_loam have some funtion to use ?I have write a package about ndt_location,it can recieve inti pose estimate.My idea is use ndtlocation pack to init robot pose and send a transform from baselink to map. Yes. traversability_mapping just needs the TF between "map" and "base_link" to transform the point cloud from the local frame to the world frame. It doesn't matter which package you use for localization.

Another question,I have watch your youtube video about traversability_mapping.Honestly speaking,the functionality of traversability_mapping is amazing.And in your test ,how do you deal with these problems?And do you have some document about this package? Unfortunately, I don't have documentation for this package. For my video, I just need to playback the bag files. No reloading the map or re-localization is needed.

Yeah2333 commented 4 years ago

@TixiaoShan Thank you.I konw how to deal with my problem. If i have some new proble about code,i will open a new issue.

rock19970106 commented 2 years ago

@Yeah2333 , Hi, have you solved the navigation problem. If so, could you share the code to me ? My email is : zhlupeng@mail.ustc.edu.cn. Thank you very much!