Ludi Cao’s Status Report for 11/13

At the beginning of the week, I implemented the motor control code for the wheel chassis on the robot. The following video was performed during the interim demo.

After the demo, I worked with Esther and Bhumika to integrate our subsystems. I first experimented with the relationship between the motor spin time and the distance it would travel. The robot can accurately travel a specific small distance without much drift in all directions. Then, we incorporated the computer vision subsystem to work on various navigation sub-components. The robot can move towards an apriltag from an initial position at a tilted angle. The robot would first rotate to face parallel to the apriltag, center itself horizontally, and then move towards the apriltag, based on the location and angle coordinates of the camera. The other subsystem we worked together as a group is laser pointer recognition, centering the robot to the tagged object, and then moving forward towards the robot. Next week, we would add an IMU sensor for more precise movement of the robot in case of drift, and work on the remaining subcomponents: retrieving the item from the shelf and returning to the basket. 

Ludi Cao’s Status Report for 11/6

This week I worked mainly on the navigation code and some design of the middle board which places objects. I implemented a program where the Jetson sends directions to the two Arduinos, and the motors spin accordingly based on omnidirectional rules. Attached is a video that demonstrates this behavior. 

One promising thing I noticed is that, even though each motor is controlled by a separate motor driver, and the four motors interface with different Arduinos, the motors change direction at the same time. However, I do notice that there is a lag between the time the Jetson sends commands to the Arduinos, and when the motors respond to the command. Hence, this is something to be aware of when the Jetson sends information to the motors potentially about a frame captured slightly earlier. 

Esther and I also did a bit of designing of the board to place the various electronic parts. We think that we don’t necessarily have to mount everything on top of the board, but it is useful to create mounting holes for the motor shield, since there is a heat sink that gives it some height. We managed to measure out the dimensions for the motor shield. Attached is an image to show how the motor shield would be mounted. I would work on engraving the motor shields dimensions into the larger board, and hopefully have it laser cut on Monday or Wednesday. 

 

To test how the robot currently navigates, I temporarily used a cardboard to place various electronics. Since I am testing in the lab room, I ran into the issue that the floor might have too little friction, resulting in the wheels spinning at different speeds. The robot would not go in the direction as intended. We plan to add a foam-like structure on the wheels to increase friction. I would also look further into my code and the mechanical structure of the robot to see if there’s anything to troubleshoot. 

For next week, I plan to debug the issues about navigation ideally before the demo, laser cut the board to place the electronic components, and work with Bhumika to integrate computer vision into navigation. Hopefully, the robot can respond to camera data and move accordingly. 

Ludi Cao’s Status Report for 10/9

At the beginning of the week I had an extensive discussion with my team to finalize the specific hardware we need to order and the associated bill of materials. We realize that budget is a concern, and based on that I slightly modified the base of the robot chassis to be smaller and more compact.

The base is now roughly 35cm * 35cm, where the straight extrusion on the sides are 20cm, and the diagonal extrusions connecting to the wheels are 12cm. Reverting to a smaller size would save up a log of cost material, and also make the linear shaft system steadier. Since the height of our robot is nearly 1 m high, and our claw system would stretch forward to reach an object of 1.5 lbs at max, I was initially concerned that the robot might “tip” forward when reaching out to a heavy object. However, based on the relative distances and weights of components, based on the lever rule in physics, the mass times distance towards the side of the robot is roughly 6 times as heavy than the same calculation done on the object side. Therefore, the need of a counterweight is also removed from my initial prototype of the robot.

I also did some other metrics calculations to confirm our system would meet our technical requirements. We aim to have the robot move at a speed of 0.5 m/s when not performing other computations. Based on our motor specs: 150 rpm and a wheel diameter of 90mm, according to the equations f = 2 pi f and v = rw, we derive that the ideal speed of our robot is 0.7065. Yet, our robot has a considerable weight, so taking a rough 20% deduction, our robot can still travel at a speed of 0.5625 m/s. Hence, I would anticipate our robot would just meet the requirements, and it would be interesting to experiment the results. I also calculated the power our system would consume, and find that our battery can last around 3.5 hours per charge where the robot is operating at full capcacity. This confirms that our robot is efficient enough to be used multiple times.

I am on schedule, although I didn’t find much time to explore the software side of the drivetrain, and we are a bit behind on ordering the materials. Next week our team would focus on the design report, and we would send the materials next Tuesday and hopefully have some parts delivered by then.

Esther Jang’s Status Report for 9/25

During class this week, I watched other groups’ project proposals and found them to be really interesting. I spent some time on Sunday to help finish up our presentation with the group.

One point that was brought up during the discussion after our presentation was why we were using a claw as our end effector rather than a vacuum gripper. I had previously given the vacuum-powered gripper some consideration but wanted to re-evaluate that choice just in case. In my research, I found that the most reasonable methods to do this given our use case was either using a squishy universal gripper or a suction gripper. However, the squishy universal gripper is better suited when pressing against a smaller object, which does not match our use case. The universal gripper typically molds around the object and holds the mold by vacuuming out the remaining air. The objects we are picking up will not have much normal force opposing the force we apply (since they are freestanding in a shelf) and will not be small, so the universal gripper will not work. The suction gripper will also require a very strong and expensive vacuum pump that is not practical for us to purchase. Typical off-the-shelf vacuum systems seem to only be able to carry 0.22 lbs, so it will not perform well enough.

After the above research, I decided to proceed with the servo-powered claw end effector idea. I have yet to solidify the linear actuation method but believe I will likely be using a DC motor-powered linear slide system. With this in mind, I wanted to sketch out the electronics required for my end effector and linear actuation systems. I chose a standard PWM servo and I2C servo driver (specifically PCA9685 in the diagram) for the claw. I chose a H Bridge motor driver and DC motor for the linear actuation system. Both of these choices were inspired by many other Jetson Nano projects I saw using a servo or DC motor, and I wanted to focus on feasibility before refining my choice of hardware.

However, I realized that the battery needs significantly more consideration than I had previously considered. This is because there are many ways to power the Jetson Nano which requires 5V/2A (10W) while the DC motors will require 12V and the servos require 5V (share the same power source as the Jetson Nano). We can either have different power sources for the motors and Jetson Nano or use a buck converter. I have been heavily evaluating the tradeoffs as the Jetson Nano seems to be sensitive about battery sources (i.e. read a lot of articles indicating that the USB power bank source should be avoided). For now, I left the power source for the Jetson Nano out of the diagram but have been focusing a lot of research in this area.

I believe I am currently on track with researching design considerations. After finishing up my research on electronic components, I will move onto CADing the mechanical components.