Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Receptionist] updates for the challenge #930

Merged
merged 19 commits into from
Jan 20, 2025
Merged

Conversation

Julislz
Copy link
Contributor

@Julislz Julislz commented Dec 17, 2024

Proposed Solution for issue #916

with @sunava
Changes proposed in this pull request:

  • the robot shows both guests where the drinks are and detects if their favorite drink is available
  • There are passive guests in the background
  • Points for finding one hobby/interest of each guest
  • At the end, only the guests get introduced
  • optional goal 'describing the first guest' changes. describe first guest to second guest before reaching the living room (updated 10.01)
  • guest paces from left to right during conversation with robot (update 10.01)
  • Added optional goal picking up a drink (updated 10.01)
  • Added optional goal for finding similar interest between guests or guest and host
  • added a procedural guide for quicker and easier understanding of the challenge
  • Changed scoresheet accordingly

Updated procedure summarized

Both guests arrive separately. The robot either opens the door for the guest or
waits for them at the starting point. It greets the guest and asks for their name.
The robot then guides the guest to the beverage area, where it asks for their
favorite drink and checks if the drink is available on the table. The robot gathers
one interest of the guest at a freely chosen moment.
After showing the guest the beverage area, the robot escorts them to the living
room and offers a free seat. Once both guests are seated, the robot introduces
them to each other.

Other comments

  • I would suggest making it an obligation to log what the robot is saying.
    This makes the process easier for the referee in a noisy arena to check the output quickly after the challenge

  • The passive guests and the host could be spectators if it is not too much effort.

@sunava sunava requested review from hawkina, sunava and johaq December 17, 2024 12:35
@LeroyR
Copy link
Member

LeroyR commented Jan 6, 2025

Why do we want to introduce grasping here?

We should not remove person recognition (e.g. describing the guest) for another recognize object.
There are other stage one tasks to show object recognition.

The gaze is currently very simple (straight during interaction, down during navigation). I also dont want any more of "please step to my left so i can introduce you" for introduction.

The improvement should be making sure the recognition/tracking of humans really works e.g. follow the head while the person moves. Ideas:

  • the person simply paces from left to right side of robot during introduction
  • another guest blocks the gaze direction so the robot has to adjust its position to see the guest
  • person hides behind a lamp
  • a conversation with two people at the same time -> look at the speaking person

We will not collect any logs. Robot should speak loud and repeat on request.

Robocup wants to move away from 'state machines' in tasks, the procedure makes the task too static. e.g. why smalltalk at specific points.

@SparkRibeiro21
Copy link
Contributor

I really like this update to receptionist!
Just a couple of things:

- the robot shows both guests where the drinks are and detects if their favorite drink is available
I really like this, it allows teams to show object detection! i would not add bonus points for picking up the object. There is already picking objects in a lot of other tasks. no need for this also in receptionist.

I think describing the first guest to the second guest is weird because if I look to the second guest and point to the first guest, why do i need to describe it?

I think with the new additions asking for: "one or two interests and a profession to ask about" seems a bit much, let's just ask for one hobby for now, if it goes well than we can add more next year.

+ 50 pts identify favorite drink
and add a new one +"50 show where drink is" similarly to what is done in DEM where the robot has to point or show in the face where the drink is. As a guest if a robot tells me there is a drink in a cabinet, I do not want to know there is a drink and still have to look for it, i want the robot to tell me where the drink is.

The door opening points are VERY misadjusted. Opening the door is much more complex than opening the cabinet door in storing groceries, and teams get 200 points for the cabinet door and 100 points for the entrance door. In the entrance door you have to identify the handle, pull down the handle, pull the door, ... whereas the cabinet door is much simpler. I believe no team even tries to attempt this (even though a couple of teams showed in their qualification videos from last year they could open doors), means that the number of points doesn't compensate the risk that is attempting to open the door.

personally not a fan of the small talk...

The way you are thinking, we don't have to do any introductions to the host (we don't even have to detect or know who the host is) and just have to introduce the first and second guest right?

I don't also agree with the speaker log... the robots must talk clearly, loudly and find solutions to have their messages understood like show in a tablet...

I think the people talking should always be making some kind of movement... robots should only get points for looking at the person if it is dynamically real time adjust to the person whom it is talking to. I believe one small step to the left and the right should be enough to check this... we often see robots looking to the person coordinates and if the robot moves, it still looks to the place where the person was.

"
_+ 50 pts look at person talking

  • 75 pts introduce both guests
  • 50 pts look at the person talking_
    "
    you have +50 looking at the person talking twice

@Julislz
Copy link
Contributor Author

Julislz commented Jan 7, 2025

@LeroyR

Firstly thanks for the feedback,

  • we can absolutely remove the optional goal of grasping

"We should not remove person recognition (e.g. describing the guest) for another recognize object. There are other stage one tasks to show object recognition."
i removed that point because it seemed very unnatural to just state perceived attributes. however we can keep that goal.
it surely is important for a human service robot to detect attributes of humans

"the person simply paces from left to right side of robot during introduction"
The suggestion is great and i would add that. I actually thought that this was already part of the challenge. But you are right it should be described in the text.

" another guest blocks the gaze direction so the robot has to adjust its position to see the guest"
another person blocking the guest is pretty difficult to implement because usually the robot and guest are standing very close
during the introduction and face each other directly. Additionally this scenario rarely happens in real life. when you
stand close to another person and talk to them other people usually move around you because it is very rude to go in between.
But that we could add. That behind the guest other people move around. to see if the robot loses focus because of the background humans.

" person hides behind a lamp"
What do you mean with hide behind a lamp? does that mean the robot has to find the guest that it should guide through
the arena?

"a conversation with two people at the same time -> look at the speaking person"
Interesting idea. that could be included when both guests are sitting in the living room.
However and this includes your last point with not collecting any logs: the Robocup arena is to noisy because it is a big event.
in Eindhoven there was a band playing during the challenges. Therefore it will never simulate a real household environment which is fine but we need to adjust the challenges and ratings accordingly.
That is the reason why i would log conversation and why i think it is difficult for the robot to detect who is speaking.

@Julislz
Copy link
Contributor Author

Julislz commented Jan 7, 2025

@SparkRibeiro21
Thanks for the feedback,

"Let's just ask for one hobby for now, if it goes well than we can add more next year"
sounds great!

"I think describing the first guest to the second guest is weird because if I look to the second guest and point to the first guest, why do i need to describe it?"
I actually removed that already or did you answer @LeroyR with this?

"i want the robot to tell me where the drink is."
good idea i will add that.

"The door opening points are VERY misadjusted"
i agree that door opening is much more difficult than opening a cabinet door. I did not raise the score because
i also read some backlash about raising the points because it is a recurring task. I would also raise the points
and maybe lower the score for cabinet opening. However i think some more opinions about that from other Members would be great to get a better view on this issue.

" The way you are thinking, we don't have to do any introductions to the host (we don't even have to detect or know who the host is) and just have to introduce the first and second guest right? "
well you have to detect the host to find a free spot in the living room. And if one of the guests interests
match with the hosts interests the robot should look at the host and guest while telling the similarity.

" I don't also agree with the speaker log... the robots must talk clearly, loudly and find solutions to have their messages understood like show in a tablet..."
i have answered that issue earlier. but in addition to that answer: To log what the robot says was also meant as a help for the referee. Because as a referee you need to keep many things in mind and sometimes you miss details. With logs you can check later.

@akinobu1998
Copy link
Member

For the speaker log, I agree with speaking louder (External speaker is allowed) and encourage displaying text at the same time, however disagree with the log file to check it later. Creating the log might cause cheating. If the guest does not understand, the robot should repeat to continue the conversation.
In the current DEM for manipulation, the robot has to show the recognition result while the robot is doing the task, rather than show the result later. I think the same idea should be applied to audio too.

@akinobu1998
Copy link
Member

For door opening, in my opinion, 200 bonus is big enough so we might consider reducing the SG bonus.

@akinobu1998
Copy link
Member

For

Before reaching the living room, the robot gathers one additional piece of information about the guest at a freely chosen moment.

Regarding @LeroyR's comment,

why smalltalk at specific points.

I like to propose the idea that the guest to speak about them in their own time and way.

The guest might talk about them at their own time, or the robot might ask about the guest if it is required.

I think a kind of question generator will be helpful for the guest, now the guest has to memorize their name, hobby, and profession and it might confusing without a memo or something.

Do we provide a list of names, professions, and hobbies? I think it is not necessary.

@SparkRibeiro21
Copy link
Contributor

I think you should standardize the usage of the terms: "hobby" and "interest" as it may be confusing, I personally think interest is the way to go.

I think this (\scoreitem[2]{10}{tell position of favorite drink}) has to be more significant: it is 3 times less than to look in the direction of navigation which is basically just moving the neck forward...

I have to insist that opening the door is too undervalued, maybe put is 125. It is just disappointing that no teams has ever opened a door and a significant number of teams show that they can do it in their qualification videos...

Apart from these I think everything is OK

@SparkRibeiro21
Copy link
Contributor

Just some small details I found necessary to clarify:

  1. Here is the only time you talk about asking for the job, i think it is better to keep it standardized: calling it interests.

    \item \textbf{Smalltalk} ask each guest after his job or interests during guidance or at the drinking area

    Would change to:

    \item \textbf{Smalltalk} ask each guest for one interest during guidance or at the drinking area

  2. Here, why does it says snacks area? It should only be beverages area as the robots will only provide drinks.

    \item \textbf{Arriving Guests:} Both guests have a name, favorite drink, and a interest. An arriving guest will either step in front of the robot or wait behind the door to step in if the door is closed. Guests have to be guided to the beverage and snack area and then the living room where the robot will introduce the guests to each other. Each of the guest will arrive separately.

  3. I think it needs to be clarified in the tasks/Receptionist.tex file, that the list of names and drinks is given on setup days however there is no list of interests. For old teams this is common knowledge but for new teams it helps that this is stated in the rulebook.

  4. These penalty items should be under \scoreheading{Penalties} and not under \scoreheading{Bonus Rewards}:

    \penaltyitem[4]{30}{Describe the first guest to the second guest (per incorrect attribute)}
    \penaltyitem[1]{30}{wrongly stating a similarity}

(I would do these changes myself and spare some work to @Julislz as these are small and quick fixes. However I believe this is being done in a forked repo and not in a branch of the original repo and this way we do not have permissions to make such edits)

@SparkRibeiro21 SparkRibeiro21 self-requested a review January 13, 2025 10:56
SparkRibeiro21
SparkRibeiro21 previously approved these changes Jan 13, 2025
@SparkRibeiro21
Copy link
Contributor

@Julislz we just finished the TC meeting and this PR will be approved.
The only thing missing are some small clarifications regarding the looking at people:

\scoreitem[1]{75}{Look at the person talking or talked about}

  1. Why did you add the "or talked about". The robot should always be looking at the person he is talking to.
  2. should be [2] in scoreitem, not [1] right? as the robot will have to talk with two guests.

And we have also decided that the looking at the person talking should never be a static looking at the detection coordinate, but a dynamic looking. So if the person moves a bit to the sides the robot should move its continuously move its neck to face the person. So this:

\item \textbf{Looking at person/direction of navigation:} During verbal interactions and descriptions of people, robot 
looks at the conversational partner. During navigation robot looks in the direction where it is going. Persistently gazing towards unrelated person or incorrect direction while moving during the task deducts points. 

has to be changed to:

\item \textbf{Looking at person:} During verbal interactions and descriptions of people, robot 
looks at the conversational partner. The conversational partner will make small movements to each side to confirm the robot is dynamically looking at the person. Points for looking at the person talking, will only be awarded if the robot proves to continuously look at the moving person. 
\item \textbf{Looking at direction of navigation:} During navigation robot looks in the direction where it is going. Persistently gazing towards unrelated person or incorrect direction while moving during the task deducts points. 

(i separated the two "lookings". This way is easier to understand)

Once this is fixed, the PR is ready for approval.

@Julislz
Copy link
Contributor Author

Julislz commented Jan 13, 2025

great to hear :)

1. Why did you add the "or talked about". The robot should always be looking at the person he is talking to.
This is for introducing the first and second guest to each other. so when stating the name,drink and interest of the first guest the robot should look at the first guest. But i get why this is confusing, so i will remove it

2. should be [2] in scoreitem, not [1] right? as the robot will have to talk with two guests.
yes

And we have also decided that the looking at the person talking should never be a static looking at the detection coordinate, but a dynamic looking. So if the person moves a bit to the sides the robot should move its continuously move its neck to face the person
i like that change

SparkRibeiro21
SparkRibeiro21 previously approved these changes Jan 13, 2025
Copy link
Member

@LeroyR LeroyR left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still do not see why we want to add object recognition to this task. But i will approve the beverage area part if no one else voices any concerns.

We may need more clarification regarding:

  • what if the robot ask interest of one of the passive guest and introduces them. (penalty or extra points or just nothing)
  • Do passive guests answer questions?
  • How to identify the host (scoring only for introducing guest to host not for passive person)

The task now feels more statemachine than before e.g. do this then this then that, maybe @moriarty @justinhart can comment if this is OK (as we had the goal of having less statemachine last year)

I like forcing the guests to be more active (e.g. evading the gaze, could add background? conversations) The Guest should definitely move after being seated so the robot has to re identify the guest later.

This adds a bunch of stuff (2nd navigation goal, recognition, more dialog) is the time limit still ok?

tasks/Receptionist.tex Outdated Show resolved Hide resolved
scoresheets/Receptionist.tex Outdated Show resolved Hide resolved
scoresheets/Receptionist.tex Outdated Show resolved Hide resolved
scoresheets/Receptionist.tex Outdated Show resolved Hide resolved
tasks/Receptionist.tex Outdated Show resolved Hide resolved
tasks/Receptionist.tex Show resolved Hide resolved
tasks/Receptionist.tex Outdated Show resolved Hide resolved
johaq
johaq previously requested changes Jan 14, 2025
tasks/Receptionist.tex Outdated Show resolved Hide resolved
\begin{itemize}
\item \textbf{Introductions:} When introducing guests, the robot must clearly identify the person being introduced and state their name and favorite drink. Introducing two people means to introduce them to each other.
\item \textbf{Greeting guests:} the person paces a little to the left and right during conversation with the robot. other people might appear in the background
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems very weird. And kinda difficult for volunteers who might already have trouble interacting with the robot. In my experience proper tracking can usually be checked here regardless because people will turn to the referee, step towards the robot, bend down to the robot etc.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

was that also discussed in the TC meeting? Cause i was specifically told that this should be added.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was specifically requested above in order to make sure the robot keeps eye-contact. It might be enough if one person does this just to see that the robot is capable of keeping tracking on them. If we hand out post-its with Name, Drink, Interest, it should be fine I think.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what we talked in the TC meeting is that is must be added one way or the other, a lot of robots don't do this and many times robots are talking to a person, the person moves aw bit and the robot keeps looking to an empty space. This just seems very weird. As @hawkina said, doing this with one person is enough to understand if the robot does dynamic tracking or not.

scoresheets/Receptionist.tex Outdated Show resolved Hide resolved
scoresheets/Receptionist.tex Outdated Show resolved Hide resolved
@hawkina
Copy link
Contributor

hawkina commented Jan 20, 2025

I think it overall looks fine.

  • I'd probably like to raise the points for opening the door even more, but have to compare to other challenges so that they can be raised equally across all tasks.
  • Not sore how we can avoid the "state machine" issue without introducing things like: "the robot can be interrupted during navigation by another person stepping in front of it and asking a question like: "is there still cola available?" or "Did Peter arrive yet?" - this might make it a bit too difficult though. Maybe this could be done as a bonus challenge once the robot completes everything else, but then again, time limit is probably an issue.

hawkina
hawkina previously approved these changes Jan 20, 2025
@LeroyR
Copy link
Member

LeroyR commented Jan 20, 2025

  • Not sore how we can avoid the "state machine" issue without introducing things like: "the robot can be interrupted during navigation by another person stepping in front of it and asking a question like: "is there still cola available?" or "Did Peter arrive yet?" - this might make it a bit too difficult though. Maybe this could be done as a bonus challenge once the robot completes everything else, but then again, time limit is probably an issue.

E.g keeping the current tasks, you would remove the descriptive procedure and design everything more open ended where guests can arrive any time with smalltalk, drinks and seating somehow happening dynamically.

I think it is more of an design issue instead of patching on interruptions or something.

We can not really change it this close to the draft release anyway but we already deferred #805 last year. We just kinda forgot?. This issues comes from not having a roadmap 😅

@hawkina
Copy link
Contributor

hawkina commented Jan 20, 2025

  • Not sore how we can avoid the "state machine" issue without introducing things like: "the robot can be interrupted during navigation by another person stepping in front of it and asking a question like: "is there still cola available?" or "Did Peter arrive yet?" - this might make it a bit too difficult though. Maybe this could be done as a bonus challenge once the robot completes everything else, but then again, time limit is probably an issue.

E.g keeping the current tasks, you would remove the descriptive procedure and design everything more open ended where guests can arrive any time with smalltalk, drinks and seating somehow happening dynamically.

I guess so. It's just difficult to find a balance between "describing the expectations enough" and it not turn out to be a state machine since one has described the expected process in so much detail....
I think in my head I am merging Receptionist with Party Host 🤔

I think it is more of an design issue instead of patching on interruptions or something.

We can not really change it this close to the draft release anyway but we already deferred #805 last year. We just kinda forgot?. This issues comes from not having a roadmap 😅

Yeah I also don't think we should change it now.

Copy link
Member

@LeroyR LeroyR left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capitalize and stuff

tasks/Receptionist.tex Outdated Show resolved Hide resolved
scoresheets/Receptionist.tex Outdated Show resolved Hide resolved
scoresheets/Receptionist.tex Outdated Show resolved Hide resolved
scoresheets/Receptionist.tex Outdated Show resolved Hide resolved
scoresheets/Receptionist.tex Outdated Show resolved Hide resolved
tasks/Receptionist.tex Outdated Show resolved Hide resolved
tasks/Receptionist.tex Outdated Show resolved Hide resolved
tasks/Receptionist.tex Outdated Show resolved Hide resolved
tasks/Receptionist.tex Outdated Show resolved Hide resolved
tasks/Receptionist.tex Outdated Show resolved Hide resolved
@LeroyR LeroyR dismissed johaq’s stale review January 20, 2025 12:14

dismissed!

@LeroyR LeroyR merged commit db1e6c7 into RoboCupAtHome:master Jan 20, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants