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

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.

 

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

 

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

George’s Status Report for 4/8/2023

  • Worked with Jack to get robot movement towards ARUco tags working for demo https://github.com/gxgao/eceCapstone/blob/master/bin_docking.py
  • Database bin identification through interface and video streams : https://github.com/gxgao/eceCapstone/blob/master/video_aruco.py
  • Added file to publish goal and initial pose directly without rviz : https://github.com/gxgao/eceCapstone/blob/master/catkin_ws/src/trash_bot/localization_data_pub/src/rviz_click_to_2d.cpp
  • Found and Fixed bug with Jack in Navigation stack that set odom frame as a static transform w.r.t the world frame, leading to issues with initial pose estimation and localization
    • Localization still drifts, will need to continue working on tuning parameters
    • Map update and control loop update frequency has been adjusted to be much lower due to hardware limitations. Tested on both AGX and Nano, both around the same.

Schedule:

Behind on schedule, using built in slack for navigation

Next week:

Continue tuning parameters on navigation stack for better path following results,  move towards bin docking movement locally

Testing Plans:

  • Bin identification: will run multiple tests in following weeks on identifying through onboard camera to hit 99% correct bin identification rate. This includes working through the database, and CV components.
  • Battery life tests can be run next week with just running movement at full throttle till death as a benchmark for battery life. Expectation is not to hit the 5 hour initial goal.

Not ready for testing but the plan for the below components:

  • Bin Docking: Since mechanical components are not in place yet, tests will involve identifying bin properly, locally navigating to it, and spinning in place to prepare for docking procedure with alignment within 10 degrees of normal plane. This test will be repeated for 10 trials for multiple bin configurations. Want to achieve initial goal of 80%.
  • Navigation Stack: Work with Jack to test successful general navigation to 3 published goals of varying complexity, with 5 trials each.  Success is determined by being within a 1 m radius of goal, would like to achieve at least a 80% success rate.

Full integration testing will be left for after subsystem testing completion.

 

George’s Status Report for 4/1/2023

  • Worked with Jack and finally got Navigation stack up and running
  • Did preliminary testing, local localization and movement are quite off, looking towards fixes

Schedule:

On schedule, although movement can be tuned to be better

Next week:

Tuning parameters on navigation stack for better path following results, bin pickup software implementation

Team Status Report for 3/25/2023

Significant Risks

  • Roomba odometry data
    • The Roomba provides very unreliable odom data. This is backed by many complaints found online about its unreliability.
    • This poses an issue for other systems that rely on odom, such as navigation, and gmapping (an alternative SLAM engine that produced worse results when compared to hector SLAM).
    • During navigation to a target goal, the Roomba would just spin in a circle.
    • We plan on using laser scans to replace odometry data.
  • Transparent Objects
    • Transparent objects, such as windows, produce unreliable maps. To create better quality maps, we have blocked the bottoms of windows that are inline with our lidar system.
    • We are not sure how this will affect localization, further testing is necessary to see if windows need to be blocked during operations.

Design Changes

  • Due to the aforementioned issues with Roomba odometer data, we have decided to use laser scans to produce odom data.

Collaborated on Navigation stack bring up.

  • We were able to produce odom data by using the laser_scan_matcher package for ROS.

  • We have successfully setup navigation on the Xavier NX. We were able to produce a global path to the target, but were unable to get the Roomba to follow the path (it just turned in a circle).

George’s Status Report for 3/25/2023

Tasks:

  • More ROS exploration, continued to work with Jack on Navigation Stack bring-up
  • Navigation Stack installed
  • Tried GMapping over Hector slam, but got a worse map than hector slam, due to heavy odometry error.
  • Path planning through ROS & RVIZ seems to work, encountered challenges with following said path physically

Schedule:

  • This week was slack week, so theoretically still on schedule

Next Week:

  • Want to finish navigation stack bring up, and test robot physically works with the stack.

 

 

George’s Status Report for 3/18/2023

  • Week recap
    • Worked with team to incorporate entire Ros Navigation Stack setup on Jetson https://github.com/gxgao/eceCapstone/commit/90eac2dfaa66f95673eb20bf9b45bb73561d2cd6 (WIP).
    • Completed Ethics Report
    • Primitive HH 1307 mapping with hector slam on Roomba level completed with team:  https://github.com/gxgao/eceCapstone/tree/master/catkin_ws/maps
      • Initial map seems to be messed up due to the floor level windows of hammerschlag. Further testing needs to be done, in addition to integration with odometry data.
    • Odometry python Ros infra setup:
      • Learning curve for python ros interface
      • https://github.com/gxgao/eceCapstone/blob/master/encoder_node.py
  • Schedule
    • Behind Schedule on Path planning. Path planning bring up is tied to navigation stack, deprioritized to bring up movement before path planning through goal publishing node will be done.
  • Deliverables
    • Get Roomba motor control setup with ROS
    • Navigation stack completion
    • Encoder data pull from pycreate

George’s Status Report for 3/4/2023

The majority of my time was spent writing and planning out the software for the design report.

For the project itself I helped with Lidar bring up through the use of the ROS library.

Schedule:

We are behind schedule for path planning bring up., as the majority of it was blocked due to Lidar bring up issues. We will get back on schedule on the first week of break back, with a focus on getting ROS path planning to work with the mapping system we decided upon.

Deliverables next week:

Using slack time to bring up path planning software, and provide interfacing program to work with the rest of the robot.

Drive system program to simulate driving towards bin.