tue-robotics / tue_robocup

RoboCup challenge implementations
https://github.com/orgs/tue-robotics/projects/2
42 stars 12 forks source link

[EPIC] Cleanup robot_skills #150

Closed Rayman closed 7 years ago

Rayman commented 7 years ago

arm

base

ears

head

lights

speech

torso

world model

LoyVanBeek commented 7 years ago

Wat is to be done with the items in this list? These are the only methods needed?

Rayman commented 7 years ago

This is a list of everything that should be supported. It seems that world_model.py takes the most time

LoyVanBeek commented 7 years ago

These are the states in use that I can find by ack-grepping in all the challenges, found via

roscd challenge_{eegpsr,gpsr,navigation,open,person_recognition,restaurant,rips,speech_recognition,manipulation}
ack-grep --python ".states." --noheading -h >> ~/states.txt

The result:

    • states.AskContinue
    • states.CancelHead
    • states.FollowOperator
    • states.Grab
    • states.GrabMachineWithoutBase
    • states.HandoverToHuman
    • states.HearOptions
    • states.Initialize
    • states.LearnPerson
    • states.LookAtArea
    • states.LookAtEntity
    • states.NavigateToObserve
    • states.NavigateToSymbolic
    • states.NavigateToWaypoint
    • states.NavigateWithConstraints
    • states.OpenDoorByPushing
    • states.ResetArms
    • states.ResetArmsSpindle
    • states.ResetArmsSpindleHead
    • states.ResetED
    • states.Say
    • states.SetInitialPose
    • states.StartChallengeRobust
    • states.WaitForDoorOpen
    • states.WaitForTrigger
    • states.WaitTime
LoyVanBeek commented 7 years ago

The states implemented are all below. The ones checked can be removed.

reinzor commented 7 years ago

Maybe an option to automatically wrap all skills in a SmachState so we do not have to maintain those; however, this requires some standardization of the skills.

LoyVanBeek commented 7 years ago

That would indeed help, but adds more magic. Another improvement: 1 generic ResetPart-state, that you pass a list of robot-parts on which .reset will be called. That requires each robot-part to have a .reset()-method.

LoyVanBeek commented 7 years ago

Also: what should be the signature of methods that accept e.g. a Point, PointStamped, PoseStamped etc as an argument. Currently, we have a lot of functions that take x,y,z,rx,ry,rz and a frame_id as input. Makes for handy introspection/completion but it must be unpacked from the robot_smach_states all the time. Of course, we can also have multiple methods that have different signatures that wraps each other.

But which is the way to go?

reinzor commented 7 years ago

native python types or types we can calculate with; no messages :) . but we can discuss this.

-Rein

On Wed, Dec 14, 2016 at 9:57 AM, Loy notifications@github.com wrote:

Also: what should be the signature of methods that accept e.g. a Point, PointStamped, PoseStamped etc as an argument. Currently, we have a lot of functions that take x,y,z,rx,ry,rz and a frame_id as input. Makes for handy introspection/completion but it must be unpacked from the robot_smach_states all the time. Of course, we can also have multiple methods that have different signatures that wraps each other.

But which is the way to go?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/tue-robotics/tue_robocup/issues/150#issuecomment-266978930, or mute the thread https://github.com/notifications/unsubscribe-auth/AD-4l_2GB4n8CB0PhgnY0K5Syyq_BNTpks5rH69-gaJpZM4LJqqP .

LoyVanBeek commented 7 years ago

For this, we could use http://www.orocos.org/kdl/usermanual/geometric-primitives, like in https://github.com/tue-robotics/robot_smach_states/blob/f1cd64daeced9371c44fa0e5cf57b1bf2237e72f/src/robot_smach_states/util/geometry_helpers.py

But ED also returns ed.msg.EntityInfo objects, which would then also need to be wrapped in order to be able to calculate with their poses etc.

MatthijsBurgh commented 7 years ago

@LoyVanBeek Status?

LoyVanBeek commented 7 years ago

No work yet; I assigned this to myself so I won't forget.