ModalAI Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Custom px4-firmware build on StarlingV2

    PX4 Autonomy Developer Kit
    microdds client voxl-px4 px4-firmware ros2
    3
    8
    887
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      smilon
      last edited by

      Hello,

      I am trying to figure out how to build px4-firmware which lives in voxl-px4 as a submodule.

      My goal is to modify the microdds client config (dds_topics.yaml), in order to expose more uORB topic pub/subs for my custom ROS2 nodes.

      I am going to ask some basic questions as I don't quite understand the process I need to take and can't really find any documentation that makes sense to me, at this time:

      1. Do I have to rebuild voxl-px4 in order for the modifications to take place? If no, where does px4-firmware live inside the voxl2 environment in order to make these modifications?

      2. If I have to rebuild voxl-px4 can I do it following the instructions from here? I am confused because it states that I need the rb5-flight-px4-build-docker docker image. Is this procedure supported for StarlingV2?

      I would really appreciate some guidance here as I don't want to break anything again 😆

      Eric KatzfeyE 1 Reply Last reply Reply Quote 0
      • Eric KatzfeyE
        Eric Katzfey ModalAI Team @smilon
        last edited by

        @smilon Yes, in order to build you can follow the README in the voxl-px4 project. The Docker provides the build environment so you need to use it.

        1 Reply Last reply Reply Quote 1
        • Zachary Lowell 0Z
          Zachary Lowell 0 ModalAI Team
          last edited by

          Hi @smilon - mind telling me a bit more what you are trying to do? Expose more topics to stream into PX4 or just have subscribers in ros2 to listen to exposed topics? Reason I ask is I am uncertain if PX4 has the support for new topics to stream data INTO px4 - but if all you are doing is subscribing to the new topic data is ros2 then I dont see why it would not work.

          TLDR - yes you will need to rebuild the px4 instance in order to add DDS clients/subscribers.

          S 1 Reply Last reply Reply Quote 0
          • S
            smilon @Zachary Lowell 0
            last edited by smilon

            Hi @Zachary-Lowell-0. So I haven't worked with microdds in PX4 before but say for example I want to implement PX4's PrecisionLanding feature. I need to send LandingPoseTarget uORB messages to PX4 and I want to do that with input from ROS2 topics. Currently, only a few basic topics are bridged by default, just like you point out in your docs, but I read in PX4's docs that I can expose the required topics for both input to PX4 and output to ROS2. At least that's my understanding. So I am not creating new uORB topics I just want to get more uORB topics into ROS2 and conversly publish more data from ROS2 into existing uORB topics.

            I will post here in a few days with hopefully actual results!

            Thanks.

            1 Reply Last reply Reply Quote 0
            • Zachary Lowell 0Z
              Zachary Lowell 0 ModalAI Team
              last edited by

              Makes sense to me @smilon - keep in mind that the px4 instance on the voxl2 is not mainlined so a lot of those features involving the microDDS arent fully implemented yet. It is quite easy to be the subscriber in ros2 from the DDS by exposing that topic from the yaml - but definitely might require some programming on the other side of things in PX4 to ensure that the rest of the code base can ingest the dds uorb you are passing along, etc.

              Also just some stuff I have come accross with PX4 instance of precision landing - it isnt all that good - youd have better luck implementing your own method of landing via offboard movement using something like mavros or mavsdk.

              Let me know how it goes!
              Zach

              1 Reply Last reply Reply Quote 1
              • S
                smilon
                last edited by

                Thanks for the info @Zachary-Lowell-0 ...I think day by day I am turning more towards MAVROS even though it is not the intended way to communicate with PX4 in ROS2.

                I ran into an issue while installing the newly built voxl-px4 which states it depends on libfc-sensor(>=1.0.5) and I only have (1.0.4) on my system. @Eric-Katzfey I saw you authored some commits on libfc-sensor-api, do you have any clue how I can update?

                Eric KatzfeyE 1 Reply Last reply Reply Quote 0
                • Eric KatzfeyE
                  Eric Katzfey ModalAI Team @smilon
                  last edited by

                  @smilon You can find the updated package here: http://voxl-packages.modalai.com/dists/qrb5165/staging/binary-arm64/libfc-sensor_1.0.5_arm64.deb

                  1 Reply Last reply Reply Quote 1
                  • Zachary Lowell 0Z
                    Zachary Lowell 0 ModalAI Team
                    last edited by

                    @smilon said in Custom px4-firmware build on StarlingV2:

                    I ran into an issue while installing the newly built voxl-px4 which states it depends on libfc-sensor(>=1.0.5) and I only have (1.0.4) on my system. @Eric-Katzfey I saw you authored some commits on libfc-sensor-api, do you have any clue how I can update?

                    1 Reply Last reply about 3 hours ago Reply

                    @smilon I would recommend using ros2 wrapper around mavsdk instead of mavros, that is what we have done in the past as mavros and ros1 are both depricated and not supported anymore. Anyways, goodluck with the project!

                    1 Reply Last reply Reply Quote 1
                    • First post
                      Last post
                    Powered by NodeBB | Contributors