]>
rtime.felk.cvut.cz Git - hubacji1/iamcar.git/log
Jiri Hubacek [Sat, 6 Oct 2018 12:35:11 +0000 (14:35 +0200)]
Release version 0.2.1
### Fixed
- Optimize path until optimal.
Jiri Hubacek [Sat, 6 Oct 2018 12:34:09 +0000 (14:34 +0200)]
Fix path optimization while not optimal
Jiri Hubacek [Sat, 6 Oct 2018 12:29:47 +0000 (14:29 +0200)]
Release version 0.2.0
### Added
- Compilation macros that can specify output binary parameters.
- Auxiliary build and test scripts.
- Nearest neighbour `nn2` procedure based on linear search over `nodes()`.
- Nearest neighbour `nn3` procedure based on indexing over `y` axis.
- Near vertices `nv2` procedure based on indexing over `y` axis.
- OpenMP parallelization of nearest neighbour and near vertices procedures.
- Rebase method that changes (rebases) RRT root to another RRT node.
- Structure and method for logging tree edges.
- Time dimension to RRT node.
- Obstacle distance to RRT Node.
- Test planner `T2` based on RRT\* [Karaman2011] with steering from newly added
nodes to goal.
- OpenGL 2.1 plot using SDL2.
- `nn4` procedure - set node's heading to heading of currently comparing node.
- Add optimize path method based on [Islam2012]'s *Path Optimize* procedure.
- Update cost method of `RRTNode` that updates cumulative costs of all
children.
### Changed
- Build with Ninja.
- Split `connect` and `rewire` procedures from Karaman2011's `next` procedure.
- Main planning loop logic.
- Path optimization of `T2` based on Dijkstra between cusps points.
### Fixed
- Deletion of nodes returned by `steer` but not used.
- Scaling for `iy_` nearest neighbour search structure.
Jiri Hubacek [Sat, 6 Oct 2018 12:28:44 +0000 (14:28 +0200)]
Merge branch 'feature/refactor-optimize-path'
Jiri Hubacek [Sat, 6 Oct 2018 12:05:55 +0000 (14:05 +0200)]
Return path to first cusps if goal not found
Jiri Hubacek [Sat, 6 Oct 2018 11:19:06 +0000 (13:19 +0200)]
Remove unused vector, use `npi` for parent node
Jiri Hubacek [Sat, 6 Oct 2018 10:57:22 +0000 (12:57 +0200)]
Fix searching for cusps points
Jiri Hubacek [Fri, 5 Oct 2018 14:43:58 +0000 (16:43 +0200)]
Add only TMAX limited main loop
Jiri Hubacek [Fri, 5 Oct 2018 15:24:39 +0000 (17:24 +0200)]
Merge branch 'feature/refactor'
Jiri Hubacek [Fri, 5 Oct 2018 14:34:07 +0000 (16:34 +0200)]
Optimize path, rebase to first cusps node
Jiri Hubacek [Fri, 5 Oct 2018 14:33:19 +0000 (16:33 +0200)]
Limit outer while with #iterations
Jiri Hubacek [Fri, 5 Oct 2018 14:32:02 +0000 (16:32 +0200)]
Find nn if not goal found else nn is goal
Jiri Hubacek [Fri, 5 Oct 2018 14:11:54 +0000 (16:11 +0200)]
Return from rebase if new root is null
Jiri Hubacek [Fri, 5 Oct 2018 14:07:59 +0000 (16:07 +0200)]
Return false if no cusps in opt_path()
Jiri Hubacek [Fri, 5 Oct 2018 14:07:04 +0000 (16:07 +0200)]
Not return trajectory if init node is null
Jiri Hubacek [Fri, 5 Oct 2018 14:05:54 +0000 (16:05 +0200)]
Return false if nn() in next() fails
Jiri Hubacek [Fri, 5 Oct 2018 08:10:42 +0000 (10:10 +0200)]
Optimize when goal not found
Jiri Hubacek [Fri, 5 Oct 2018 08:09:33 +0000 (10:09 +0200)]
Make optimization independent on goal
Jiri Hubacek [Fri, 5 Oct 2018 07:57:58 +0000 (09:57 +0200)]
Log only if trajectory cost is better
Jiri Hubacek [Thu, 4 Oct 2018 11:46:51 +0000 (13:46 +0200)]
Update changelog
Jiri Hubacek [Thu, 4 Oct 2018 11:46:04 +0000 (13:46 +0200)]
Merge branch 'feature/dijkstra-optimize-path'
Jiri Hubacek [Thu, 4 Oct 2018 11:45:09 +0000 (13:45 +0200)]
Run path optimization in each iteration
Jiri Hubacek [Thu, 4 Oct 2018 11:40:05 +0000 (13:40 +0200)]
Use Dijkstra in path optimization
When optimizing path, use Dijkstra between cusps nodes. Use Reeds and
Shepp cost between cusps nodes when connecting nodes is collision free
and some high value otherwise.
When Dijkstra between cusps found, add path created by steering between
cusps nodes.
Jiri Hubacek [Thu, 4 Oct 2018 08:27:03 +0000 (10:27 +0200)]
Fix missing cusps points
Jiri Hubacek [Thu, 4 Oct 2018 08:14:53 +0000 (10:14 +0200)]
Return false if no trajectory found
Jiri Hubacek [Thu, 4 Oct 2018 08:13:21 +0000 (10:13 +0200)]
Merge branch 'feature/refactor'
Jiri Hubacek [Thu, 4 Oct 2018 08:11:54 +0000 (10:11 +0200)]
Note bug in optimize part method
Jiri Hubacek [Thu, 4 Oct 2018 07:29:33 +0000 (09:29 +0200)]
Use variable for steered size
Jiri Hubacek [Thu, 4 Oct 2018 07:22:02 +0000 (09:22 +0200)]
Do not remove nodes from RRT
Jiri Hubacek [Thu, 4 Oct 2018 07:06:10 +0000 (09:06 +0200)]
Add RRTNode's update cost method
Jiri Hubacek [Wed, 3 Oct 2018 05:55:29 +0000 (07:55 +0200)]
Merge branch 'feature/optimize-cusps'
Jiri Hubacek [Wed, 3 Oct 2018 05:54:58 +0000 (07:54 +0200)]
Update changelog
Jiri Hubacek [Wed, 3 Oct 2018 05:47:44 +0000 (07:47 +0200)]
Update optimize path method
Based on [Islam2012] *Path Optimization* procedure. From goal try the
longest possible subpath along cusps points. If collide, restart the
goal to previously tested cusps node. Continue until root.
Jiri Hubacek [Wed, 3 Oct 2018 05:27:26 +0000 (07:27 +0200)]
Include root/goal to cusps
Jiri Hubacek [Wed, 3 Oct 2018 05:21:57 +0000 (07:21 +0200)]
TMP? Allow full Reeds and Shepp path
Jiri Hubacek [Tue, 2 Oct 2018 16:22:10 +0000 (18:22 +0200)]
Add optimize path, optimize part
Optimize path method optimizes parts between cusps nodes of the last
trajectory found.
Optimize part method substitutes part of the last trajectory by nodes
returned by steer method if don't collide.
Jiri Hubacek [Tue, 2 Oct 2018 13:58:33 +0000 (15:58 +0200)]
Plot cusps
Jiri Hubacek [Tue, 2 Oct 2018 13:16:36 +0000 (15:16 +0200)]
Add nn4 procedure
Add nearest neighbour procedure with modifying node's heading when
comparing to others nodes. Node's heading is set to comparing node's
heading.
Jiri Hubacek [Tue, 2 Oct 2018 12:56:19 +0000 (14:56 +0200)]
Update GL screen width/height
Jiri Hubacek [Tue, 2 Oct 2018 12:21:23 +0000 (14:21 +0200)]
Plot last sample, plot bigger root, goal
Jiri Hubacek [Mon, 1 Oct 2018 08:50:34 +0000 (10:50 +0200)]
Use OpenGL enabling macro
Jiri Hubacek [Wed, 26 Sep 2018 17:43:12 +0000 (19:43 +0200)]
Merge branch 'feature/GL'
Jiri Hubacek [Wed, 26 Sep 2018 17:43:03 +0000 (19:43 +0200)]
Update changelog
Jiri Hubacek [Wed, 26 Sep 2018 17:35:19 +0000 (19:35 +0200)]
Plot last trajectory
Jiri Hubacek [Wed, 26 Sep 2018 17:35:05 +0000 (19:35 +0200)]
Reset line/point width
Jiri Hubacek [Wed, 26 Sep 2018 16:16:37 +0000 (18:16 +0200)]
Plot root/goal
Jiri Hubacek [Wed, 26 Sep 2018 16:16:04 +0000 (18:16 +0200)]
Add node scaling macro for OpenGL
Jiri Hubacek [Wed, 26 Sep 2018 15:49:56 +0000 (17:49 +0200)]
Add segment obstacle GL plot
Jiri Hubacek [Wed, 26 Sep 2018 15:34:28 +0000 (17:34 +0200)]
Add plot OpenGL RRTBase method
Jiri Hubacek [Wed, 26 Sep 2018 15:31:59 +0000 (17:31 +0200)]
Define constants as macros
Jiri Hubacek [Wed, 26 Sep 2018 14:10:33 +0000 (16:10 +0200)]
Use OpenGL with SDL
See: http://lazyfoo.net/tutorials/SDL/50_SDL_and_opengl_2/index.php
Jiri Hubacek [Wed, 26 Sep 2018 12:51:49 +0000 (14:51 +0200)]
Plot basic window
See: http://lazyfoo.net/tutorials/SDL/index.php
Jiri Hubacek [Wed, 26 Sep 2018 12:51:29 +0000 (14:51 +0200)]
Link SDL2 library
Jiri Hubacek [Wed, 26 Sep 2018 11:51:32 +0000 (13:51 +0200)]
Plot sample's frame if defined
Jiri Hubacek [Wed, 26 Sep 2018 11:06:49 +0000 (13:06 +0200)]
Add RRTNode heading setter
Jiri Hubacek [Wed, 26 Sep 2018 08:35:34 +0000 (10:35 +0200)]
Fix max cusps for path from steer procedure
Jiri Hubacek [Mon, 24 Sep 2018 16:07:32 +0000 (18:07 +0200)]
Merge branch 'feature/test-planner-2'
Jiri Hubacek [Mon, 24 Sep 2018 16:07:24 +0000 (18:07 +0200)]
Update changelog
Jiri Hubacek [Mon, 24 Sep 2018 14:12:20 +0000 (16:12 +0200)]
Add function that recomputes goal cost
Jiri Hubacek [Mon, 24 Sep 2018 13:35:52 +0000 (15:35 +0200)]
Limit node distance, #cusps for RRT* grow in T2
Jiri Hubacek [Mon, 24 Sep 2018 13:23:54 +0000 (15:23 +0200)]
Add testing planner 2
T2 is based on RRT* [Karaman2011] and use newly added list of nodes to
try connect goal from just added.
Jiri Hubacek [Mon, 24 Sep 2018 13:09:36 +0000 (15:09 +0200)]
Remove time from RRT* connect/rewire
Jiri Hubacek [Mon, 24 Sep 2018 13:01:34 +0000 (15:01 +0200)]
Add sign template
Jiri Hubacek [Mon, 24 Sep 2018 12:36:42 +0000 (14:36 +0200)]
Fix comment note
Jiri Hubacek [Mon, 24 Sep 2018 11:14:46 +0000 (13:14 +0200)]
Include speed in Reeds and Shepp callback
Jiri Hubacek [Mon, 24 Sep 2018 08:04:15 +0000 (10:04 +0200)]
Add missing `cco3` function
Cumulative cost function needs to be defined for every cost function.
Jiri Hubacek [Mon, 24 Sep 2018 08:02:16 +0000 (10:02 +0200)]
Log edges even if goal found
Jiri Hubacek [Mon, 24 Sep 2018 08:01:26 +0000 (10:01 +0200)]
Add `speed` to RRTNode
Jiri Hubacek [Mon, 24 Sep 2018 08:00:38 +0000 (10:00 +0200)]
Add IS_NEAR macro
Jiri Hubacek [Fri, 21 Sep 2018 14:41:31 +0000 (16:41 +0200)]
Add interrupt/terminate handling
Also, add test script example to readme.
Jiri Hubacek [Fri, 21 Sep 2018 14:12:40 +0000 (16:12 +0200)]
Ignore unknow pragmas
Jiri Hubacek [Fri, 21 Sep 2018 14:07:51 +0000 (16:07 +0200)]
Add cost function
Currently, the following may be used in the cost function:
- Euclidean distance,
- Reed & Shepp distance,
- heading difference,
- time difference,
- distance to the obstacle,
- distance to the parent node,
- node's cumulative distance.
Jiri Hubacek [Fri, 21 Sep 2018 14:03:28 +0000 (16:03 +0200)]
Rename cumulative cost functions
Jiri Hubacek [Fri, 21 Sep 2018 07:17:16 +0000 (09:17 +0200)]
Add plot for minimum trajectories costs
Jiri Hubacek [Fri, 21 Sep 2018 07:13:56 +0000 (09:13 +0200)]
Add get latst/maxs functions to gplot
Function `get_lasts_if_exist` returns the list of last values of some
element of trajectory (i. e. *cost*).
Function `get_maxs_if_exist` return the list of maximum values of some
element of trajectory (i. e. *cost*).
Jiri Hubacek [Fri, 21 Sep 2018 07:12:32 +0000 (09:12 +0200)]
Log trajectory only if exists
Jiri Hubacek [Fri, 21 Sep 2018 06:23:53 +0000 (08:23 +0200)]
Update gplot template
Jiri Hubacek [Fri, 21 Sep 2018 06:21:31 +0000 (08:21 +0200)]
Separate variable for logs folder in plot
Jiri Hubacek [Fri, 21 Sep 2018 06:20:01 +0000 (08:20 +0200)]
Move success rate plot to separate function
Jiri Hubacek [Thu, 20 Sep 2018 18:22:44 +0000 (20:22 +0200)]
Fix NNVERSION if directive
Jiri Hubacek [Thu, 20 Sep 2018 17:27:13 +0000 (19:27 +0200)]
Do not allow rewire if too long time distance
Jiri Hubacek [Thu, 20 Sep 2018 14:27:00 +0000 (16:27 +0200)]
Fix Kuwata2008 next steer collide behaviour
Jiri Hubacek [Thu, 20 Sep 2018 14:10:41 +0000 (16:10 +0200)]
Add macro for indexing `iy_` structure
Jiri Hubacek [Thu, 20 Sep 2018 13:11:12 +0000 (15:11 +0200)]
Fix missing nearest neighbour version check
Jiri Hubacek [Thu, 20 Sep 2018 13:10:48 +0000 (15:10 +0200)]
Log tree only when logging edges
Jiri Hubacek [Thu, 20 Sep 2018 12:42:06 +0000 (14:42 +0200)]
Update changelog
Jiri Hubacek [Thu, 20 Sep 2018 12:41:04 +0000 (14:41 +0200)]
Merge branch 'feature/obstacle-distance'
Jiri Hubacek [Thu, 20 Sep 2018 12:35:15 +0000 (14:35 +0200)]
Compute obstacle cost for root/goal
Jiri Hubacek [Thu, 20 Sep 2018 12:34:48 +0000 (14:34 +0200)]
Make JSON edges output macro-dependent
Jiri Hubacek [Thu, 20 Sep 2018 12:03:03 +0000 (14:03 +0200)]
Update RRT planner adding child
When adding child node in RRT planner `next` method, compute node's
distance to obstacles.
Jiri Hubacek [Thu, 20 Sep 2018 11:54:05 +0000 (13:54 +0200)]
Add obstacle cost method to RRT planner base
Jiri Hubacek [Thu, 20 Sep 2018 11:48:59 +0000 (13:48 +0200)]
Update RRTNode with obstacle cost
Update:
- constructor.
Create:
- getter,
- setter.
Jiri Hubacek [Thu, 20 Sep 2018 11:36:26 +0000 (13:36 +0200)]
Merge branch 'feature/time-dimension'
Jiri Hubacek [Thu, 20 Sep 2018 07:52:22 +0000 (09:52 +0200)]
Update `add_child` method with time
Jiri Hubacek [Thu, 20 Sep 2018 07:44:27 +0000 (09:44 +0200)]
Update RRTNode with time
Update:
- getter,
- setter,
- constructor.
Jiri Hubacek [Thu, 20 Sep 2018 06:18:13 +0000 (08:18 +0200)]
Fix 80 text width typo
Jiri Hubacek [Wed, 19 Sep 2018 14:30:46 +0000 (16:30 +0200)]
Merge branch 'feature/rebase-rrt'
Jiri Hubacek [Wed, 19 Sep 2018 14:25:46 +0000 (16:25 +0200)]
Change planning logic
There is change in the main planning loop. If the goal is not found in
`TMAX` interval, rebase to the nearest node and continue in planning
until goal found.
Also, in each "goal not found" iteration, log all RRT edges to JSON.
Jiri Hubacek [Wed, 19 Sep 2018 13:50:23 +0000 (15:50 +0200)]
Remove samples traversing in rebase method
Samples are not added to RRT so no need to traverse when rebasing.
Jiri Hubacek [Wed, 19 Sep 2018 12:35:11 +0000 (14:35 +0200)]
Return false if trying to rebase on root/goal