-
Notifications
You must be signed in to change notification settings - Fork 22
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
Feat/low speed data transmission #58
base: main
Are you sure you want to change the base?
Conversation
I haven't had a chance to compile and test the new changes since the original PR while I'm out of the office for the week. |
please if you want us to take a look, ensure there are no conflicts before asking for review |
Sorry about that @vicmassy, conflicts should be sorted now. |
@Yamboy1 @biancabnd Is it possible to merge this in? I'm interested in this feature as well. Thanks! |
I believe I've done all I need to, just waiting on a response from the developers |
I believe there are still merge conflicts to be resolved. |
Oh huh, I thought I had fixed those, I'll have a look tomorrow, thanks @yanxke |
So it turns out there have been a lot of changes since my original pull request, so this might take me a bit more time to sort out than I'd originally expected |
Basic Info
Description of contribution in a few bullet points
Adds a new module for communication via the low speed data channel from an MSDK based app to the drone. Received information is published by the "psdk_ros2/low_speed_transmission_data" topic as a string.
Also adds .vscode to the gitignore, and removes a couple of instances of trailing whitespace.
Motivation and Context
We would like to have communication between the drone and the RC remote via the PSDK apis, as in the past we have only been using rosbridge (ROS1). See my other issue regarding high speed data channel: #39. We were unable to get high speed transmission working, but we have been able to get the low speed transmission working, so we're making this PR to upstream it.
For context see:
How Has This Been Tested?
We have tested the changes on a Matrice 350 RTK, connected to a DJI RC Plus. The onboard computer is an Intel NUC.
On the nuc, we ran
ros2 launch psdk_wrapper wrapper.launch.py
to start the wrapper. In a second terminal, we hadros2 topic echo /wrapper/psdk_ros2/low_speed_transmission_data
running to view the data.On the RC, we had the MSDK sample application installed (https://github.com/dji-sdk/Mobile-SDK-Android-V5). In the app we selected "Testing Tools > PSDK Test > Open Payload Data Page > External". We then entered text into the field and on pressing send, the text should appear in the
rostopic echo
command running on the NUC.Additionally, we also had to comment out
init_camera_manager()
,init_gimbal_manager()
andinit_liveview()
from https://github.com/Yamboy1/psdk_ros2/blob/afd4ff1061fb8b29cd269ceab7b6588d7175925f/psdk_wrapper/src/psdk_wrapper.cpp#L85, as we do not currently have a gimbal or camera plugged into a payload port, but this should not make a difference in this case.Description of documentation updates required from your changes
We've just added a new publisher, so this should be the only documentation that needs to be added.
Future work that may be required in bullet points
There might be some work required to add support for non text (char*) encoded data sent over the channel.
Additionally there's a small hack (with a comment) that seemed necessary to get around an extra byte at the start of the data. I may have gone about fixing that the wrong way so please have a look at it.
Screenshots (if appropriate):