Skip to content
This repository has been archived by the owner on Mar 17, 2021. It is now read-only.

ROS Scripts - What do we need to do #764

Open
hamishwillee opened this issue Apr 2, 2019 · 2 comments
Open

ROS Scripts - What do we need to do #764

hamishwillee opened this issue Apr 2, 2019 · 2 comments

Comments

@hamishwillee
Copy link
Collaborator

There is a discussion on scripts in #761, which implies we need to rework how they are done.
This is a placeholder for discussion (see next post).

  1. Firstly we need to add versioning to v1.8.x trees - ie https://dev.px4.io/v1.8.2/en/ so that they take the scripts from the branch rather than master.
  2. Then need to rename ubuntu_sim_ros_melodic.sh to something that does not include ROS version name - so that it can be updated without requiring a rename.
    The actual name will depend on what we want to install.
@hamishwillee
Copy link
Collaborator Author

From @TSC21

Bringing Fast-RTPS into ROS install scripts will only make sense if you also install ROS2. Otherwise, it's not worth to include it on scripts with the sole purpose of installing ROS(1) toolchain.
Also a remark that under px4_ros_com I do already have a script for this (though notice I am not installing Fast RTPS there - the main reason is that ROS2 has it's own Fast RTPS implementation, though it still misses the fastrtpsgen script we require from the Fast RTPS installation. I am trying to find a way of getting this into a system without having to install Fast RTPS entirely).

And clarification

No, not exactly. You need Fast-RTPS installed if you actually want to build PX4 with Fast-RTPS support and run non-ROS Fast-RTPS apps on the machine (as we have documented). What I am saying is that installing this in ROS(1) scripts doesn't really add anything, unless you want to use px4_ros_com, which in that case you need an update on the scripts to also install ROS2.
I am ok that we keep these scripts here on the Devguide, but needs a commitment, as you said, from everyone working with these frameworks and maintaining a code base.

@hamishwillee
Copy link
Collaborator Author

@TSC21 Please sanity check the statements below to ensure my understanding is correct.

These are the things we might want to do:

  1. Build PX4 with FastRTPS for ROS independent applications.
    • For this I think you need the FastRTPS zip from eProsima (ie as installed using existing script) and the normal PX4 source tree + dependencies.
    • You can then build the PX4 side stuff as part of a normal build (do you still need the _rtps in make px4_fmu-v4_rtps ?)
    • This will also create but not build the agent. YOu can deploy and build this yourself to talk to some other generic FastRTPS node
  2. Build PX4 Firmware and setup ROS2 /ROS1 for the master branch of PX4
    • What I think changed here is that instead of building PX4 firmware to generate the agent-side code and IDL messages we now deliver px4_ros_com, which abstracts all that agent side code into a pre-created "lump". This allows you to build a ROS2/1 environment without having to rebuild PX4 master - ie it decouples ROS from PX4.
    • I see you provided nice setup scripts for this in https://dev.px4.io/master/en/middleware/micrortps.html#building-the-workspaces - assuming ROS itself already installed.
    • To talk to this what do you need to do PX4 side? My assumption is that this is exactly the same as ""Build PX4 with FastRTPS for ROS independent applications"
  3. Add new uORB. I am assuming that some people will want to add custom or new uORB and will need to build the agent - ie no longer use px4_ros_com. Do we have instructions for the setup ROS side in this case?

Currently the Devguide scripts install ROS melodic, geographiclib, MAVROS and MAVLink, and pulls in a base script that downloads FastRTPS zip and the PX4 source. We don't actually pull in anything to talk to ROS1 or ROS2 from PX4 as far as I can tell? Ideally the script should set everything up for someone to start running a ROS node against the simulator.

In https://dev.px4.io/master/en/setup/dev_env_linux.html#ros I think we need to provide a script that does this. Whether or not it uses px4_ros_com or is an environment where people can build there own depends on whether we see this as:

  • an environment for PX4 users to provide interfaces to ROS2 and extend PX4 for ROS, or (e.g. @baumanta)
  • an environment for ROS users to talk to PX4 and write ROS and ROS2 nodes.

Thoughts?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant