This build completes path planning and self-driving function of the robot.
General Software Pipeline: Perception -> Cone Recognition + Cluster Detection -> Cone Mapping -> SLAM (optional for simulation) -> Path Planning -> Path Follower
Major Features:
Created ROS node path_planner_data that filters /cone_list by distance to car to limit demand on computation resources; also combines with car odometry data /odom to prepare the input feed to the path planner
Created ROS node track_pathfiner that computes the path based on position of cones and car position + direction
Minor Features:
Live path visualisation
Removed unused Gazebo assets in repo
Added instruction on scaling Gazebo simulation time, therefore reducing CPU usage
Numba is automatically called and compiled right after Docker build and catkin build
To Be Improved:
Currently, cone registration range threshold method is causing inaccurate path. A temporary solution is implemented by limiting the view distance of the pointcloud source, however this will only work in the simulation and not in the real world.
This build completes path planning and self-driving function of the robot. General Software Pipeline: Perception -> Cone Recognition + Cluster Detection -> Cone Mapping -> SLAM (optional for simulation) -> Path Planning -> Path Follower
Major Features:
path_planner_data
that filters /cone_list by distance to car to limit demand on computation resources; also combines with car odometry data /odom to prepare the input feed to the path plannertrack_pathfiner
that computes the path based on position of cones and car position + directionMinor Features:
To Be Improved:
Instructions:
1)
roscore
2)roslaunch ackermann_vehicle_description hokuyo_odom.launch
3)roslaunch ultralytics_ros tracker_with_cloud.launch
4)roslaunch ultralytics_ros cone_mapper.launch
5)roslaunch ackermann_vehicle_navigation track_follower.launch
TODO:
Pathfinder at work: auto_lap.webm
Node graph: