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

 

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

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.

 

George’s Status Report 2/25/2023

This week I

  • Wrote Camera Calibration code and tested it with camera intended for onboard use : https://github.com/gxgao/eceCapstone/commit/e2563776702df91df376e5ef2d20f3c5c5ad5150
  • Created code for pos estimation with calibrated camera: https://github.com/gxgao/eceCapstone/blob/master/video_aruco.py
  • Helped setting up tethered Roomba driving
  • Created bin identification class and interface
    • https://github.com/gxgao/eceCapstone/blob/master/binID.py
    • updated db interface to support such queries https://github.com/gxgao/eceCapstone/blob/master/dbInterface.py

Classes that I used: 18-202 and Intro to Robo (16-311)  for matrices and CV things

Schedule :

  • On schedule
  • Next week we plan to finish lidar setup and start path planning module. Will help Jack with slam lidar setup and bring up to schedule, and help set up stepper motors to bring hardware schedule back up.

George’s Status Report for 12/18/2023

Accomplishments

  • DataBase:
    • This week I finished setting up the db, and added the table we will be using for bin tracking with the schema designed last week: https://github.com/gxgao/eceCapstone/blob/master/binTracking.db
    • Added python high level interface to work with db, so that logic can be executed in code: https://github.com/gxgao/eceCapstone/blob/master/dbInterface.py
    • Will be building ontop functionality as needed
  • Data Capture:
    • Got arUCo image recognition to work on static images: https://github.com/gxgao/eceCapstone/blob/master/cv.py
    • Got arUCo image recongnition to work on video streams: https://github.com/gxgao/eceCapstone/blob/master/video_aruco.py
  • Path planning has been shuffled to be later to after lidar mapping inputs are complete

Schedule

  • Currently On Schedule
  • Next week hope to bring up roomba movement, and streamline data capture logic

Courses that helped:

  • I am currently taking 15-445 (databases) and it helped me design the schema for the database pretty well
  • For CV, 16-311 (Intro to Robotics) helped me look into computer vision schematics.

George’s Status Report for 2/11/2023

Progress

  • Worked, Practiced and Presented Proposal Slides
  • Talked about design trade-offs for docking mechanism and software challenges
  • Worked with Team to pick out parts, and started putting a spreadsheet together for what parts to order
  • Downloaded, installed SQLite3 in linux (Xavier) environment.
  • Started designing Schema for SQLITE database for bin tracking system

Schedule:

  • I am on Schedule

Next week, hope to complete the SQLITE db set-up milestone with schema working, as well as start looking into path-finding algorithms.