Autonomous driving via motion primitives-based planner.
After building this ROS package using 'catkin_make' in your catkin workspace, launch the motion primitives-based planner node:
roslaunch motion_primitives_planner run.launch
-
Utility functions
a. Collision Checking
motion_primitives_planner/src/motion_primitives_planner_node.cpp
Lines 243 to 266 in 831f817
b. Local to Map Coordinate
motion_primitives_planner/src/motion_primitives_planner_node.cpp
Lines 279 to 296 in 831f817
-
Main algorithms
a. Generate motion primitives
motion_primitives_planner/src/motion_primitives_planner_node.cpp
Lines 107 to 138 in 831f817
b. Compute rollout of a motion primitive
motion_primitives_planner/src/motion_primitives_planner_node.cpp
Lines 140 to 204 in 831f817
c. Calculate the cost of motion primitives and select cost-minimum motion
motion_primitives_planner/src/motion_primitives_planner_node.cpp
Lines 206 to 238 in 831f817
d. Publish control commands
motion_primitives_planner/src/motion_primitives_planner_node.cpp
Lines 77 to 91 in 831f817
-
Use the class "Node" to manage the position, cost, and collision status of nodes in motion primitives
-
Change (tune) parameters if you need
- /map/local_map/obstacle <-- local cost map
- /points/selected_motion <-- selected motion primitive for visualization
- /points/motion_primitives <-- motion primitives for visualization
- /car_1/command <-- control command