Skip to content

Commit 28b84dc

Browse files
committed
[Cleaning]
1 parent a28b020 commit 28b84dc

File tree

4 files changed

+33
-24
lines changed

4 files changed

+33
-24
lines changed

Diff for: README.md

+11-18
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,17 @@
11
# Robotics-EIE3
2-
Repo to hold the the code for Robotics course CO333 at Imperial
2+
Repo to hold the the code for Robotics course CO333 at Imperial College London taught by Andrew Davison: [Link](https://www.doc.ic.ac.uk/~ajd/Robotics/)
33

4-
## **Note**
5-
Motor port 3 is fried! Do not use it.
4+
### Contents
65

7-
## SSH from DOC computers, IP agnostic method:
8-
`ssh-pi 44:33:4c:6c:c1:46`
6+
During several weeks we were encouraged to complete several challenges in hadrwarde and software calibration of our proposed robot.
97

10-
Password: mmoggmmo
8+
The challanges included:
119

12-
Node.js interface password: gmmommog
10+
1. Building the robot and calibratiing it's odometry and PID controller [asssignment_1](/assignment_1).
11+
2. Observe possible sensors and program avoidance manouvers based on ultrasound readings and bumpers [asssignment_2](/assignment_2) and [asssignment_3](/assignment_3).
12+
3. Applying particle filter via Monte Carlo algorithm to navigate the robot through a a pre-defined maze [asssignment_4](/assignment_4)
13+
4. Trying to learn a particular signature of a location to perform continuous localisation [asssignment_5](/assignment_5).
14+
5. Final challenge in avoiding obstacles to reach a final destination [challenge](/challenge).
1315

14-
MAC Address: 44:33:4c:6c:c1:46
15-
16-
## Accessing Pi from web
17-
[https://www.doc.ic.ac.uk/~jrj07/robotics](https://www.doc.ic.ac.uk/~jrj07/robotics)
18-
19-
type in MAC address: 44:33:4c:6c:c1:46
20-
21-
## Running scripts
22-
Run all scripts from the root directory.
23-
e.g.
24-
`python test_scripts/test_wheels.py 20 20`
16+
### Authors:
17+
George Punter, Owen Harcombe, Mike Chen, Martin Ferianc at Imperial College London 2017.

Diff for: assignment_5/README.md

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,13 @@
11
# Robotics-EIE3
2-
## Robotics Assignment 4:
2+
## Robotics Assignment 5: Continuos localisation
3+
[**The handout**](../Resources/questions6.pdf)
4+
5+
An alternative relocalisation technique to monte carlo localisation involves making a lot of measurements at a number of chosen locations and learning their characteristics.
6+
7+
• This can be done without a prior map but needs training
8+
• The robot can only recognise the locations it has learned
9+
10+
First the robot must be placed in each target location to learn its
11+
appearance
12+
13+
The raw measurements are stored to describe the location: a place descriptor, or signature. Hence after each rotation of e.g.: an ultra sound sensor it is possible to take it's measurement and record it, later it is possible to compare it with another measurement to determine the current position. To save computation power it is possible to record just the raw distances in a histogram but a disadvantage it the lack of identification of the curent pose.

Diff for: challenge/README.md

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Robotics-EIE3
2+
## Robotics Challenge: Obstacle avoidance
3+
[**The handout**](../Resources/questions7.pdf)
4+
5+
The aim of the challenge was to navigate across an area filled with obstacles. The robot will
6+
start with no knowledge of the positions of the bottles and will have to locate them with its sonar and plan a path to advance as far and as quickly as possible.
7+
8+
The robot started behind a start line marked on the floor, facing forwards, and there was a parallel goal line 3m ahead.
9+
10+
The obstacles we used are soda bottles, which were considered as heavy vertical cylinders with radius 6cm.

Diff for: src/robot.py

-5
Original file line numberDiff line numberDiff line change
@@ -479,18 +479,14 @@ def set_ultra_pose(self, pose):
479479
def set_robot_pose(self, s_pose, update_particles = False):
480480
success = True
481481
print("Starting pose: {}".format(self.state["pose"].get("theta",-1)))
482-
483482
while s_pose >= 360:
484483
s_pose-=360
485484
while s_pose <= -360:
486485
s_pose+=360
487-
488486
rotation = (s_pose-self.state["pose"].get("theta", 0))
489-
490487
if rotation==0:
491488
print("No rotation required.")
492489
return True
493-
494490
if rotation > 180:
495491
rotation-=360
496492
elif rotation < -180:
@@ -518,7 +514,6 @@ def interactive_mode(self):
518514
print("Enter pose to rotate to:")
519515
s_pose = float(input())
520516
self.set_robot_pose(s_pose)
521-
522517
elif command == 3:
523518
distances = []
524519
print("Enter left wheel distance:")

0 commit comments

Comments
 (0)