This project implements a mobile-manipulator robot control system through a series of Python scripts, organized into milestones. Each script handles specific functionalities, from state prediction to trajectory generation and control. The project includes six main files, described below, along with instructions for executing a new task and achieving overshoot behavior.
- File:
nextState.py - Description: Predicts the next state of the robot given its initial configuration and current speeds. The
NextStatefunction returns a 12-element vector representing the new state. It utilizes helper functionsNextStateWheelsandAngleUpdateto compute the robot's next state based on wheel and joint dynamics.
- Files:
timing_calc.pytrajectory_generator.py
- Description:
timing_calc.py: Calculates the time duration and sequence of operations for the robot's trajectory.trajectory_generator.py: Generates a screw trajectory based on the timing calculations and saves the results to a CSV file.
- File:
feedback_control.py - Description: Implements feedforward and feedback control for the robot. The script computes the Jacobian matrix (6xN), incorporating both the arm and base dynamics. The
FeedbackControlfunction returns the robot's speed commands and error values.
- File:
final_code.py - Description: Executes the control pipeline and generates CSV files containing the 13-element state vector, which includes wheel angles, joint angles, robot position, and gripper state.
- File:
variables.py - Description: Defines matrices and variables used across the project. Each variable is documented within the script for clarity.
To perform the new task, modify the following in timing_calc.py:
- Set
Tsc_inittorobot.Tsc_init_2. - Set
Tsc_finaltorobot.Tsc_final_2.
To achieve overshoot in the control system, update the gain values in variables.py:
- Set the proportional gain (
P) to2. - Set the integral gain (
I) to5.
- Ensure all dependencies are installed (refer to
variables.pyfor required libraries or configurations). - Run the file
Scene6_youBot_cube.tttin V-REP - Run
final_code.pyto execute the full pipeline and generate the state trajectory CSV files. - For the new task, update
timing_calc.pyas described above. - For overshoot, adjust the gain values in
variables.pyas specified.
