Ros2 Interfaces - Gin-TrungSon/EllieHumanoid GitHub Wiki

ROS2 Interfaces

EllieEyes

This Module targets the object detection and face recognition functions.

ros2 run ellie_eyes start 

Parameter

object_dectection_threshold = 0.6

# If True: display the predicted frame
display = False 

# Flag for image publishing
# 0 : do not publish
# 1 : publish original frame
# 2 : publish handled frame
# 3 : publish both original and handled frame
flag_publishing = 0

# Update period: New frame would be analyzed in each 2 seconds
period = 2.0

the parameter could be changed via launch file or the console

# listing the custom parameter
ros2 param list 
# change parameter
# ros2 run set <node_name> <param_name> <value>
ros2 param set /ellie_eyes period 2.5 

Topic

# Type: ellie_msgs/msg/DetectedInfo
# publish name and position of detected objects in the frame
/detected_objects
# Type: ellie_msgs/msg/DetectedInfo
# publish name and position of recognized person in the frame
/recognized_person
# Type: sensor_msgs/msg/CompressedImage
# publish the handled image
/handled_image
# Type: sensor_msgs/msg/CompressedImage
# publish the original image
/original_image

EllieVoice

This Module targets the voice assistant functions.

ros2 run ellie_voice start 

Parameter

# minimum audio energy to consider for recording
minimum_energy_threshold = 300
# seconds of non-speaking audio before a phrase is considered complete
pause_threshold = 1.0 
# ellie voice speed
speech_speed = 1.3

Topic

# Type: ellie_msgs/msg/Conversation
# publish listened and response info
/communication

EllieScreens

This Module targets to control two Ellie's monitors.

ros2 run ellie_screens start-head
ros2 run ellie_screens start-brust

Service

--HEAD--
# Type: ellie_msgs/srv/String
# Change current motion of eyes animation
# "leftLooking", "smile", "blink", "rightLooking", "idle"
/change_eyes_motion
# sample usage 
ros2 service call /change_eyes_motion ellie_msgs/srv/String "{request: 'smile'}"

--BRUST--
# Type: ellie_msgs/srv/String
# Open a website
/open_url
# sample usage 
ros2 service call /open_url ellie_msgs/srv/String "{request: 'https://www.google.com/'}"

EllieArm

This Module implements the motion of ellie arms.

ros2 run ellie_arm start

See all behaviors

Service

# Type: ellie_msgs/srv/String
# start the motion recording
/start
# stop the motion recording
/stop
# replay the motion recording
/replay
# resume the motion recording
/resume
# save the motion 
/save

# sample usage
ros2 service call /start ellie_msgs/srv/String "{request: '<name_of_motion>'}"
ros2 service call /stop ellie_msgs/srv/String "{request: ''}"
ros2 service call /resume ellie_msgs/srv/String "{request: ''}"
ros2 service call /replay ellie_msgs/srv/String "{request: ''}"
# If dir = "": save files at the default directory.
ros2 service call /save ellie_msgs/srv/String "{request: '<dir>'}"

# Type: ellie_msgs/srv/String
# Execute the recorded behavior
ros2 service call /execute_behavior ellie_msgs/service/String "{request: 'behave_hello'}"

Action

# Type: ellie_msgs/action/ExecuteBehavior
# Execute the recorded behavior
ros2 action send_goal /execute_behavior ellie_msgs/action/ExecuteBehavior "{name: 'behave_hello'}"

# Type: ellie_msgs/action/JointPosition
# go to joint position
# id : Motor ID
# postiion : joint position in degrees
# duration : duration of the motion Implementation in seconds
ros2 action send_goal /goto_joint_position ellie_msgs/action/JointPosition "{id: '43', position: 10, duration: 3}"

# Type: ellie_msgs/action/ChainPosition
# using IK to move ellie arms to a goal position
# chain_id : 0 : left_arm , 1 : right_arm
# postiion : goal position [x,y,z]
# duration : duration of the motion Implementation in seconds
ros2 action send_goal /goto_position ellie_msgs/action/ChainPosition "{chain_id: 1, position: [-0.10220375, -0.1802107,  0.36749935], duration: 5}"

Ellie

This is a package to run all other ellie packages

ros2 launch ellie ellie.launch.py
⚠️ **GitHub.com Fallback** ⚠️