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

Developments for TMR #41

Merged
merged 100 commits into from
Apr 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
fd09613
Added speech args and setup script
Oscar-gg Apr 6, 2024
65c2763
Task manage package created
afr2903 Apr 7, 2024
14b1985
Task manager server base
afr2903 Apr 7, 2024
938f361
HRI tasks module
afr2903 Apr 7, 2024
0957544
feat: Added manipulation tasks script
afr2903 Apr 9, 2024
fb27a29
fix: Changed class name of hri tasks script
afr2903 Apr 9, 2024
1a2fb5d
feat: Added manipulation tasks object to task manager
afr2903 Apr 9, 2024
74cdc09
feat: Added speak feedback inside task manager
afr2903 Apr 9, 2024
1aba208
fix: Updated bash files without devices
afr2903 Apr 10, 2024
8a6e1a7
Task manager base (#10)
afr2903 Apr 10, 2024
79afe48
feat: Added frida_hri_msgs package
afr2903 Apr 10, 2024
2d4938c
refactor: Updated package of the HRI messages
afr2903 Apr 10, 2024
0ce56d5
style: Renamed package to interfaces
afr2903 Apr 10, 2024
f68bba9
style: Changed package name to interfaces
afr2903 Apr 10, 2024
cb2b086
Manipulation interface with pick and place action file
EmilianoHFlores Apr 10, 2024
e63b489
fix: wrong name in message
afr2903 Apr 10, 2024
14855a3
feat: Added Speak service instead of topic
afr2903 Apr 10, 2024
80847bd
HRI and Manipulation integration messages (#12)
afr2903 Apr 10, 2024
8a2749e
refactor: Adapted functionality for handling subtask managers in a mo…
afr2903 Apr 10, 2024
3328a89
refactor: Included new interfaces libraries in subtask managers
afr2903 Apr 10, 2024
e8dc561
style: Removed comments from build files
afr2903 Apr 11, 2024
137a082
refactor: Manipulation subtask manager updated for the pick and place
afr2903 Apr 11, 2024
d8860bc
perf: Removed unused imports from hri subtask manager
afr2903 Apr 11, 2024
740a72c
feat: Added nav subtask manager using move base commands
afr2903 Apr 11, 2024
8b90316
fix: Updated Dockerfile to include move_base_msgs
afr2903 Apr 11, 2024
08a10e6
Nav move base msgs (#17)
afr2903 Apr 11, 2024
ed85650
docs: Added task manager execution guide
afr2903 Apr 11, 2024
4c22026
GPSR first task manager (#18)
afr2903 Apr 11, 2024
99dc283
Added navigation interfaces
Chapa-1810 Apr 12, 2024
354f75c
Added nav interfaces (#21)
afr2903 Apr 12, 2024
8be9487
feat: Added new nav server to command manager
afr2903 Apr 12, 2024
1c6593d
refactor: Changed pick action server handler
afr2903 Apr 12, 2024
c7eb1ea
fix: Added validation to conversation server
afr2903 Apr 12, 2024
dc55738
style: Removed unused comments to nav interfaces
afr2903 Apr 12, 2024
1ba3870
Added option to send object name to manipulation server
EmilianoHFlores Apr 12, 2024
19e283b
style: Changed task_manager according to pylint
afr2903 Apr 13, 2024
8cd2873
Merge pull request #22 from RoBorregos/9-gpsr-task-manager
afr2903 Apr 13, 2024
e3b3b47
Base task manager (#23)
afr2903 Apr 13, 2024
418efee
Update manipulation interface (#24)
afr2903 Apr 13, 2024
5b1c0a4
feat: Serve brakfast task manager without nav
afr2903 Apr 13, 2024
c6f67d0
refactor: Changed action server handling manipulation
afr2903 Apr 13, 2024
7772201
Serve breakfast task without nav (#25)
afr2903 Apr 13, 2024
99ad70a
Vision interfaces, includes .action for getting bag pointed at.
EmilianoHFlores Apr 14, 2024
0ecaa39
feat: Added view angle srv from nav
afr2903 Apr 14, 2024
cd8e993
feat: Added arm joints server interfaces
afr2903 Apr 14, 2024
9ccfa85
feat: Added person tracking vision interfaces
afr2903 Apr 14, 2024
00d6d21
Integration messages for receptionist (#28)
afr2903 Apr 14, 2024
4b0e7f2
feat: Template for vision tasks
afr2903 Apr 14, 2024
47e899d
Template for task manager
afr2903 Apr 14, 2024
33510b5
feat: Added save name service vision
afr2903 Apr 14, 2024
4739b66
feat: Added move arm joints client
afr2903 Apr 14, 2024
b285d8d
feat: Face following with arm working
afr2903 Apr 14, 2024
ef420a0
feat: Added speak now topic
afr2903 Apr 14, 2024
4db4c0d
feat: Updated receptionist HRI interfaces
afr2903 Apr 14, 2024
44bf636
Updated receptionist HRI interfaces (#29)
afr2903 Apr 14, 2024
e09da1e
feat: Added image analysis features
afr2903 Apr 14, 2024
248d8f2
feat: Conventional task manager logic added
afr2903 Apr 14, 2024
1098cc2
fix: Wrong output definition
afr2903 Apr 14, 2024
0ccb8e2
feat: Added nav to receptionist tasks
afr2903 Apr 14, 2024
e9d0b8d
Merging changes receptionist to breakfast (#30)
afr2903 Apr 15, 2024
d60cf4a
fix: Reduced timeout for action servers init
afr2903 Apr 15, 2024
a874456
feat: Added navigation to Serve breakfast task
afr2903 Apr 15, 2024
82fd5a9
build: Added interfaces packages as submodule
afr2903 Apr 16, 2024
56551ba
build: Updated interfaces inside the submodule repo
afr2903 Apr 16, 2024
0d963dc
Interfaces submodule (#31)
afr2903 Apr 16, 2024
c4c1c4d
feat: Added predefined position call in arm joints server
afr2903 Apr 16, 2024
5f116df
feat: Added check person and find seat services
afr2903 Apr 16, 2024
2ee209f
refactor: Completed and corrected the logic for the whole task
afr2903 Apr 16, 2024
3e2c293
Interfaces (#32)
afr2903 Apr 16, 2024
e226c8a
fix: Updated call to find seat service
afr2903 Apr 16, 2024
c54b5fe
Tested task manager logic, functional task
afr2903 Apr 16, 2024
c6cb1d3
feat: Debug logs for receptionist
afr2903 Apr 17, 2024
052eaf7
Receptionist first functional iteration (#33)
afr2903 Apr 17, 2024
975d560
Receptionist updated submodules paths
afr2903 Apr 17, 2024
01ec4d0
Added validation for find seat wrong response
afr2903 Apr 17, 2024
3ce06ff
perf: Small time optimizations
afr2903 Apr 17, 2024
01b4257
Added audio common messages requirement
afr2903 Apr 17, 2024
f382ca5
Added count topics
afr2903 Apr 17, 2024
20360e6
refactor: Logic adaptation for delivering guest info
afr2903 Apr 19, 2024
73f43a4
test: Succesful, missing nav and time improving
afr2903 Apr 19, 2024
3ffe268
TMR day 1, functional receptionist without nav tests
afr2903 Apr 19, 2024
7ce531b
Merge branch '16-receptionist-task-manager' into develop
afr2903 Apr 19, 2024
f852236
Receptionist task manager branch fixed (#36)
afr2903 Apr 19, 2024
77db94c
added go action
afr2903 Apr 19, 2024
0d916b4
Added nav and manipulation timeout
afr2903 Apr 19, 2024
14a50e5
Breakfast round task manager
afr2903 Apr 19, 2024
cf72b94
fix: Updated speak function
afr2903 Apr 20, 2024
310a80a
feat: Nav servers validation
afr2903 Apr 20, 2024
3156187
feat: Unabstraction go command
afr2903 Apr 20, 2024
c2a580e
progress
afr2903 Apr 20, 2024
4808396
Merge pull request #37 from RoBorregos/35-gpsr-second-iteration
afr2903 Apr 20, 2024
38d4ea5
Merge pull request #38 from RoBorregos/16-receptionist-task-manager
afr2903 Apr 20, 2024
c7db4be
TMR GPSR advancement
afr2903 Apr 24, 2024
14a0b27
Task manager demo TMR
afr2903 Apr 24, 2024
bbf7202
error: Compose tests failing network
afr2903 Apr 25, 2024
9dafae6
Merge branch 'develop' into 14-serve-breakfast-task-manager
afr2903 Apr 25, 2024
8b40ca9
Breakfast task manager (#40)
afr2903 Apr 25, 2024
be42cbf
fix: Submodules target branch
afr2903 Apr 25, 2024
257b7dd
fix: Submodule hri
afr2903 Apr 25, 2024
9bb912a
Merge branch 'main' into develop
afr2903 Apr 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ build
devel
terminator-config
.catkin_workspace
__pycache__
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@
[submodule "navigation"]
path = navigation
url = https://github.com/RoBorregos/home-navigation.git
[submodule "ws/src/interfaces"]
path = ws/src/interfaces
url = https://github.com/RoBorregos/home-interfaces
26 changes: 23 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Current development of [RoBorregos](www.roborregos.com), for the RoboCup @HOME competition, in the Open League Platform (OPL). The goal is to built a service robot capable of accomplishing tasks in domestic applications. The software areas being developed are: Human-Robot Interaction and Cooperation, Object Manipulation, Computer Vision, and Navigation and Mapping.

This repository features the `main_engine` package, in charge of managing Behavior Integration with all the areas.
This repository features the `task_manager` package, in charge of managing Behavior Integration with all the areas.
For more information on the project, check our [documentation](https://docs.rbrgs.com/home/).

## Setup
Expand Down Expand Up @@ -71,6 +71,26 @@ make main.remove
```

Additional commands can be added within the Makefile and the scripts inside the `docker/scripts` folder can help for easier integration and sharing. These include a build script to run the dockerfile and create a new image and a run script to create containers from it. Any additional dependency or system/environment configuration should be added to these scripts.

## Task manager

The `frida_task_manager` is the central package in charge of processing the command information and directing the tasks with its respective area. For code readability, each area development its inside a Python module `area_tasks.py`, and they are called by `task_manager_server.py`, the script were the ROS node is created.

At the top of this mentioned file, there are four constants to enable or disable the tasks, you can change any of these to `False` is for the current test there is no need of an area:
```python
NAV_ENABLED = True
MANIPULATION_ENABLED = True
CONVERSATION_ENABLED = True
VISION_ENABLED = False
```

For executing the `task_manager`, follow the above steps of [Docker setup](#Docker%20Development). Inside the `bash` terminal, setup the ROS network and execute the node:
```bash
export ROS_MASTER_URI=http://192.168.31.23:11311 # IP of the ROS Master (if master is in another machine)
export ROS_IP=192.168.31.97 # IP of own machine
rosrun frida_task_manager task_manager_server.py
```

## Team Members

| Name | Github | Role |
Expand All @@ -84,6 +104,6 @@ Additional commands can be added within the Makefile and the scripts inside the
| Marina Villanueva | [@mariinaVillanueva](https://github.com/mariinaVillanueva) | HRI |
| David Vázquez | [@Deivideich](https://github.com/Deivideich) | Electronics, Navigation & Manipulation |
| Diego Hernández | [@Diego-HC](https://github.com/Diego-HC) | Navigation |
| Franciso Salas | [@Francisco-SP3](http://github.com/Francisco-SP3) | HRI |
| Franciso Salas | [@Francisco-SP3](http://github.com/Francisco-SP3) | HRI, Navigation |
| Leonardo Sánchez | [@LeoLFSH](https://github.com/LeoLFSH) | Mechanics |
| Alex Guerrero | [@]() | Mechanics |
| Alex Guerrero | [@alex-guerreroc](https://github.com/alex-guerreroc) | Mechanics |
39 changes: 39 additions & 0 deletions compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
version: '2.25'

services:
rosmaster:
build:
context: .
dockerfile: docker/Dockerfile.main
container_name: rosmaster
hostname: rosmaster
networks:
- rosdocker
ports:
- "11311:11311"
command: roscore

main:
build:
context: .
dockerfile: docker/Dockerfile.main
container_name: task_manager
hostname: task_manager
volumes:
- ./ws:/workspace
- /tmp/.X11-unix:/tmp/.X11-unix
- /var/run/docker.sock:/var/run/docker.sock
- /dev:/dev
networks:
- rosdocker
privileged: true
devices:
- /dev/video0:/dev/video0
environment:
- "ROS_HOSTNAME=task_manager"
- "ROS_MASTER_URI=http://rosmaster:11311"
- DISPLAY=${DISPLAY}
- LOCAL_USER_ID=id -u ${USER}
- LOCAL_GROUP_ID=id -g ${USER}
- LOCAL_GROUP_NAME=id -gn ${USER}
command: bash -c "source /ws/devel/setup.bash && rosrun frida_task_manager receptionist_task_manager.py"
5 changes: 4 additions & 1 deletion docker/Dockerfile.main
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@ RUN apt-get update -qq && apt-get install -y build-essential \
ffmpeg libsm6 libxext6 autoconf libtool mesa-utils \
terminator nano git wget curl iputils-ping \
libcanberra-gtk-module libcanberra-gtk3-module \
ros-dev-tools
ros-dev-tools \
ros-noetic-move-base-msgs \
ros-noetic-audio-common-msgs


RUN apt-get update && apt-get install -y ros-noetic-rqt ros-noetic-rqt-common-plugins

Expand Down
1 change: 1 addition & 0 deletions docker/scripts/run.bash
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ echo "Building docker image: $IMAGE_NAME"
echo "Container name: $CONTAINER_NAME"
echo "Volumes to mount: $VOLUME_COMMANDS"

#DOCKER_SPEECH_ARGS="-v /tmp/pulseaudio.socket:/tmp/pulseaudio.socket -v /tmp/pulseaudio.client.conf:/etc/pulse/client.conf --device /dev/snd:/dev/snd"
DOCKER_COMMAND="docker run"

xhost +
Expand Down
18 changes: 18 additions & 0 deletions docker/scripts/speech.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Create pulse audio socket to share with docker container

# Ref: https://github.com/mviereck/x11docker/wiki/Container-sound:-ALSA-or-Pulseaudio

# Remove files if they exist
sudo rm -rf /tmp/pulseaudio.socket
sudo rm -rf /tmp/pulseaudio.client.conf

# Create pulseaudio socket.
pactl load-module module-native-protocol-unix socket=/tmp/pulseaudio.socket

# Create pulseaudio clients config.
echo 'default-server = unix:/tmp/pulseaudio.socket
# Prevent a server running in the container
autospawn = yes
daemon-binary = /bin/true
# Prevent the use of shared memory
enable-shm = false' > /tmp/pulseaudio.client.conf
2 changes: 1 addition & 1 deletion hri
Submodule hri updated 343 files
2 changes: 1 addition & 1 deletion manipulation
Submodule manipulation updated 243 files
2 changes: 1 addition & 1 deletion navigation
Submodule navigation updated 434 files
2 changes: 1 addition & 1 deletion vision
Submodule vision updated 105 files
50 changes: 50 additions & 0 deletions ws/src/frida_task_manager/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
cmake_minimum_required(VERSION 3.0.2)
project(frida_task_manager)

find_package(catkin REQUIRED COMPONENTS
actionlib
geometry_msgs
roscpp
rospy
std_msgs
move_base_msgs
)

## Generate messages in the 'msg' folder
# add_message_files(
# FILES
# Message1.msg
# Message2.msg
# )

## Generate services in the 'srv' folder
# add_service_files(
# FILES
# Service1.srv
# Service2.srv
# )

## Generate actions in the 'action' folder
# add_action_files(
# FILES
# Action1.action
# Action2.action
# )

## Generate added messages and services with any dependencies listed here
# generate_messages(
# DEPENDENCIES
# geometry_msgs# std_msgs
# )

catkin_package(
# INCLUDE_DIRS include
# LIBRARIES frida_task_manager
# CATKIN_DEPENDS actionlib geometry_msgs roscpp rospy std_msgs
# DEPENDS system_lib
)

include_directories(
# include
${catkin_INCLUDE_DIRS}
)
37 changes: 37 additions & 0 deletions ws/src/frida_task_manager/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?xml version="1.0"?>
<package format="2">
<name>frida_task_manager</name>
<version>0.0.0</version>
<description>The frida_task_manager package</description>

<maintainer email="[email protected]">rbrgs</maintainer>

<license>GPLv3</license>

<buildtool_depend>catkin</buildtool_depend>
<build_depend>actionlib</build_depend>
<build_depend>geometry_msgs</build_depend>
<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>
<build_depend>move_base_msgs</build_depend>
<build_export_depend>actionlib</build_export_depend>
<build_export_depend>geometry_msgs</build_export_depend>
<build_export_depend>roscpp</build_export_depend>
<build_export_depend>rospy</build_export_depend>
<build_export_depend>std_msgs</build_export_depend>
<build_export_depend>move_base_msgs</build_export_depend>
<exec_depend>actionlib</exec_depend>
<exec_depend>geometry_msgs</exec_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>rospy</exec_depend>
<exec_depend>std_msgs</exec_depend>
<exec_depend>move_base_msgs</exec_depend>


<!-- The export tag contains other, unspecified, tags -->
<export>
<!-- Other tools can request additional information be placed here -->

</export>
</package>
Loading