There are three parts including simulation in Gazebo, people tracking and control of the vehicle. Youtube link: https://www.youtube.com/watch?v=-01lbQc_njY&t=5s
People Tracking: Using CNN to detect person. Kalman Filter and Matching algorithm to track people, based on SORT algorithm. Using RGBD camera and 1-layer Lidar to perceive environment.
Collision Avoidance: Treate it as a optimization problem. MPC + Linearize Bicycle Model + Convexify collision avoidance constraints(sequential convex method).
actor_plugin and vehicle_plugin: Interface between ROS and GAZEBO which send command to objects in GAZEBO and send data from GAZEBO to ROS.
my_car: Model files of vehicle, sensors(RGBD camera and LIDAR) and the world file.
people_sim: Model files of pedestrains.
rgbd_detector: Object Detection and tracking people.
collision_avoidance: motion planning and control.
ROS
GAZEBO
Eigen
OpenCV
CPLEX
1. Clone this reporsitory in workspace.
2. Modify YOLO Library path in CmakeList of rgbd_detector.
3. Modify CPLEX path in CmakeList of avoidance.
4. catkin_make in this workspace
5. Move libactorplugin_ros.so and libmy_controller_lib.so generated in actor_plugin and vehicle_plugin into the directory ~/ws/devel/lib/
6. roslaunch al.launch
Jieming Chen(15001781672@163.com)
Hao Li
[1] Bewley, Alex, et al. "Simple online and realtime tracking." IEEE, 2016.
[2] Redmon, Joseph, and Ali Farhadi. "Yolov3: An incremental improvement."
[3] Ribeiro, Maria Isabel, and Pedro Lima. "Kinematics models of mobile robots."
[4] Alrifaee, Bassam, Janis Maczijewski, and Dirk Abel. "Sequential convex programming MPC for dynamic vehicle collision avoidance."