JobvAlewijk
1c9467d03a
fix: conf includes correct path
...
ref: N25B-270
2025-11-19 17:57:24 +01:00
Storm
9dd39d2048
docs: added auto-generation of documentation
...
ref: N25B-270
2025-11-19 13:49:50 +01:00
Twirre
b05aa5e834
Merge branch 'refactor/config-file' into 'dev'
...
refactor: added config file and moved constants
See merge request ics/sp/2025/n25b/pepperplus-ri!9
2025-11-14 14:15:06 +00:00
Twirre Meulenbelt
c691e279cd
style: two lines between top level declarations
...
ref: N25B-236
2025-11-14 15:13:48 +01:00
Pim Hutting
16b64e41c8
style: applied style suggestions
...
close: N25B-236
2025-11-14 14:12:14 +00:00
Twirre Meulenbelt
03519e2a16
test: fix microphone interactive test
...
This was created with the assumption that all devices were choosable, but now only ones with input channels are.
ref: N25B-119
2025-11-14 13:08:31 +01:00
Pim Hutting
643d7b919c
fix: made all tests pass
...
before some tests failed because of a faulty edit
to microphone util
ref: N25B-236
2025-11-09 16:00:36 +01:00
Pim Hutting
4402b21a73
refactor: added config file and moved constants
...
- Moved hardcoded configuration constants to a dedicated config.py file.
- Created VideoConfig, AudioConfig, MainConfig, and Settings classes in config.py
ref: N25B-236
2025-11-09 15:43:22 +01:00
Pim Hutting
c037eb7ec2
Merge branch 'feat/stream-audio' into 'dev'
...
Implement audio streaming
See merge request ics/sp/2025/n25b/pepperplus-ri!8
2025-11-05 12:08:28 +00:00
Twirre Meulenbelt
8a095323ec
docs: describe extra WSL installation step
...
ref: N25B-119
2025-11-02 16:35:15 +01:00
Twirre Meulenbelt
854a14bf0c
docs: describe --microphone program parameter
...
ref: N25B-119
2025-11-02 16:16:43 +01:00
Twirre Meulenbelt
fab5127cac
feat: add application parameter to choose a custom microphone
...
ref: N25B-119
2025-11-02 16:12:56 +01:00
Twirre Meulenbelt
5912ac606a
docs: add installation instructions for the portaudio dependency
...
ref: N25B-119
2025-11-02 15:01:18 +01:00
Twirre Meulenbelt
9ea446275e
fix: allow speaking text with Unicode characters
...
When speaking, the actuation receiver logs the message to speak. If the message includes Unicode characters, it will now no longer crash.
ref: N25B-119
2025-11-02 14:59:16 +01:00
Twirre Meulenbelt
a6a12a5886
fix: remove unused qi import
...
It had already been made so that the VideoSender does not depend on `qi`, but the import was not yet removed.
ref: N25B-119
2025-11-02 14:58:32 +01:00
Twirre Meulenbelt
230ab5d5cc
test: add case for microphone failure
...
When the microphone fails, it will raise an IOError during the `read`. This is simulated with a new test.
ref: N25B-119
2025-10-22 15:38:30 +02:00
Twirre Meulenbelt
0499cd8a24
feat: send audio
...
AudioSender runs in a separate thread to send audio from the microphone.
ref: N25B-119
2025-10-22 15:10:27 +02:00
Twirre Meulenbelt
f8db719bfa
test: unit test mock PyAudio, integration test use real
...
Make unit tests use a mock version of PyAudio, while making integration tests using the real version. If no real microphone is available, these integration tests are skipped.
ref: N25B-119
2025-10-22 13:27:35 +02:00
Twirre Meulenbelt
1e3e077029
fix: disallow selecting non-microphone audio device
...
Previously any audio device was allowed to be selected as microphone. Now, only ones with at least one input channel can be selected.
ref: N25B-119
2025-10-22 13:24:46 +02:00
Twirre Meulenbelt
0f60f67ab9
feat: add microphone selection utils
...
Providing two functions, one to choose the default microphone, the other to choose a microphone interactively. With tests.
ref: N25B-119
2025-10-22 11:44:51 +02:00
Pim Hutting
4da83a0a7e
Merge branch 'feat/actuation-receiver' into 'dev'
...
Implement negotiation and actuation endpoints
See merge request ics/sp/2025/n25b/pepperplus-ri!5
2025-10-22 08:49:03 +00:00
Twirre Meulenbelt
9d728f78fe
Merge remote-tracking branch 'origin/dev' into feat/actuation-receiver
...
# Conflicts:
# README.md
2025-10-21 13:56:57 +02:00
Twirre Meulenbelt
5631a55697
test: convert to pytest
...
Instead of built-in `unittest`, now use `pytest`. Find versions that work, convert tests.
ref: N25B-168
2025-10-21 13:55:06 +02:00
2584433
5dce0e3438
Merge branch 'fix/githook-mac' into 'dev'
...
fix: fixed githooks
See merge request ics/sp/2025/n25b/pepperplus-ri!7
2025-10-17 14:27:58 +00:00
2584433
670d1f0a6a
fix: fixed githooks
2025-10-17 14:27:58 +00:00
Twirre Meulenbelt
45be0366ba
style: correct and clarify docs and comments
...
ref: N25B-168
2025-10-16 22:03:50 +02:00
Twirre Meulenbelt
4c3aa3a911
feat: adapt actuation receiver to state's qi_session
...
Makes actuation tests pass. In main, the timing of the socket no longer contains the time to receive and send data, but only the processing time of the message handler.
ref: N25B-168
2025-10-16 21:46:46 +02:00
Twirre Meulenbelt
56c804b7eb
test: add unit tests for main and actuation receivers
...
Exhaustive test cases for both classes, with 100% coverage. Adds `mock` dependency. Tests for actuation receiver do not yet pass.
ref: N25B-168
2025-10-16 21:43:24 +02:00
Twirre Meulenbelt
55483808ff
fix: use qi session from state in actuation receiver
...
ref: N25B-168
2025-10-16 18:09:01 +02:00
Twirre Meulenbelt
c10fbc7c90
fix: use different port, fix endpoint name matching
...
ref: N25B-168
2025-10-16 17:37:01 +02:00
Twirre Meulenbelt
23c3379bfb
refactor: use new port negotiation style
...
As changed in the API document, this now uses the new port negotiation style.
ref: N25B-168
2025-10-16 17:22:04 +02:00
Twirre Meulenbelt
e12d88726d
Merge remote-tracking branch 'origin/dev' into feat/actuation-receiver
...
# Conflicts:
# src/robot_interface/endpoints/socket_base.py
2025-10-16 17:01:16 +02:00
Twirre
785756683e
Merge branch 'feat/ri-receive-video' into 'dev'
...
Implemented receiving video in RI from robot
See merge request ics/sp/2025/n25b/pepperplus-ri!4
2025-10-16 14:41:02 +00:00
Luijkx,S.O.H. (Storm)
0b55d5c221
style: fixed docstrings
...
close: N25B-171
2025-10-16 14:06:31 +00:00
Twirre Meulenbelt
308a19bff2
fix: correct negotiate endpoint name
...
Was previously "negotiation/", but the API document described it as "negotiate/". It is now "negotiate/" in the implementation as well.
ref: N25B-168
2025-10-16 15:02:01 +02:00
Storm
0c5b47ae16
refactor: removed hardcoded IP and port and moved video functions from main to the VideoSender class
...
ref: N25B-171
2025-10-16 14:57:53 +02:00
Storm
a408fafc7c
docs: minor type correction in documentation start_video_rcv and video_rcv_loop
2025-10-15 17:55:29 +02:00
Storm
e3663e1327
feat: implemented receiving video image from robot
...
The functionality is implemented in main.py in the functions start_video_rcv and video_rcv_loop.
close: N25B-171
2025-10-15 17:52:59 +02:00
Twirre Meulenbelt
df985a8cbc
fix: log speech commands even when Pepper SDK is not connected
...
Previously, the `_handle_speech` function had an early return when no Pepper session was available, causing incoming messages not to get logged. Now messages are logged even when there is no session with the Pepper SDK.
ref: N25B-168
2025-10-15 14:58:31 +02:00
Twirre Meulenbelt
ff6abbfea1
feat: implement actuation receiver
...
The ActuationReceiver connects to the Pepper robot using the Qi library. The endpoint is automatically negotiated.
ref: N25B-168
2025-10-13 22:08:43 +02:00
Twirre Meulenbelt
c6916470e9
feat: implement negotiation
...
By implementing SocketBase and adding the socket to the state, the negotiation will automatically give the right endpoints.
ref: N25B-168
2025-10-13 22:06:27 +02:00
Luijkx,S.O.H. (Storm)
828871a2ad
Merge branch 'feat/comm-standardization' into 'dev'
...
Implementation of standardized CB<->RI communication API
See merge request ics/sp/2025/n25b/pepperplus-ri!3
2025-10-09 16:01:30 +00:00
Twirre Meulenbelt
7cfa6b44e8
chore: add usage instructions
...
Describes how to run the main program.
ref: N25B-168
2025-10-09 17:36:25 +02:00
Twirre Meulenbelt
c95d4abd77
chore: re-add the installation instructions
...
These installation instructions come from the feat/cb2ri-communication branch which has been replaced by this branch.
ref: N25B-168
2025-10-09 17:28:03 +02:00
Twirre Meulenbelt
e9c6b918e0
refactor: rename EndpointBase to SocketBase
...
Because 'endpoint' is also used in the messages, the name 'socket' is more descriptive.
ref: N25B-168
2025-10-09 16:24:31 +02:00
Twirre Meulenbelt
23805812d5
feat: abstract base classes for endpoints
...
Introduces EndpointBase and ReceiverBase abstract base classes. Implements a ReceiverBase with the MainReceiver.
ref: N25B-168
2025-10-09 16:04:18 +02:00
Twirre Meulenbelt
c4530f0c3a
feat: basic implementation of standardized CB2RI communication API
...
Based on the N25B-A-14 article, this is a stub implementation of the RI2CB communication API. It implements the ping endpoint and provides a stub for the negotiation endpoint.
ref: N25B-168
2025-10-09 13:54:34 +02:00
2584433
bc26c76437
Merge branch 'chore/correct-branch-name-regex' into 'dev'
...
Correct branch hook regex
See merge request ics/sp/2025/n25b/pepperplus-ri!2
2025-10-08 15:06:00 +00:00
Twirre Meulenbelt
99776480e8
chore: correct commit hook regex
...
Previously all branch names had to have two dashes. Now it can have one to six words.
ref: N25B-89
2025-10-08 16:25:51 +02:00
2584433
b7c6269435
Merge branch 'feat/git-automatic-hooks' into 'dev'
...
Added githooks
See merge request ics/sp/2025/n25b/pepperplus-ri!1
2025-10-07 14:55:04 +00:00