Retake Embedded Motion Control 2018 Nr3

From Control Systems Technology Group
Jump to navigation Jump to search

This wiki describes and explains the software that was made for and implemented on the PICO robot to complete the retake of Embedded Motion Control course 2017-2018. The mission of the retake EMC 2018 is describe in the subsection ‘The challenge ‘Follow me!’’.

The robot that is used during the project is PICO. PICO has a holonomic wheelbase with which it can drive, a Laser Range Finder (LRF) from which it can gather information about the environment (blocked/free space) and wheels that are equipped with encoders to provide odometry data. All software that is developed has to be tested on the robot. There is also a simulator available which provides an exact copy of PICO’s functionalities. PICO itself has an on-board computer running Ubuntu 16.04. The programming language that is used during the course and the retake is C++ and Gitlab is used to store the code.

Student

TU/e Number Name E-mail
1037038 Daniël (D.J.M.) Bos D.J.M.Bos@student.tue.nl




The challenge ‘Follow me!’

The main goal is to follow Person Of Interest (POI) in a cluttered environment. The person closest to PICO is the POI at standstill. The POI will walk a pre-defined route that’s unknown to the PICO. There are targets strip which the POI will cross in the middle. To prove whether PICO is able to follow the POI correctly, PICO should also cross these target strips. A overview of the setup is shown on Figure 1.

The are also other actors present in the area of interest. These actors will similarly as the POI start at standstill. The other actors will also walk around when PICO has started his following-algorithm. The only restriction that the actors have is that they can never occlude the POI, i.e., they can not walk in between PICO and the POI. Figure 2 depicts a situation which can not occur.


  • Figure 2: A situation which can not occur for Level 1. In red we see PICO, blue the POI, and in darkgreen the actor.
  • Figure 2: A situation which can not occur for Level 1. In red we see PICO, blue the POI, and in darkgreen the actor.

Initial Design

Introduction:

For the initial design, the requirements will be discussed as well as the functions and their specifications. Moreover, a list of the used hardware components and the diagram of the interface are shown below.


Requirements:

  • Execute all tasks autonomously.
  • The POI will start initially close to and is detectable at standstill.
  • Finish the challenges within 2 minutes.
  • The POI will move in such manner that, in most cases, two legs are visible.
  • The POI will pass trough the middle of the target strips.
  • The PICO must cross 80% of the target strips.
  • The PICO must follow the POI at a distance of approximately 0.4 [m].
  • Perform all tasks without bumping with a person.
  • Perform all tasks without getting stuck in a loop.

Specifications:

The specifications are based on the requirements.

For the POI

  • The maximum velocity is 0.5 [m/s].

For the PICO

  • The maximal transitional velocity in any direction is 0.5 [m/s].
  • The maximal rotational velocity is limited to 1.2 [rad/s]
  • PICO should not stand still or make no sensible movements for periods over 30 [seconds].
  • The PICO must follow the POI at maximum distance of 0.4±0.2 [m].
  • Finish the challenge within 2 [min].

The targets strips

  • The width of targets strips are each 1 [m].
  • The number of target strips is around 5.

Functions:

The functions that are going to be implemented are subdivided into three different types of functionality. First of all, there is the lowest level functionality, which will be referred to as the motion functions. These functions will be used to interact directly with the robot. This interaction will be specified more precisely in the function overview that can be found below. The mid-level functionality, which will be referred to as the skill functions. As the name mid-level functionality already suggests these functions act on a more abstract level and are built to be able to perform a specific action. All the actions that will be implemented in the skill functions can also be seen in the overview below. Finally, there is the high-level functionality, which will be referred to as task functions. These functions are the most abstract and are structured to carry out a specific task, which consists of multiple actions.

To give a full overview: in a task function, a specific order of actions will be specified in order to be able to fulfill the task. The actions that the robot can perform, and are therefore available to be called by the task functions, are specified in the skill functions. The motion functions are used in the skill functions to be able to invoke physical behavior by the robot.

Motion functions:

Skill function:

Task funciton:


Components:

To be able to execute the Follow me!’ challenges the PICO robot, already mentioned above, will be used. The following hardware components will be utilized:

Actuators: Holonomic base with three omni-wheels.

Sensors:

  • Laser range finder (LRF): To detect the distances to objects in the environment.
  • Range: To be determined
  • Field of view: 270 degrees
  • Accuracy: To be determined

Computer running Ubuntu 16.04.

2Initial Design

dvxcdv

2Idf