Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse
Brand Logo

ModalAI Forum

Kyungtaek Oh 0K

Kyungtaek Oh 0

@Kyungtaek Oh 0
Unfollow Follow
About
Posts
7
Topics
2
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Setting up micrortps bridge on VOXL2/Sentinel
    Kyungtaek Oh 0K Kyungtaek Oh 0

    Hi @Eric-Katzfey,
    We had some finds.
    Here's what we've understood so far:

    1. Two things are needed to make a voxl-px4 package using px4-firmware(voxl-dev)
      • modalai_rb5-flight_default
      • modalai_rb5-flight_qurt
    2. And each one needs the following different crsf_parse function
      • modalai_rb5-flight_default needs crsf_parse(6 arguments)
      • modalai_rb5-flight_qrut needs crsf_parse(8 arguments)
    3. Each px4-firmware has a different version of crsf_parse
      • Branch: main has crsf_parse(6 arguments)
      • Branch: voxl-dev has crsf_parse(8 arguments)

    Our goal was to build the voxl-px4 included MicroRTPS_bridge in px4-firmware(branch: voxl-dev), so we added the following two functions to crsf.cpp in px4-firmware.

    • bool crsf_parse_buffer(uint16_t *values, uint16_t *num_values, uint16_t max_channels)
      • as crsf_parse_buffer_6
    • bool crsf_parse(const uint64_t now, const uint8_t *frame, unsigned len, uint16_t *values, uint16_t *num_values, uint16_t max_channels)
      • as crsf_parse_6

    Then the build progressed to 89% and stopped with an error below.
    ERROR #1

    [ 89%] Building CXX object src/systemcmds/pwm/CMakeFiles/systemcmds__pwm.dir/pwm.cpp.o
    /usr/local/workspace/px4-firmware/src/systemcmds/pwm/pwm.cpp: In function 'int pwm_main(int, char**)':
    /usr/local/workspace/px4-firmware/src/systemcmds/pwm/pwm.cpp:810:3: error: 'qurt_loop' was not declared in this scope
      810 |   qurt_loop = 320;
          |   ^~~~~~~~~
    compilation terminated due to -Wfatal-errors.
    make[3]: *** [src/systemcmds/pwm/CMakeFiles/systemcmds__pwm.dir/build.make:63: src/systemcmds/pwm/CMakeFiles/systemcmds__pwm.dir/pwm.cpp.o] Error 1
    make[3]: Leaving directory '/usr/local/workspace/px4-firmware/build/modalai_rb5-flight_default'
    make[2]: *** [CMakeFiles/Makefile2:12085: src/systemcmds/pwm/CMakeFiles/systemcmds__pwm.dir/all] Error 2
    make[2]: Leaving directory '/usr/local/workspace/px4-firmware/build/modalai_rb5-flight_default'
    make[1]: *** [Makefile:152: all] Error 2
    make[1]: Leaving directory '/usr/local/workspace/px4-firmware/build/modalai_rb5-flight_default'
    make: *** [Makefile:222: modalai_rb5-flight_default] Error 2
    

    We changed the int qurt_loop variable's scope to like this.

    • Before
      32b86fac-1631-4048-b2ce-a29792ee533b-Untitled.png
    • After
      f6a25f03-3c63-4f66-92e4-b3181adacef6-Untitled (1).png

    After that, an error occurred for the label for jump, and it was resolved by changing it as follows.
    ERROR #2

    [ 89%] Building CXX object src/systemcmds/pwm/CMakeFiles/systemcmds__pwm.dir/pwm.cpp.o
    /usr/local/workspace/px4-firmware/src/systemcmds/pwm/pwm.cpp: In function 'int pwm_main(int, char**)':
    /usr/local/workspace/px4-firmware/src/systemcmds/pwm/pwm.cpp:864:1: error: jump to label 'err_out_no_test_2'
      864 | err_out_no_test_2:
          | ^~~~~~~~~~~~~~~~~
    compilation terminated due to -Wfatal-errors.
    make[3]: *** [src/systemcmds/pwm/CMakeFiles/systemcmds__pwm.dir/build.make:63: src/systemcmds/pwm/CMakeFiles/systemcmds__pwm.dir/pwm.cpp.o] Error 1
    make[3]: Leaving directory '/usr/local/workspace/px4-firmware/build/modalai_rb5-flight_default'
    make[2]: *** [CMakeFiles/Makefile2:12085: src/systemcmds/pwm/CMakeFiles/systemcmds__pwm.dir/all] Error 2
    make[2]: Leaving directory '/usr/local/workspace/px4-firmware/build/modalai_rb5-flight_default'
    make[1]: *** [Makefile:152: all] Error 2
    make[1]: Leaving directory '/usr/local/workspace/px4-firmware/build/modalai_rb5-flight_default'
    

    So we changed the goto command to "return 0" instead of using err_out_no_test_2 label.

    After that, the build.sh worked and the make_packages.sh also worked.(in the voxl-px4)
    However, it did not run with the following error on voxl2.
    ERROR #3

    voxl2:~$ voxl-px4
    Found DSP signature file
    /usr/bin/voxl-px4: line 42: /usr/bin/px4: cannot execute binary file: Exec format error
    

    Based on the above results, we think the voxl-px4 with microRTPS_bridge can be built by changing modalai_rb5-flight_default and modalai_rb5-flight_qurt to use the same crsf_parse.

    So if you think our thinking is correct, can you give us some guidance?
    If it is not possible in px4-firmware(branch: voxl-dev), can we build voxl-px4(included micrortps_bridge) using another branch?
    Any advice would be appreciated.

    VOXL 2
  • Login

  • Login or register to search.
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups