This API class wraps Faulhaber motor driver communication into functions that directly invoke motor motion.
There are 2 ways of invoking robot motion through the given set of scripts:
User Interface - In this mode the robot is remotely controlled from the user's computer keyboard over TCP.
x - increment speed on both motors.
z - decrement speed on both motors.
left arrow - increment speed on the right motor, decrement speed on the left motor (turn left).
right arrow - increment speed on the left motor, decrement speed on the right motor (turn right).
Note that the speeds are capped, once the speed limit is reached further increments are ignored.
Encoder based motion - Robot moves autonomously when appropriate API function is called. Uses encoder to travel a set amount of steps/millimeters or rotate a set amount of steps/degrees.
FaulhaberComm.py - Contains the API class to communicate with Faulhaber motor drivers.
robot_server.py - A socket server for the remote robot control. Runs on the robot.
robot_client.py - A socket client for the remote robot control. Runs on the user's computer.
irobot_lib.py - Adapter class to implement user interface based motor control.
drivingTest_scan.py - An example of encoder based motion in a zig-zag pattern.
- pyserial - Provides serial communication with Faulhaber motor drivers.
- keyboard - Used to controll the robot from user's keyboard.
Built on a A Raspberry Pi 4. ** to be continued **