Robotics Labs
Robotic Systems
(1st in series)
Principles of Robotics
(2nd in series)
Advanced Robotics
(Final in series)
Introduction Labs
These labs introduced the basics of working with physical electrical devices. Blinking LEDs, interrupts, motor control, distance sensors, and Xbee communication were all included.

Xbee Communication
AmigoBot
This lab involved interaction with the Amigo bot, a two-wheel differential drive robot that utilizes ultrasonic sensors to sense surrounding areas. Due to this class being in hybrid format for covid, this lab was performed largely in simulation showing how to operate and program the robot utilizing ROS, Gazebo, and RVIZ. The robot was commanded to drive in a circle, randomly avoid objects, and navigate a short maze in simulation. An opportunity to teleoperate the bot was also given in person.

Amigo Bot
Baxter
Utilizing prewritten kinematics control code for the Baxter human assistance robot, the lab's main task was to implement a pick and place algorithm for a single block to show basic functionality. This was followed by coding self-made kinematics in order to perform basic operations utilizing both arms. Bonus points were awarded for combining these to implement a pick and place algorithm to stack three blocks in a single tower (shown below).

Baxter Simulation
Baxter 2
A continuation of the Baxter lab from the previous class in the series, this lab took the functionality of Baxter up a little bit. Stacking blocks was the first task in this lab utilizing preset kinematic equations and points. This was followed by incorporating the camera to gather the location on the table to feed into the kinematic equations allowing for more usefulness to the code. Once simulation proof of concept was shown, the algorithm could be tested on the real robot.

Baxter Robot
Husky
Using the Husky robot, a four wheeled differential drive robot, this lab involved using the robot to continue with room localization and mapping. Due to only having one robot this lab was done primarily in simulation, but some short teleoperation was performed on the robot itself. Using the Husky model and RVIZ paired with Gazebo, a simulated environment was created and mapped several times to verify mapping and navigation algorithm functionality.

Husky Mapping in RVIZ
SolidWorks Lab
This lab was the first introduction to 3D CAD modeling. The lab consisted of designing an acrylic case (below) to go around a 2 in tall model of choice (downloaded from internet). This model then was used to create .dxf files for use in a laser cutter to obtain the pieces and build the case to go around the 3D printed model.

First Introduction to Solidworks and 3D CAD
Hexapod Control
Among the labs, this was one of the most frustratingly fun labs I had. Like the other labs in this class, covid forced this lab into simulation rather than in person. This added new elements of difficulty to the lab as simulation glitches had to be corrected as well, such as the model flying off into space if it hit the ground wrong. However, the purpose of the lab was to code and implement from scratch a tripod gait, wave gait, and ripple gait along with their turning counterparts. Bonus points were achieved when scaling these gates, and the model, up to an octopod.

Hexapod leg layout
ALB5
Utilizing Gazebo and RVIZ, the ALB5 robot was used as the subject in this lab. the first task involved fixing the URDF file in order to repair the broken model given by the instructor. Then using this repaired model, implement a pick and place code using python to demonstrate the model was fixed appropriately. The third task involved creating code to show the frames of each joint (implemented as a shadow version of the arm) and make them track the robot throughout the pick and place routine.

ALB5 5 DoF Arm Robot
AmigoBot 2
Another continuation lab from the previous class, this lab built on the tasks already completed by implementing work with teleoperation by Wi-Fi utilizing ROS and a physical robot. Also upgraded was creating a self-navigation algorithm to upload to the robot and allow it to avoid obstacles in a room while tracking its odometry. Finally, this all was incorporated together by joining the simulation and the physical robot to generate a simplistic mapping of the obstacles in the room and displaying them as dead zones.

Pioneer Bot