Mobile Robot Control 2020 Group 7
Group Members
Name | Student Number | |
---|---|---|
1 | Mick Decates | 0957870 |
2 | Steven Eisinger | 1449273 |
3 | Gerben Erens | 0997906 |
4 | Roohi Jain | 1475061 |
5 | Mengqi Wang | 1449435 |
6 | Goos Wetzer | 0902160 |
ESCAPE ROOM CHALLENGE
Requirements & Specifications
The requirements and specifications for the challenge are shown in figure. The primary requirement is safety that we need to fulfill by avoiding collision. All other requirements shall be treated equally.
Functions
Once the robot is deployed in the room, it should sense around the room and try to find the exit corridor. If it cannot find the corridor, it should move around the room in an attempt to find it. Once the corridor is found it should position itself in front of the corridor and proceed through it until crossing the finish line.The functions that the robot needs to perform these tasks are described in Figure 2.1. These functions are divided into three main components: Sense, which allows the robot to perceive and quantify its world; Reasoning, where the robot makes a decision based on its perception; and Act, which determines what action the robot performs based on its reasoning information.
Hardware Components
Sensors - Laser Range Finder
The laser range finder measures the distance from the robot to the closest obstacle for a range of angles around the direction the robot is facing. The sensor data is stored in a structure called LaserData, which is described in table 3.1. There are 1000 measurements in total.
Property | Description |
---|---|
range_max | The maximum range that can be measured is 10 meters |
range_min | The minimum range that can be measured is 0.01 meters |
angle_max | 2 radians from the direction straight ahead |
angle_min | -2 radians from the direction straight ahead |
angle_increment | Each angle is 0.004004 radians away from the next one |
timestamp | Timestamp of the measurement in UNIX |
Sensors - Odometry
The odometry data measures the distance the robot has traveled in all 3 degrees of freedom in the horizontal plane.This data is obtained through encoders on the wheels of the holonomic base, which are stored in a structure called OdometryData, described in table 3.2. Small errors could accumulate over time due to measurement errors and wheel slip. To combat this, the positional data of the robot will be updated using the difference between the current and previous odometry measurement. This data is then corrected with the use of the world model and the data obtained from the laser range finder.
Property | Description |
---|---|
x | distance travelled in horizonal direction since start of measurement |
y | distance travelled in vertical direction since start of measurement |
a | angle rotation since start of measurement |
timestamp | Timestamp of the measurement in UNIX |
Actuators
The robot is built on a holonomic base, which means that it has three degrees of freedom in its horizontal plane: twotranslational, and one rotational. The robot is able to move in these ways using its omni-directional wheels, which are placed in a triangular formation on the base. Besides being able to provide a force in the driving direction,unlike normal wheels, the omni-directional wheels also do not constrain movement in the direction orthogonal tothe driving direction. Because of this, the robot is able to move with a given max velocity in all possible directions of the horizontal plane.
Software Infrastructure
The software will be divided into components, which are connected through certain interfaces. Major components are seen in Figure 5.1, and their interfaces are specified with the arrows. Perception is the component where the PICO uses sensor data from LaserData and OdometryData to get an idea of it’s current location. This data is interfaced with the World Model, which stores map and localization data, including the exit location once found.The Planning component takes care of decision making and control planning, including path finding and obstacle avoidance. The actuation component will actuate the holonomic base in order to carry out the movement plan.
Implementation
The concept we used to design the code for the Escape Room Challenge were broken down into the following components:
- Find wall and Align with wall
@Goos add your part here
- Follow the wall and lookout for corners
@Roohi add your part here
- Exit detection
@Mick add your part here
- Exit Alignment
@Gerben add your part here
- Move in corridor
@Mengqi add your part here