Files and tasks below. This uses Python on the last 2 task but also VREP for the first and last task.
Due tomorrow but basically need it today or in the morning of the first.
Task 1 (30 points): Given a V-REP scene file (the file name is “nao_obstacle_project1.ttt”.It is uploaded on BlackBoard. The scene picture is presented as following), implement acurve path following robot using the V-REP simulator. The current humanoid robot NAOcannot directly bypass the plant in the scene with a straight path. In order to build yourmotion planning path, you can reference the tutorial video:https://www.youtube.com/watch?v=xI-ZEewIzzIIt shows the step-by-step implementation of modelling a curve path following robot.After NAO robot bypasses the plant, it continues to walk along the original direction.Upload your scene file (“*.ttt”) on BlackBoard for grading evaluation.
Task 2 (30 points): Implement A* search algorithm. Upload your source code and the finalgrid image with the shorted path in this project report.The following figure contains a robot, a door, and six chairs, each of them takes one grid.The figure also contains 10 by 10 = 100 grids. The robot need to avoid six chairs and findout a shortest path to the door. For each step of the A* search, the robot can only move toone neighbor grid of 8 neighbors (east, southeast, south, southwest, west, northwest, north,and northeast).You can reference A* search algorithm in the PowerPoint file“PowerPoint_Topic7_Basic_Search” (BlackBoard) and on the webpage as follows.http://theory.stanford.edu/~amitp/GameProgramming/AStarComparison.html
(Hint: can use a 10 x 10 matrix for modeling the 10 x 10 grids. Each element in the matrixis relevant to a grid in the picture. After the A* search, visualize this matrix to show theshortest path.)
Task 3 (40 points): Given a V-REP scene file (the file name is “vrep_obstacle_detection.ttt”.It is uploaded on BlackBoard. The scene picture is presented as following), implement apath following robot using the V-REP simulator. The current Pinoneer_p3dx cannotdirectly follow the path in the scene. In order to build your motion planning path, you canreference the tutorial video: https://www.youtube.com/watch?v=xI-ZEewIzzI. It shows thestep-by-step implementation of modelling a line following robot.
When you simulate the V-REP scene, then you run the python program“python_avoid_obstacle.py”, the Pinoneer_p3dx car can be driven by the program. Theembedded ultrasonic sensors can avoid walls (but cannot avoid red obstacles). In order totrack the path and move along the path, a camera sensor will be used to detect the redobstacles. Based on the vision sensor’s tracking on path, the purpose of the simulation isthat the car can touch each red obstacle and then continue to move along the path until all10 red obstacles are touched. The final simulation effect is similar to the followingdemonstration.https://www.youtube.com/watch?v=OtL96ebm3iQYou can make reference of the following video for accompanish the task.https://www.youtube.com/watch?v=kOjQRYmeX_ohttps://www.youtube.com/watch?v=SQont-mTnfMHint:(1) Reference the file “python_avoid_obstacle.py” to see how to get and control theleft_motor_handle and right_motor_handle (by using APIs: simxGetObjectHandleand simxSetJointTargetVelocity).(2) To capture the image, use the API: simxGetVisionSensorImage.(3) Note that V-REP provides the image data as a contiguous array of n elements, andnot a multi-dimensional array. So, basically, if you have an image of resolutionXand resolutionY, and you are transmitting a colored image (b=3), you haven=resolutionX*resolutionY*b, and you would access individual pixels (position(X;Y)) with:simxChar pixelRed=image[b*(Y*resolutionX+X)+0];simxChar pixelGreen=image[b*(Y*resolutionX+X)+1];simxChar pixelBlue=image[b*(Y*resolutionX+X)+2];