nasa / ow_simulator

Other
147 stars 41 forks source link

Consistency of the power consumption model #233

Closed oceank closed 2 years ago

oceank commented 2 years ago

We observed some consistency issues in the power consumption model and would like to share them here and get some feedback.

The goal of the investigation is to check two hypotheses on the power consumption model, which are important for designing the data collection for learning the power consumption model in the lander. (The learned power consumption model will then be used to assist the autonomy for planning and adaptation.)

Two Hypotheses we are interested in:

Investigation Setup

Observations The experiment result is ploted in figures, figure 1 and figure 2. For the tracked RUL values, please refer to the Google Sheet.

image

Figure 1

image

Figure 2

Follow-up study As suggested by @Samahu in the ARROW/COLDTech meeting, we will go to use the raw/average measurement of the mechanic power instead of RUL to check our two hypotheses. Two corresponding ROS topics in ow_simulator are:

kmdalal commented 2 years ago

@oceank , thanks for the detailed report. Here's some feedback:

chetankul commented 2 years ago

@oceank Thank you for the report and questions on the power module.

My response to the two hypothesis is as below

Hypothesis 1: the operations of the same kind with the same context, e.g., grinding at the location A, are expected to result in similar energy consumption, i.e., similar reduced RUL. If the energy consumption of the two runs differs, how does the variation look like?

If the energy consumption in the two runs is within 10 watts no significant change would be observed in the RUL. But if the energy consumption is high RUL values may be different. This difference also depends on where in the SOC the actions are performed. If early in the discharge cycle or later in the discharge cycle. As @kmdalal mentioned GSAP battery model does have variance in outputs which are within a low threshold boundary envelope.

Hypothesis 2: the operations of the same kind with different work loads are expected to result in different energy consumption, i.e., reduced RUL, correspondingly. For example, we expect to see the energy cost of delivering a sample from location A to location B is smaller than that of delivering the sample from location A to location C if distance(A, B) < distance(A, C).

This hypothesis is correct. If the same operation with a different workload is performed the amount of energy drawn will be different and the RUL will depend on load profile as mentioned in the question.

kmdalal commented 2 years ago

@oceank , has the information provided so far helped you to progress with your work? Have you tried the noetic-devel branch of ow_simulator? Is any part of your work blocked by the issues you brought up? This information will help us prioritize what we need to develop or document.

oceank commented 2 years ago

@kmdalal and @chetankul , the information provided clears questions and is useful for us in building a machine-learning model to predict energy consumption. Thanks a lot! Let's close this issue.

I tried with the noetic-devel branch of ow_simulator with the most recent commit 0a6f5ba, but I encountered a build error for the package, ow_regolith, which complains the 'Contacts' is not declared inside ow_simulator/ow_regolith/src/ContactSensorPlugin.cpp.

After looking around, I find a way to fix it by adding in ow_simulator/ow_regolith/CMakeList.txt the dependence for the library target, ContactSensorPlugin.

add_dependencies(ContactSensorPlugin
  ${${PROJECT_NAME}_EXPORTED_TARGETS}
  ${catkin_EXPORTED_TARGETS})

But with the successful build of the noetic-devel branch, the issue (#236 ) related to the guarded move still pops out. Having the issue of the guarded move fixed will benefit our testing since it is kind of the first and also important operation in the excavation scenario. One thing related to issue #236 I just noticed is that when sending the same parameters through rqt UI to the guarded move action, it shows success in the rqt while the log of os_simulator shows:

[INFO] [1652841963.264785, 1916525729.540000]: Ground Detected ? True [INFO] [1652841963.266126, 1916525729.540000]: Guarded Move arm activity completed

While driving the guarded move using TestGuardedMoves.plp, the log of os_simulator is as below:

[INFO] [1652842016.680779, 1916525782.835000]: Ground Detected ? True [INFO] [1652842017.309781, 1916525783.530000]: GuardedMove: Failed

The difference between these two tests might be something interesting to look at to fix the issue.

mogumbo commented 2 years ago

add_dependencies(ContactSensorPlugin ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

I was working on the same bug earlier today. We should have a fix in noetic-devel within a couple days.

kmdalal commented 2 years ago

Thanks for the feedback, @oceank . @anjan1984 has fixed the GuardedMove problem and we should have that fix merged soon. The RUL problem is being worked right now. I'll close this issue for now.

mogumbo commented 2 years ago

add_dependencies(ContactSensorPlugin {PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

I was working on the same bug earlier today. We should have a fix in noetic-devel within a couple days.

The missing Contacts.h bug has been fixed: https://github.com/nasa/ow_simulator/pull/242