This repository contains three directories each of them relates to the corresponding assingment, is introduced in the following way:
The directory contains information and documentation related to the Research Track 1_second assignment.
The address is: https://ehsan51.github.io/RT2_assignment/
The environment of this address is as following:
- Indices and Tables
- Robot_Controller Documentation
- Firstnode Module
- Secondnode Module
- Thirdnode Module
- Fourthnode Module
This section provides documentation for the Robot_Controller package.
The Firstnode module implements a controller for a robot using the ROS framework. It provides the following functions:
cancel_target(): Sends a cancel command to the action server, canceling the current planning goal.interface_space(): Displays a controlling panel with a welcome message and a list of options for the user to select from.target_client(): Allows the user to enter the position of the robot's target and sends it to the action server.
For more details and source code, please refer to the Firstnode Module documentation.
The Secondnode module is a ROS node that receives Odometry messages from the /odom topic, extracts position and linear velocity data, and publishes them as custom messages of type custom_msg to the chatter topic.
For more details and source code, please refer to the Secondnode Module documentation.
The Thirdnode module is responsible for tracking the number of times a robot reaches a goal and the number of times a goal is canceled.
For more details and source code, please refer to the Thirdnode Module documentation.
The Fourthnode module is responsible for subscribing to the custom_msg messages published by the Secondnode module and performing further processing or actions.
For more details and source code, please refer to the Fourthnode Module documentation.
This directory contains code to satisfy some features such as
- Some buttons for handling the motion of the robot
- A plot with the robot’s position and targets’ positions
- A text box with the distance of the closest obstacle
- A plot for the number of reached/not-reached targets
The system allows users in Jupyter Notebook to input goal positions, send goals to the robot, visualize the robot's targrt on a plot and the robot position, monitor the closest obstacle distance detected by the robot and plot the numer of reached/not-reached targets.
- ROS
- Python 3
- IPython Widgets
- matplotlib
- actionlib
- assignment_2_2022 package
- sensor_msgs package
- nav_msgs package
- std_srvs package
- Clone the repository and navigate to the project directory. https://github.com/CarmineD8/assignment_2_2022
- Launch the ROS environment.
- Launch the Jupyter Notebook.
jupyter notebook - Run the following command to execute the goal planning and visualization system:
roslaunch assignment_2_2022 assignment1.launch - Use the input fields to enter the X and Y positions for the robot's goal.
- Click the "Send Goal" button to send the goal to the robot.
- Click the "Cancel Goal" button to cancel the active goal.
- The plot will display the robot's positions in real-time
- The plot will display the robot's goal positions in real-time.
- The "Closest Obstacle Distance" value will be updated based on the laser scan data received by the robot.
- The numer of reached or canceled target will be ploted on the screen.
Here is the environment
1- Gazebo
2- Some buttons for handling the motion of the robot:
3- A plot with the robot’s position and targets’ positions:
4- A text box with the distance of the closest obstacle:
5- A plot for the number of reached/not-reached targets:
This directory contains a statistical analysis report comparing the time efficiency and success/failure rates between two approaches: "Amir" and "Mine". The report presents the experimental design, hypothesis testing, calculations, and results for both factors.
The abstract provides a summary of the report, highlighting the purpose of the analysis and the main findings. It mentions the significance level used for hypothesis testing.
The introduction section introduces the context and objectives of the report. It explains the goal of evaluating and comparing the time efficiency and success/failure rates between the "Amir" and "Mine" approaches.
The experimental design section outlines the parameters of the experiment, including the map configurations, numbers of tokens, and the number of tests conducted. It provides essential information about the data collection process.
This section presents the analysis of time efficiency for both the "Amir" and "Mine" approaches. It includes the statistical parameters, such as sample sizes, means, and standard deviations. The section also describes the hypothesis testing process, calculations performed (e.g., pooled standard deviation, t-value, degrees of freedom), and the results obtained. The conclusion regarding the significant difference in time efficiency is discussed.
The success/failure rates analysis section focuses on comparing the performance of the "Amir" and "Mine" approaches based on success and failure counts. It describes the hypothesis testing process, calculations performed (e.g., success rates, observed difference, standard error, Chi-Square value), and the results obtained. The conclusion about the difference in success rates is discussed, highlighting the lack of significant variation between the approaches.
The conclusion section summarizes the main findings and conclusions drawn from the analysis. It highlights the contrasting performance of the "Amir" and "Mine" approaches in terms of time efficiency while addressing the lack of substantial variation in success rates.


