Joseph Jang’s Status Report for 4/30

For this week and last week, I have worked on the three main behaviors for the robotic arm and tuning them.  The three main behaviors are handling raw meats, flipping half-cooked meats, and handling done meats.  Since those three functions can work for one piece of meat, I have created the part of the software controller and integration where these events can be put into a queue system.  We will soon test on a real grill and meats.  I will also have to take videos of each action for the video.  I also ordered a DC power supply that can turn an AC input into a DC input of 12 V and a maximum of 20 A.  This will help to provide the robot with a consistent current draw and avoid electronics from browning out.  I have also presented the final presentation, which I think went pretty smoothly.

Team Status Report for 4/16

For this week, we have begun to start planning our overall system integration and the specifics of the KBBQ environment.  Joseph has been working on improving the inverse kinematics of the robotic arm.  He is also working on fixing some electrical and mechanical issues the arm had.  Raymond has continued to add images for the CV algorithm but has yet to connect all cameras to the Jetson AGX Xavier.  Jasper has also continued to work on the UI of the system.  They have also bought a wifi router to get the wifi working on the Jetson AGX Xavier.

Joseph Jang’s Status Report for 4/16

I have fixed the mechanical issues with the robotic arm by tightening the screws and filling the spaces between the servo motor arm and the plastic metal arm, but have run into some software and electrical issues.  Sometimes the current draw of the servo motors spikes when the motors are under stall torque, causing the current to spike and voltage to drop.  This leads the motors to stutter or sometimes not even move.  While I don’t think this is a problem with the servo motor controller board (PCA9685),  it could be an issue with the current draw that the lead-acid battery is capable of.  I am holding off buying a lithium-ion battery that has a high current draw to power the servo motor controller board, because this voltage drop and current spike occurred after multiple hours and uses of the lead-acid battery, so the issue might be because the battery is not charged enough.

However, for the inverse kinematics, the accuracy of the system is still sometimes off by a couple of inches when the bounds of the robot’s range of motion are reached.  The Matlab library seems to be more complicated than I need, so I have also tried to use a Python library for inverse kinematics called IKPy.  This requires me to make a URDF file that is commonly used in ROS applications.  In both applications, I am getting the angles I desire, but I have yet to test the IKPy library on the robotic arm.  I am hoping the use of ROS and the URDF file, which is very standardized, can help me achieve some accuracy and precision.  I also think I might have to simulate the entire  KBBQ robot environment (dishes, grill, etc.), which will be easier with ROS.

In other minor updates, I have measured, planned out, and set the locations of the dishes, grill, robot, etc.  This way, the robot will have an easier time being more precise within its range of motions.

Joseph Jang’s Status Report 4/10

This week I continued to work on the inverse kinematics of the robot.  To help debug the issue, I disassembled parts of the robot to make sure each joint is being turned to the proper angle.  I found several electrical and embedded software bugs.  I do not think the issue with the inverse kinematics is caused by MATLAB’s implementation of the IK solver.  However,  I will also be making use of the ROS IK libraries to code in python.  Another issue I found was the stepper motor is heating up rather quickly even when it is not in action.  Because it is turned on even though no commands are being sent to it, it heats up quickly.  Therefore, I made use of the enable pin, so that the base of the robot will be in place but not turn on when it is unnecessary.  That way the stepper motor will not be overloaded and burned out.  On several occasions, the motor had become very hot, so this was a proper risk mitigation fix.

Joseph Jang’s Status Report for 4/2

This week, I was able to hardcode some movements for the robotic arm.  I am using the I have taken the measurements of the robotic arm, so I have put it in the Matlab code. First I had to specify the Rigid Body Tree Model.  I could modify the model by using the addBody.  Finally, I used the inverseKinematics function to try to have the robot arm moving.   I’ve tried two different IK models, which are called BFGSGradientProjection and LevenbergMarquardt.  However, since there are multiple solutions that are possible for an (x, y, z) position, the angles of each joint of the robotic arm need to be specified somehow.  We have to choose the right arm joints by making sure the robot arm links are not close to the grill.  Although the picture below is not a picture of the robotic arm I’m using, it is the GUI that I am using to control the robotic arm.

Joseph Jang’s Status Report for 3/26

This week, I was able to set up the Jetson Agx Xavier.  I have started reviewing the inverse kinematics for the robotic arm.  I am going through the tutorials for using Python with ROS to get a better understanding of robot simulation.  I am also looking through the lecture notes of the robotics course 16-384 called Robot Kinematics and Dynamics.  There are many resources available, but I am currently leaning towards using a MATLAB & Simulink library called Robotic Systems Toolbox.  I have started playing around with the IK solver algorithms and simulation model for the end effector of the robotic arm.  I am having some trouble understanding all the math behind a 4-DOF robotic arm.  I think I will eventually get there, but for now, I will simulate the robotic arm.

Team Status Report for 3/19

For spring break and the first-week back, we started developing each of our respective subsystems.  Raymond has made progress on the CV algorithm and is currently trying to get his Blob Detection Algorithm working.  Jasper has started working on the UI and deciding on what information to put.  Joseph has finished the mechanical robotic arm, as well as the electrical subsystem of the arm.  He has also started work on the lower embedded software control of the various stepper and servo motors.  Our parts were all delivered and picked up this week.  We are all at a decent pace to have the robotic arm and our respective subsystems working by the interim demo.  We have not started working on the software controller, but we believe it should be done as part of the integration process, as well as after the interim demo.  We have also each worked on the ethics assignment and are ready to discuss it with other groups.  We will update our progress in our schedule accordingly.

Joseph Jang’s Status Report for 3/19

I have made a good amount of progress on the robotic arm subsystem.  With the 3D printed links and wooden base I created before the start of the break, the electrical parts our team borrowed from the inventory, and the electrical parts and motors I already owned, I was able to complete about 80% of both the electrical subsystem and the mechanical parts of the robotic arm during spring break.  Below are pictures of that progress.          With the arrival of most parts on Monday, I was able to complete and test the electrical subsystem on Monday and completed the mechanics and heat-proofing of the robotic arm on Tuesday.  Below are pictures of the completed electrical subsystem and robotic arm. 

          During the rest of the week, I configured the Jetson AGX Xavier and set up the software environment.  I programmed the 5 servo motors to properly turn with certain inputs, and I was also able to program the stepper motor to turn properly at the appropriate speed and direction.   Below is a video of that.            I will now have to work on the computer vision for the robotic arm using the camera that we bought.   My plan is to now work on and complete the inverse kinematics software in two weeks at the earliest, and three weeks at the latest (which will take up one week in April).  I am at a good pace to complete the robotic arm subsystem before integration. 

 

Joseph Jang’s Status Report for 2/25

The schedule has been tighter than expected for me, so the robotic arm development has been tough.  However, I have already 3D printed the 1st and 3rd links of the Robotic Arm.  It has some small size defects, so I have adjusted the CAD  model and will attempt to reprint them this Sunday.  Also, I have submitted the 3D printing of link 2 to FBS so that a larger printer can be used to 3D print the part.  I am hoping that the parts I have ordered will come in soon before spring break starts so that I could bring the robot parts on the plane back with me and assemble them at home.  Fabrication of the robotic arm should not take more than a total of 24 hours if no issues occur.

I have also started working on the design report, and hope to have it finished by the deadline.  I have planned a way for us to separate the work for the report.  We will each write parts of the report that we have made slides for in the presentation, plus some additional topics that need to go in the report, such as design studies.  We will include all the diagrams and a couple of additional tables and pictures in our design report as well as touch upon the fabrication and assembly process of our robotic system.  We will also discuss more on integration in our report, which we have all started planning.

As suggested during our design presentation, I have also looked more into how to use the available ROS libraries to implement inverse kinematics for a 4DOF complex robot such as the one I will be making.  I am reviewing the math for inverse kinematics, and have looked into ROS tutorials for IKFast Kinematic Solver.  My plan is to fully delve into developing the inverse kinematics software during spring break, where hopefully I will have most if not all of the robot arm assembled.

Team Status Report for 2/19

This week was our busiest week so far.  We had discussions to finalize our design choices for the overall system states and architecture.  We estimate that we are each about 70-80% finished with designing our own respective subsystems.  We will complete our designs in time to submit the design report.   We have not yet documented the fabrication and assembly process of our design, which we will do in our report.  We also have to meet again to discuss what the interfaces will be between each of the respective subsystems we are designing and also start thinking about how we will proceed with system integration.  We have updated the Gantt chart to show our progress in our design phase.  We added slack to our schedule to include more system integration and start our development phase when spring break starts.  We decided Raymond will present for our Design Presentation, which is mostly finished and ready to be submitted.  Although we are all still busy in the Design phase, it is worth noting that we should look ahead and start discussing the Development phase of this project next week.  We hope to continue this pace throughout our project.