Final Assignment  1.0
Research Track part 1 - Assignment 2 - RobEng A.A. 2020/2021
reach_random_pos_service.py File Reference

Background process: ask for a target, then reach it using move_base More...

Go to the source code of this file.

Namespaces

 reach_random_pos_service
 

Functions

def reach_random_pos_service.update_current_position ()
 Update the informations about the position from check_position service. More...
 
def reach_random_pos_service.clear_status ()
 clear the status of the node. More...
 
def reach_random_pos_service.new_target_to_move_base ()
 ask a new randomly-choosen target to the server points_manager, then send to MoveBase the target to reach . More...
 
def reach_random_pos_service.srv_reach_random_pos_switch (data)
 Turn on and off the service. More...
 
def reach_random_pos_service.srv_reach_random_pos_status (data)
 return the status of the service. More...
 
def reach_random_pos_service.main ()
 The algorithm of the node. More...
 
def reach_random_pos_service.cbk_on_shutdown ()
 This is called on the shutdown of the node. More...
 

Variables

string reach_random_pos_service.node_name = "reach_random_pos_service"
 name of this node More...
 
string reach_random_pos_service.name_reach_random_pos_status = "/reach_random_pos_status"
 name of the service 'reach_random_pos_status' More...
 
string reach_random_pos_service.name_reach_random_pos_switch = "/reach_random_pos_switch"
 name of the service 'reach_random_pos_switch' More...
 
string reach_random_pos_service.name_check_position = "/check_position"
 name of the service 'check_position' More...
 
string reach_random_pos_service.name_get_point = "/get_point"
 name of the service 'get_point' More...
 
string reach_random_pos_service.name_move_base = "/move_base/goal"
 name of the topic 'move_base/goal' (Publisher) More...
 
 reach_random_pos_service.topic_move_base = None
 handler topic 'move_base/goal' (Publisher) More...
 
bool reach_random_pos_service.service_active = False
 status of the node (bool; default: False) More...
 
bool reach_random_pos_service.is_moving = False
 the robot is moving (bool; default: False) More...
 
bool reach_random_pos_service.signal_last_pos = False
 last pos signal received (bool; default: False) More...
 
 reach_random_pos_service.actual_position = Point( )
 actual position of the robot (geometry_msgs/Point) More...
 
 reach_random_pos_service.target_position = None
 the target position (geometry_msgs/Point; default: None) More...
 
 reach_random_pos_service.last_response_check_pos = check_positionResponse( )
 response from the service 'check_position' (final_assignment/check_position) More...
 
float reach_random_pos_service.min_distance_from_the_target = 0.5
 tolerance on the distance from the target More...
 
 reach_random_pos_service.cycle_time = rospy.Duration( 0, 500 )
 time between two cycles More...
 
 reach_random_pos_service.srv_check_position = None
 call-point of the service 'check_position' More...
 
 reach_random_pos_service.srv_get_point = None
 call-point of the service 'get_point' More...
 

Detailed Description

Background process: ask for a target, then reach it using move_base

Author
Francesco Ganci (S4143910)
Version
1.0
Date
2021-06-25

This ROS node implements the move_base version of the functionality [no.1] reach_random_pos_service, executed in background.
The interface is made up of 2 services:

When the node is active, it ciclically asks for a target to /get_point service, then sends to move_base the goal and reached is. move_base is not interruptable in this implementation, so when the stop command is raised, the command is marked as in progress until the robot has reached the last set target.
This node is implemented as a parallel process: services are always non-blocking, so the caller process can do other things while the robot is moving.


See also:

Definition in file reach_random_pos_service.py.