Answer To: Artificial intelligence -This coursework description includes the list of taught labs that are to be...
Amar Kumar answered on Dec 02 2021
5000 CEM LAB REPORTS
LAB 1: Intro Artificial Intelligence
To build AI robot: You will get a feel for developing a robot using the V-Rep simulator. Do not worry if you do get a perfect robot the first time. You should open V-Rep from AppsAnywhere or download and install the EDU version from https://www.coppeliarobotics.com/previousVersions/, and then start the following activity to create a robot.
Creating the Body of the Robot
Right click anywhere on the main window and select Add > Primitive Shape > Cuboid.
Input your sizes. Note that the Z co-ordinate is the vertical axis. (E.g., X and Y axis determine the width and length of the shape – and the Z axis determines the height.)
X-size 0.8
Y-size 0.6
Z-size 0.2
Notice the Create Pure Shape button. Pure shapes are objects that are incredibly simple and easy to simulate in a physics engine like V-Rep. Try and use only Pure Shapes for any part of the robot that is important and will need to be manipulated by the simulation engine. A large amount of non- pure shapes trying to be simulated will create a lot of lags. Once you have inputted your values, click OK.
Add the Motor Joints
To add any motors, we need to move our shape off the ground. We can move any object using the Object/Item Translation/Position Dialog box – this is accessed by clicking the icon shown.
While this box is open, we can move the robot body we created along the axis using a click and drag motion. However, to be more precise in our movements we can enter values into the dialog box itself. In the Translation tab of the Object / Item Translation/Position dialog box, we can tell V-Rep how to move the object selected.
As shown, go ahead and move the object +0.1000 Along the Z-axis. Make sure you press the Translate selection button once.
Now we can add the actual motors to our robot’s body.
Similar to before, right click on the window and select Add > Joint > Revolute. Now if you pan and rotate the camera under the shape itself (using the first two icons along the toolbar), you will see our orange and blue motor. We now need to move this into a better position.
To move the motor joint, as before use the Object / Item Translation/ Position Dialog box. We want to first move it +0.2000 along the X-axis, and
+0.3000 along the Y-axis. We also need to move the motor along the Z-axis by +0.1000.
Ensure you use the translation Tab.
Ensure you press the Translate selection button once.
Next we need to rotate our motor 90 degrees so it is able to hold a wheel later. To do this, open the Object/Item rotation/Oriented dialog box by click the Object/Item Rotation button at the top of the box.
In the third tab (Rotation) of the dialog Object / Item Rotation
/Orientation enter the value +090.00 into the Around X field, and make sure the Relative to: Own frame radio button is selected.
Click Rotate Selection once.
Our motor is now at the right angle, in the right position and within our robot’s body.
Now, to create the other three motors, select the original motor joint, and copy and paste it. You will see along the left side a new object “Revolute_joint0” has been created. Re-open the Object/Item Translation/Position Dialog box and simply drag the motor carefully until it is in the same position as below.
You will need to use the Camera/Rotation button to turn the robot over.
Repeat this step twice more, until you have four motors in this position below.
Add the Wheels
Next we need to add our wheels to the robot. We will again use pure shapes. Right click on the window, and select Add > Primitive Shape > Cylinder. Give the shape a value of 0.2000 for X and 0.0500 for Z.
Click OK.
This will create a wheel shape for us.
We need to move and rotate the wheel just like we did with the motor joint. In the Object /Item Translation/ Position Dialog box select the Translation tab and enter +0.2000 for X, +0.4000 for Y and +0.1050 for Z. Click Translate selection Once.
This will put the wheel we created flush with our robot’s motor joint. All we need to do now is rotate it. In the Object/Item Rotation/Orientation Dialog box, again click the Rotation tab and enter the value +090.00 into the “Around X” field, and make sure the Relative to: Own frame radio button is selected.
Click Rotate selection.
Now you should see you wheel is in the right direction and position, but is a bit too high and isn’t touching the floor. We will need to fix this. Select the wheel again, open the Object/Item Translation/Position Dialog box and move the wheel down along the Z-axis by entering -0.0300 into the Along Z field.
Use the Translation Tab.
Make sure Along X and Along Y are 0 and Relative to: world is selected. Ensure you click the Translate selection button.
You should now see your wheel looks like below:
As with the motor joints, pan and rotate the camera until you are directly under the robot. Copy and paste the wheel and move the new wheel until it is on another motor like this. Again, as before, repeat that twice more until your wheels as positioned like this:
Now, within the Scene Hierarchy tab alongside our window, select each of the revolute motors and then select our cuboid. Right click and select Edit
> Make last selected parent. Now the Hierarchy should look like this.
Now select “Cylinder”, and make “Revolute_joint” its parent, then select “Cylinder0” and make “Revolute_joint0” the parent. Do the same for the others. Your hierarchy should now look like this:
Add Movement
Next we need to make sure our robot can move. We need to enable all four of our joints. To do so, open the Scene Object Properties (double click the icon of the joint in the Scene Hierarchy).
From here click the Show Dynamic Parameters button to open the Joint Dynamic Properties option.
Enable the Motor by ticking the box and set the Target Velocity to +50.00. Do this for all four motor joints.
Note: Make sure you press enter when putting in Target Velocity.
Test
Now when you click the run simulation button, (the play button) you should see the robot drive forward and off the edge of your arena. This means everything is working fine.
You now have a basic model that can be controlled via a child script.
Environment
Explore V-Rep to add objects to the environment including walls, objects to avoid, plants and chairs
LAB 3: Machine Learning Techniques
LO3 - Explore reasoning and problems solving approach under uncertainty conditions.
LO8 - Resolve which of the artificial intelligence approaches offer the best solution to an intelligent application.
Basic Tasks – ML Techniques
Basic Task a)
Basic Task b)
For each of the two different pairs of inputs {5,20}, {1,60}, calculate the outputs from the hidden Neurons A and B as well as the overall prediction output from the MLP neural network. Input A is the amount of exercise in hours per day and Input B is the grams of fat that a person eats per day. The output represents whether a person is healthy or not. For the hidden units and output unit you should apply the sigmoid activation function. (2 marks)
Basic Task c)
Cornelius and Shila are standing for election. It has been decided that by using a decision tree it is possible to predict people’ voting patterns using characterises such as income, gender and whether the person as voted...