Need help building a workable code for "person following" robot
Project detail
I want to operationalize a code for a person following robot, so that it works.
This is the code: https://github.com/IvLabs/person_following_bot (mainly the follow.py file)
I have downloaded the code from github, and it’s working more or less. However, I need to gain an understanding of what it does pretty quickly and modify the code for a very similar purpose.
I got a Realsense depth camera D435i on a good laptop. The laptop should be on top of the a Turtlebot3 (running ROS on a Raspberry Pi 4). I want the robot to detect and follow a person from behind (just as shown in the github page) while maintaining a fixed distance.
I experimented with the code myself, and was able to kind of run the code. Most of the code is around OpenCV. Some understanding of ROS is appreciated.
I need the following issues to be resolved:
1. Understanding the code in whole, particularly the that identifies and tracks a person, and instructs the robot to stop following.
2. In a section I have to define an ROI (which needs a mouse and keyboard). I need to automate this part of course (so I don’t use any control). In the current setting, the laptop is not on the robot, but connected with a long USB cable to the camera. Obviously, I need to put the laptop on the robot.
3. There is a lag, which I need to optimize. Currently, at some point, the program does not work (as stated in the “Issues” section of the github page)
4. There’s a minor glitch which shows a “PERSON” tag on top-left of screen while no one is detected.
5. I need to include the distance (in cm) of the person from the camera in the YOLO box. I also need to understand what is the current optimal distance as defined in the code?
6. The “hand” gestures part for stopping “follow” does not work well. I need to make this work of course, and ideally create a gesture for starting the “follow” process.
That’s almost all I care about. Can you tell me confidently how feasible is each of these items for you? If you need to reevaluate your proposed time, feel free to tell me. But I want to be sure that I meet these minimums and deliver the project. This project is very important to me. Thank you very much.