Zach’s Status Report for 4/29/23

This week, I spent time making the breadboard circuit used by the GPIO interface more robust, as well as working with Jack to find the best Jetson pins to use for PULse, DIRection, and ENAble lines on the two stepper drivers. We found that many of the pins, either on the header we soldered to or themselves were shorted/acting as a voltage divider.

The lift system is now functional and can lift at least an empty bin. I also developed a startup procedure for the stepper drivers to prevent an overcurrent on the battery, which causes it to shut down.

I prepared for a hardware freeze as best as possible while allowing Jack and George to test the docking alignment, including sanding down gears and arms and drilling mount holes.

My personal progress is finally on track, with the hardware freeze occurring tomorrow afternoon. This will allow the glue to set enough overnight for us to begin final integration tests on Monday. After the freeze, I will jump over to the software side of the project and start helping with any debugging or integration issues that arise.

I wanted to insert a lift test video but it’s blocked by WordPress šŸ™

Team Report 4/29/2023

Significant Risks:

  • Docking Procedure may not be entirely robust
    • Should be enough as an MVP and for majority of cases
    • There may be edge cases where the system does not dock properly (next to a wall, in a corner, next to/under a table
  • Arm lift may not hit the 10 lbs described, but can lift empty bin and possibly more for testing
  • Battery bank is not going to last the desired five hours of runtime, but we do not consider this a major risk, as it does not change the functionality of the Robot

Design Changes:

  • Added back rear facing camera for bin docking alignment
    • The LiDAR didn’t provide enough depth differentiation of the bin when placed up against a wall, so alignment without a rear camera was difficult
  • No changes have occurred on the hardware side since the last report

Schedule/PM

  • Still slightly behind on test/integration, will be making use of finals week
  • Hardware freeze will be occurring tomorrow since the bin lift system has been verified
    • Components glued down and fixed in place for the final time

Testing:Ā 

  • aRUco Identification test (success)
  • Navstack Test (success)
  • Bin lift test
    • Basic lift without additional weight (success)
    • 10lb lift (extrapolated for failure)
  • Movement Speed Test (success)
  • Human Collision Test (success)
  • Preliminary bin alignment for bin docking subsystem test
    • Changed design to include 2nd web cam after finding LiDAR object detection being unreliable
    • More robust docking test with arms to lift bins are needed
  • Integration testing left for next week after hardware freeze is done
  • 2 Battery tests, one projected for failure, this weeks test showed 80% battery drainage over 4 hours. We ordered a new Roomba battery from last week, considering design changes for additional battery for battery bank.
  • Testing results : https://docs.google.com/spreadsheets/d/1Fv7A8lMn3GBn9MV8tf394E4ilYxbIwjUDCy7U3aQ8g0/edit?usp=sharing

Jack’s Status Report for 04/29/23

  • Week recap
    • Created a bin detection algorithm with George
      • Used LiDARĀ  and edge detection to grab a vector representing the bin
      • Then while rotating the Roomba, the vector was then compared to the current LiDAR scan using L1 norm to find center of bin for alignment
    • Worked on bin alignment with George
      • We were not happy with the LiDAR bin detection algorithm performance, so we have returned to using a back camera for bin detection
      • Now we detect the bin distance using LiDAR, and use ARuco for bin pose estimate to create an alignment procedure
    • Enhanced robot rotation with George by listening to ROS transform messages for more accurate orientation estimation
    • Completed battery test with George
      • 80% drain over four hours
  • Schedule
    • Behind on bin alignment and integration testing, using Finals week as buffer.
  • Deliverables
    • Continuing to work on bin alignment
    • Once bin alignment is done (and hardware is frozen) complete bin pickup and integration tests

George’s Status Report 4/29/2023

  • Worked with Jack to get create dummy_laser node
    • Created bin identification algorithm that uses edge detection to identify bin from laser data
    • Identify bin using L1 norm during bin rotation through lidar scan window
  • Worked with Jack to calibrate docking procedure
    • Experimented with lidar bin identification (dummy_laser), and were unhappy with results
    • Added support for second back camera to also detect ARuco tags
      • Docking procedure uses a mix of ARuco and Lidar distance estimation to control movement logic
    • Added additional state-machine logic for docking protocol
  • Worked with Jack to make rotation direct drive commands more robust
    • Uses transform listener as a feedback loop to get back robot position w.r.t the map
    • Rotate algorithm rotates to goal angle using current published position

Schedule:

Behind on schedule, using finals week for full integration testing and integration

Next week:

Finish bin docking integration test, complete the rest of the state machine logic

Testing Plans:

  • Worked with jack on preliminary bin alignment for bin docking subsystem test
    • Changed design to include 2nd web cam after finding lidar object detection being unreliable
    • More robust docking test with arms to lift bins are needed
  • Integration testing left for next week after hardware freeze is done
  • Completed another battery lifetime test 80% battery drainage over 4 hours.

 

Zach’s Status Report for 4/22/23

This week I worked primarily on getting a second set of lift arms made, as well as debugging the Jetson GPIO motor issue. I issued the design change for the lift arms to be higher off the ground, allowing for more deviation in the floor surface and wheels at the ends for precise height.

Previously, I was able to drive the stepper motor from GPIO using only a MOS on the pulse wire, but now that’s not functional so I’m moving to use MOS’s on every wire into the stepper drivers. This should alleviate the current load on the Jetson pin header and prevent the brownout we were seeing.

I also created the wiring harness that allows us to plug the stepper drivers directly into the 12V DC output of the battery for our final version. There appear to be no issues with getting enough current into the motors.

I’m taking a break from motor debug to write this report, which I plan to have functional by tonight. After that, we’ll be ready to start docking tests. This puts us closer to being on schedule, but we’ll utilize finals week as our slack time for more extensive testing and system tuning.

This week, it’d be great to be in a place where I can go ahead and glue our arms down, since that action would mean we can no longer swap out gears or motors, and the arms are in the final iteration. Once I freeze the hardware, I’ll support Jack and George on the software sensing/hardware interface for our testing.

See below: the new higher arms with the bin platform, side-on view of the gears mounted on one of the arms (green ones are new, high gear ratio)

Team Status Report for 04/22/23

Significant Risks

  • Motor controllers are functional but are not being enabled properly by Jetson GPIO
    • The Jetson’s pins have extremely low drive strength and cannot drive high current/high capacitance loads
    • This issue is being actively worked and a possible solution is being tested
  • Since arms are currently not working, docking testing and docking iteration has been slowed.
    • Additionally, as arms are not fully integrated, the maximum lift capacity is still not known. We may decide to get more powerful motors as
  • Battery bank is not going to last the desired five hours of runtime, but we do not consider this a major risk, as it does not change the functionality of the Robot

Design Changes

  • No longer using a read-facing camera due to distance inaccuracies when docking. We are instead going to use the LiDAR to do alignment for bin docking, and bin ID with the front camera
  • Due to the GPIO drive strength issues, we’re testing a design that uses MOS’s for controlling input into the stepper drivers, as well as more current-limiting Ā resistors
  • Increased the gear ratio and cam distance for the bin lift for higher weight capacity and more stability
  • Added wheels to the end of the lift arms for greater stability and more precise arm height
  • Using Jetson Xavier NX for the final onboard computer as it provides a better development experience over ssh.

Schedule/PM

  • Still behind on test/integration, will be making use of finals week.

George’s Status Report 4/22/2023

  • Finished Navstack with Jack, Robot localization and path-planning including local obstacle avoidance is possible now
  • Created new Ros Node with Jack to mask lidar into proper range during bin pick so that bins don’t mess with localization while picked close to the robot
  • Added functionality to fetch free bins from the databases
  • Added Functionality to publish and cancel goals
  • Wrote Central Coordinator with Jack:
    • Wrote Idle state: fetches free bins from database and sets it as a goal
    • Fetching: uses given state to (current free bin) to give navstack goal to reach
    • Searching for Bin state added: uses video stream from web cam to detect the current bin’s aRUco marker, added controls to rotate in place searching for marker, and during fetching journey
    • Docking: Roomba once identifies bin, will rotate 180 degrees +/- some tolerance using the Lidar to align with the bin to begin process
  • Started testing components that are possible (arms are not finished so focused on what was available) https://docs.google.com/spreadsheets/d/1Fv7A8lMn3GBn9MV8tf394E4ilYxbIwjUDCy7U3aQ8g0/edit?usp=sharing
    • aRUco Identification test (success)
    • Navstack Test (success)
    • Movement Speed Test (success)
    • Human Collision Test (success)
    • Battery Test ()

Schedule:

Behind on schedule, using built in slack to do full integration with arms

Next week:

Finish arms and full integration, start running full integration tests

 

Jack’s Status Report for 04/22/23

  • Week recap
    • Finished creating a new LiDAR ROS node with George.
      • This new node masks out the back half of the LiDAR scan which is occluded by the trash bin during pickup and retrieval.
    • Worked on the central coordinator with George.
      • The central coordinator allows us to give commands to the Roomba bypassing RViz.
      • (Path Following) We can send goal locations to the Navstack allowing for bin pickups using coordinates stored in the bin database.
      • (Searching) After navigating to a set coordinate, the Roomba rotates until the front camera sees the ARUco tag.
      • (Docking) Once a tag is identified, the Roomba rotates 180 degrees, at which point the Roomba uses the LiDAR to align itself with the bin.
      • Still need to test docking (arms are not done yet).
      • Added ability to cancel goals
      • Added manual control (drive X meters, rotate X degrees)
    • Worked on navigation testing with George.
      • Picked two positions in A107 and measured how close the Roomba was to those positions after navigation.
    • Tested camera ARUco detection with George.
      • Camera was able to reliably detect ARUco tags at up to 2m.
      • The detection was poor during rota
    • Tested motor control and bin pickup arms with Mason.
    • Tested battery life with George
    • Tested obstacle avoidance with George
    • Tested movement speed with George
    • https://docs.google.com/spreadsheets/d/1Fv7A8lMn3GBn9MV8tf394E4ilYxbIwjUDCy7U3aQ8g0/edit?usp=sharing
  • Schedule
    • Navigation Done. Working on integration for the next week and finals week.
    • Behind on bin pickup. While arms are not completed, doing testing.
  • Deliverables
    • Overall system integration. Mainly working on docking and bin retrieval.
    • Help with arm testing.

Team Status Report for 4/8/2023

Significant Risks

  • Navigation Stack compiles and runs, still working on tuning configuration parameters and sensor data for more accurate results with path planning and movement, but made progress, found crucial bug that treated odom frame as a static transform w.r.t the world.
  • Localization is better, but still has a lot of drift
  • An example of starting pos vs ending pos for point cloud array for localization
  • The preliminary stepper config results in lower-than-expected torque

  • Map update / Control loop update rate has been decreased significantly due to hardware limitations

Design Changes

  • Nothing concrete on hardware, but consider looking at higher gear ratios or more powerful stepper motors to reach 10lb lift target (based on initial test)
  • None on software side

Schedule/PM

  • Still behind on test/integration, will be making use of 1 week slack time