Zach’s Status Report for 4/8/2023

This week I helped with the assembly and setup for the interim demo, including doing some final laser cutting. I also was able to get the full gear system for a single arm put together, after some delays with the 3D print orders. I spent a lot of time trying to figure out why the stepper motor wasn’t being driven properly, which ended up being multiple reasons. The drive strength on the GPIO is pretty poor, and one of the Jetson’s PWM pins doesn’t work properly.

I am on schedule, and just need to redesign the battery housing since the orientation of the battery status window is on the wrong side. Other than that, I’m ready for assembly of the housing and testing of the lift arms. Based on initial results I may need to use larger gear ratios since the torque output is lower than I had hoped, but will try and alter the stepper config first. This will only impact the weight limit tests that we’ll do in a couple weeks.

In the next week I’ll try and improve the lift arm strength and remake components if needed, followed by a full glue-up of the electronics shield. I’ll also start making the bin modifications so we can begin weight testing. Once that’s done, I’ll begin moving over to the software side and assist there.

I’ve run validation tests on the lift arms and gear systems so far, which will allow me to start doing higher weight verification tests up to 10lbs. After the bins get made this week, I’ll be able to verify stability of the bin lift to meet the 99% no-tip target. Those are the only tests I have that are strictly hardware-related, and the other ones will be integration tests with the software side. I’ll work closely with Jack and George on those tests and the associated metrics.

https://github.com/gxgao/eceCapstone/blob/master/lift_test1.py

 

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.

 

Jack Girel-Mats Status Report for 4/8/23

  • Week recap
    • Worked on navigation tuning with George.
      • Found a bug with George, which was causing a transform from map to Odom frame to be published by two sources. This is incorrect as AMCL (localization) should be responsible for publishing this transform.
      • The above bug helped us fix initial pose estimation allowing for the robot to start in any location in the room (before it had to start at a specific spot described by SLAM).
      • Localization still drifts which is a cause for concern.
      • Lowered navigation control update loops. This was necessary as the hardware we are using is not powerful enough to handle updates that create smooth movement.
    • Setup Jetson AGX using usb wifi for ssh. Although it is a bit faster than the NX, when doing development over ssh, it often freezes. We have decided that a better development experience is more valuable at the moment and will continue using the NX.
    • Worked with George to implement a simple program that allows the Roomba to follow the movement of an ARUco tag.
  • Schedule
    • Behind on navigation. Need to use slack to finish.
  • Deliverables
    • Fine tune navigation
  • Testing Plans
    • Not ready for navigation testing, still a lot of fine tuning left. Some simple tests can be run: a battery test running the Roomba in a back and forth pattern at full throttle as well as running the servos for bin docking intermittently. Additionally we will be doing further testing of localization for navigation fine tuning.
    • We will do ARUco tag orientation to test simulated trash bin pickup. This will be accomplished using a tag attached to a wall.

Team Status Report for 4/1/2023

Significant Risks

  • Battery life: we’re currently not seeing the expected longevity from the single pack, so may have to go to 2 packs in parallel
  • Navigation Stack compiles and runs, moving on to tuning configuration parameters and sensor data for more accurate results with path planning and movement

Design Changes

  • None to report on hardware side
  • We have updated the Roomba library and changed the serial baud rate. This has enabled the odom topic in ROS. Seems to be good enough to get basic path planning working, but needs more testing.

Schedule/PM

  • Slightly behind on test/integration, will be making use of 2 week slack time

We do have some photos to add, but sadly wordpress isn’t allowing uploads 🙁

Jack Girel-Mats Status Report for 4/1/2023

  • Week recap
    • Continued working on navigation bringup with George.
      • Kind of working. We were able to give  a goal pose and the robot was able to follow the planned path.
      • A bit finicky, needs to start at a specific point for path planning to work. (Localization and path planning are desynced for some reason)
      • Doesn’t do well with all types of obstacles, needs some more testing and optimization
    • Worked on LaserScanMatcher to implement odometry data using just laser scans (we are not going to use LaserScanMatcher for now b/c we got odometry data from Roomba).
    • Building the Roomba library from source (which is a newer version than the one that can be downloaded on ubuntu repositories) and changing the baud rate has enabled the odom topic in Ros
      • It was working well enough to get simple path finding working
      • Need to do some more testing to see if it is fully working and accurate
  • Schedule
    • On schedule, fine tuning navigation
  • Deliverables
    • Check in with usb wifi adapter package shipping timeline (Quin was out)
    • Fine tune navigation

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

Zach’s Status Report for 4/1/2023

This week I made a decent amount of progress on both CAD and fabrication. I was able to finish out a preliminary model for our component shields and the lift arms, which I also started laser cutting. The gear-cam system also got printed, but I may do a reprint with a larger cam if the lift height isn’t adequate.

As for schedule, I’m catching up quickly by getting everything made, but the true mark will be after the interim demo. I think we’re going to utilize the 2-week slack time for further integration and testing, which allows for redesigns of the lift arms.

In the next week, I’ll have the component shields cut, as well as perform any necessary iteration on the lift arms in terms of height and length. If all goes well in this area this week, I’ll start shifting more towards software and integration of different modules with Jack and George.

I have photos of the assembly and CAD models to add, but WordPress is having issues 🙁

Zach’s Status Report for 3/25/2023

This week, I had some unforeseen events not related to our project that meant I spent less time than planned. Specifically, I wasn’t able to fabricate the lift arms, but made some progress on coming up with a design for our electronics shield. For testing the LiDAR mapping, I had to come up with a temporary solution to mount all the electronics, which ended up being some wire to fasten the battery, Jetson, and LiDAR in place.

I also helped with some of the LiDAR mapping and interfacing with the Roomba.

In lieu of this, I’m again behind where I’d like to be, but unless unforeseen events come up this week I have far more availability than this last to perform fabrication. Specifically, I’d like to get the electronics shield made in addition to the lift arms. I already have CAD models for the bin modification so making those will be a matter of laser cutting.

As for schedule with the interim demo, I plan to have the lift subsystem complete by the end of the week, including stepper motors and gears/cams. While I may not be at the stage to test auto-docking and lift, I can still showcase the lift system on its own. Other than that, the slack time will probably used for integration. After the hardware fabrication and verification is complete, I’ll probably move over to the software side since that’s where our main integration challenges lay.

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).

Jack’s Status Report for 3/25/2023

  • Week recap
    • Worked on navigation bringup with George.
    • Successfully created global planned path from robot to target location.
    • Setup gmapping as an alternative SLAM mapping engine. It resulted in a poorer quality map when compared to Hector SLAM.
    • Debugged faulty navigation. When attempting to follow a planned path, the robot does not make any progress, it just spins in circles. We have identified a possible error in odometry data.
    • The odom data provided by the Roomba seems to be very unreliable. Many people have mentioned this online. This may be causing navigation/gmapping issues as both rely on odom.
    • We have identified an alternative method of gathering odom data. Specifically using laser scans to emulate odom.
  • Schedule
    • On schedule, debugging navigation
  • Deliverables
    • Check in with usb wifi adapter package shipping timeline.
    • Continue debugging navigation/odometry
    • Implement laser scan odom.