homer_navigation merge requestshttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests2023-11-20T08:58:15Zhttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/27Cleaning up navigation node code2023-11-20T08:58:15ZDaniel Müllermuellerd@uni-koblenz.deCleaning up navigation node codeDaniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/26Draft: Added publisher for driven path; Fixed strange scaling based on angle...2023-11-20T08:56:05ZDaniel Müllermuellerd@uni-koblenz.deDraft: Added publisher for driven path; Fixed strange scaling based on angle...Added publisher for driven path; Fixed strange scaling based on angle difference, resulting in speeding up instead of slowing down in some casesAdded publisher for driven path; Fixed strange scaling based on angle difference, resulting in speeding up instead of slowing down in some casesDaniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/25Draft: Path planning service2023-11-13T08:11:49ZDaniel Müllermuellerd@uni-koblenz.deDraft: Path planning service**TODO**: Implement ROS service for calling navigation node to plan from point A to B and return planned path.**TODO**: Implement ROS service for calling navigation node to plan from point A to B and return planned path.Daniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/24Better isolation of planning routine, refactored overall path planning/follow...2023-05-24T12:56:56ZDaniel Müllermuellerd@uni-koblenz.deBetter isolation of planning routine, refactored overall path planning/following routine, added markersThis branch was started in order to add a service server for retrieving planned path without directly driving them (e.g. to compare which item to retrieve first). It developed into a refactoring branch to better isolate the planning rout...This branch was started in order to add a service server for retrieving planned path without directly driving them (e.g. to compare which item to retrieve first). It developed into a refactoring branch to better isolate the planning routine. I will rename this merge request and pull it into the current `master`. Then, I will start a follow-up merge request for finally adding this said service.
* Added `planPath` function
* Started refactoring replanning and proper reaction to obstacles
* Still work open in order to reduce number of indirections (mainly member variable states used in different functions which call each other)Daniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/23Fix/laser collision avoidance2023-01-05T13:41:58ZNiklas Yann WettengelFix/laser collision avoidanceDaniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/22Fix/blocked roi handling2022-11-15T14:36:02ZDaniel Müllermuellerd@uni-koblenz.deFix/blocked roi handlingAdd virtual obstacle points on ROI contours to tmp map before planning path.Add virtual obstacle points on ROI contours to tmp map before planning path.Daniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/21WIP: Started implementing voxel map2023-11-29T13:21:58ZDaniel Müllermuellerd@uni-koblenz.deWIP: Started implementing voxel mapDaniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/20Draft: Added RANSAC estimation of ground plane for compensation of non-planar...2023-11-20T08:58:01ZDaniel Müllermuellerd@uni-koblenz.deDraft: Added RANSAC estimation of ground plane for compensation of non-planar robot movementDaniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/19Improve configuration of depth_occupancy_map node while running2022-02-28T17:34:40ZDaniel Müllermuellerd@uni-koblenz.deImprove configuration of depth_occupancy_map node while runningMain goal has been enabling online adjustment of minimum height for points downprojected as obstacle in order to tweak this value when working in the real world.
Use `rosparam get /depth_occupancy_map` to see all available config values...Main goal has been enabling online adjustment of minimum height for points downprojected as obstacle in order to tweak this value when working in the real world.
Use `rosparam get /depth_occupancy_map` to see all available config values or take a look in `config/depth_occupancy_map.yaml`.
You may want activate continuous depth mapping with `r.toggle_permanent_depth_occupancy_mapping()` while looking to the ground and adjust lower bound for obstacle points with `rosparam set /depth_occupancy_map/lower_height_bound <Z THRESHOLD>`. Also check downprojected map while moving because of non-planar 3D movement of robot.Daniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/18Added switching depth mapping permanently on by using an input topic (std_msg...2022-02-24T18:41:02ZDaniel Müllermuellerd@uni-koblenz.deAdded switching depth mapping permanently on by using an input topic (std_msgs/Bool)fyi @niyawe @yfrey
* [x] Add input topic for turning depth mapping permanently on
* [x] Also add reset depth occupancy map mechanism
* [x] Implement Python `interfaces.py` functionality for new featuresfyi @niyawe @yfrey
* [x] Add input topic for turning depth mapping permanently on
* [x] Also add reset depth occupancy map mechanism
* [x] Implement Python `interfaces.py` functionality for new featuresDaniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/17[Navigation Refactoring] Cleaning up structures2022-10-31T10:26:27ZDaniel Müllermuellerd@uni-koblenz.de[Navigation Refactoring] Cleaning up structures## TODOs
* [x] Implement `laser_obstacle_node` which accumulates the last `n` laser range readings to an `nav_msgs/OccupancyGrid` for laser obstacle input in `planning_node`
* Currently done in `follow_path_node` for direct obstacle a...## TODOs
* [x] Implement `laser_obstacle_node` which accumulates the last `n` laser range readings to an `nav_msgs/OccupancyGrid` for laser obstacle input in `planning_node`
* Currently done in `follow_path_node` for direct obstacle avoidance there
* [ ] Implement `follow_path_node` containing all steering commands calculated and sent
* [ ] `path_planning_node` needs to monitor current deviation of `/pose` from path
* [ ] Recalculate path if too far off
* [ ] Recalculate path if obstacle appears on (or near) path
* [ ] Add state machines and state transitions in `planning_node` and others
* [ ] Smoothly increase speeds in contrast to current speeds
* [ ] Initial and final ramping
* [ ] Slow down when path curvature is too high in partial path before robot
## Debug
* [ ] Change goal topic back to `/planning_node/target_pose`
## Misc
* Also merge https://gitlab.uni-koblenz.de/robbie/homer_bringup/-/merge_requests/33Daniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/16check for nullptr2021-12-14T21:11:46ZDaniel Müllermuellerd@uni-koblenz.decheck for nullptrDaniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/15Searching for reason robots do not drive anymore (inter-COVID), but refactori...2021-12-09T14:09:09ZDaniel Müllermuellerd@uni-koblenz.deSearching for reason robots do not drive anymore (inter-COVID), but refactoring might have solved the issue.Daniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/14Sim env fix2021-11-09T14:52:14ZNiklas Yann WettengelSim env fixhttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/13WIP: High map resolution support2021-06-23T20:12:42ZDaniel Müllermuellerd@uni-koblenz.deWIP: High map resolution supportTrying to get things working with higher resolutions, but planning and obstacle avoidance keep getting stuck in obstaclesTrying to get things working with higher resolutions, but planning and obstacle avoidance keep getting stuck in obstaclesDaniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/12Extend depth_occupancy_map to maintain a continuously updated map2021-06-18T12:12:01ZDaniel Müllermuellerd@uni-koblenz.deExtend depth_occupancy_map to maintain a continuously updated mapDaniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/11Lower min Z in simulation for downprojecting smaller obstacles on the ground2021-05-14T13:10:30ZDaniel Müllermuellerd@uni-koblenz.deLower min Z in simulation for downprojecting smaller obstacles on the groundAdded homer_rgbd_node point cloud topic retrieval for downprojecting points; Added simulation bool member and lowered min z when downprojecting points for depth obstacle avoidanceAdded homer_rgbd_node point cloud topic retrieval for downprojecting points; Added simulation bool member and lowered min z when downprojecting points for depth obstacle avoidanceDaniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.dehttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/10Changes for functionality in homer_exploration2021-04-29T08:27:38ZKevin Fischer RiosChanges for functionality in homer_explorationchanges for functionality in homer_exploration: when the exploration node runs, it needs to receive constantly msgs from /projected_map, and not only when it is navigating.
Also tried to resolve that the floor is not shown in /projected...changes for functionality in homer_exploration: when the exploration node runs, it needs to receive constantly msgs from /projected_map, and not only when it is navigating.
Also tried to resolve that the floor is not shown in /projected_map, by changing the value of min_range_z in line 161 (only when exploration is running), but has not yet worked.https://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/9refactor init() check2020-11-12T14:26:09ZRobin Bartschrefactor init() checkhttps://gitlab.uni-koblenz.de/robbie/homer_navigation/-/merge_requests/8Bugfix and added library init()2020-11-02T08:42:29ZRobin BartschBugfix and added library init()Initially just wanted to add a "dummy" init() function.
Then I realized that the SimpleActionClient has the same problem that a Publisher has, in that it needs to be created a while before the first goal is sent.
Otherwise for multiple `...Initially just wanted to add a "dummy" init() function.
Then I realized that the SimpleActionClient has the same problem that a Publisher has, in that it needs to be created a while before the first goal is sent.
Otherwise for multiple `drive_to_POI(_blocked)()` calls, only the first one actually arrives on the goal topic and is executed.
The "singleton" architecture with the getter was able to fix the problem. Now the global SimpleActionClient is created on init() and is instantly available for every call.
Goes to show that simply translating the Python code to C++ doesn't necessarily produce the same result, as it's hard to reason about the ROS internals sometimes.Daniel Müllermuellerd@uni-koblenz.deDaniel Müllermuellerd@uni-koblenz.de