-
Notifications
You must be signed in to change notification settings - Fork 71
Adding build systems section #244
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
Merged
Merged
Changes from all commits
Commits
Show all changes
30 commits
Select commit
Hold shift + click to select a range
6f4df77
Initial
pablogs9 b43e6d2
Update _docs/concepts/build_system/index.md
pablogs9 0cb0a99
Update _docs/concepts/build_system/index.md
pablogs9 d58d48f
Update _docs/concepts/build_system/index.md
pablogs9 49972dc
Update _docs/concepts/build_system/index.md
pablogs9 1de83de
Update _docs/concepts/build_system/index.md
pablogs9 58ad514
Update _docs/concepts/build_system/index.md
pablogs9 90235ab
Update _docs/concepts/build_system/index.md
pablogs9 0c8e9f0
Update _docs/concepts/build_system/index.md
pablogs9 c7dcf11
Update _docs/concepts/build_system/external_build_systems/index.md
pablogs9 cfef1d7
Update _docs/concepts/build_system/external_build_systems/index.md
pablogs9 5602bab
Update _docs/concepts/build_system/index.md
pablogs9 db5e8bf
Update _docs/concepts/build_system/external_build_systems/index.md
pablogs9 730a647
Update _docs/concepts/build_system/index.md
pablogs9 78fe84d
Update _docs/concepts/build_system/index.md
pablogs9 6822520
Update
pablogs9 4f8abc6
Updates
pablogs9 dfc26e0
Update _docs/concepts/build_system/external_build_systems/index.md
pablogs9 a212b20
Update _docs/concepts/build_system/external_build_systems/index.md
pablogs9 947a8f1
Update _docs/concepts/build_system/external_build_systems/index.md
pablogs9 59fec50
Update _docs/concepts/build_system/external_build_systems/index.md
pablogs9 39feeb0
Update _docs/concepts/build_system/index.md
pablogs9 ba045d0
Update _docs/concepts/build_system/index.md
pablogs9 a225fce
Update _docs/concepts/build_system/index.md
pablogs9 a1597ea
Update _docs/concepts/build_system/index.md
pablogs9 f27ca44
Refer to tutorial section
pablogs9 fad08b4
Merge remote-tracking branch 'origin/feature/add_build_system_section…
pablogs9 cd57778
Update _docs/concepts/build_system/index.md
pablogs9 00ca5f5
Update _docs/concepts/build_system/index.md
pablogs9 f934ef5
Update _docs/concepts/build_system/index.md
pablogs9 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 24 additions & 0 deletions
24
_docs/concepts/build_system/external_build_systems/index.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| --- | ||
| title: External Build Systems | ||
| permalink: /docs/concepts/build_system/external_build_systems/ | ||
| --- | ||
|
|
||
| Once you have read about the official [**micro_ros_setup** tool](/docs/concepts/build_system/), this page will present some other approaches for building micro-ROS as a module or component integrated into other build systems. | ||
|
|
||
| ## micro-ROS component for ESP-IDF | ||
|
|
||
| The [micro-ROS component for ESP-IDF](https://github.com/micro-ROS/micro_ros_espidf_component) allows to integrate micro-ROS as a component in an Espressif ESP-IDF Build System. This component allows the user to integrate the micro-ROS API and utilities in an already created ESP-IDF project just by cloning or copying a folder. | ||
|
|
||
| Configuration of the micro-ROS library is based on the `colcon.meta` file. For more details visit the [Git repository](https://github.com/micro-ROS/micro_ros_espidf_component). | ||
|
|
||
| ## micro-ROS module for Zephyr | ||
|
|
||
| The [micro-ROS module for Zephyr](https://github.com/micro-ROS/micro_ros_zephyr_module) allows to integrate micro-ROS as a module in a Zephyr-based project. In detail, it enables to integrate the micro-ROS API and utilities in an existing Zephyr project just by cloning or copying a folder. | ||
|
|
||
| The procedure for configuring the built micro-ROS library is based in `colcon.meta`. For more details visit the [Git repository](https://github.com/micro-ROS/micro_ros_espidf_component). | ||
|
|
||
| ## micro-ROS for Arduino | ||
|
|
||
| The [micro-ROS for Arduino](https://github.com/micro-ROS/micro_ros_arduino) support package is a special port of micro-ROS provided as a set of precompiled libraries for specific platforms. The main reason for this approach is that Arduino does not allow the build of a complex library such as micro-ROS, so by using this approach a ready-to-use solution is provided to the Arduino users. | ||
|
|
||
| Along with this support package, there are [detailed instructions](https://github.com/micro-ROS/micro_ros_arduino#how-to-build-the-precompiled-library) for rebuilding the micro-ROS for Arduino libraries for users that need to tune the default configuration. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,69 @@ | ||
| --- | ||
| title: micro-ROS Build System | ||
| permalink: /docs/concepts/build_system/ | ||
| --- | ||
|
|
||
| micro-ROS provides two ways of building a micro-ROS application for embedded platforms: | ||
| - _micro_ros_setup:_ integrates and hides the RTOS-specific build tools in few scripts provided as a ROS 2 package. | ||
| _RTOS-specific integrations:_ We have integrated micro-ROS with several RTOS build tools. Click [here](/docs/concepts/build_system/external_build_systems/) to learn more. | ||
|
|
||
| **micro_ros_setup** provides a standalone build system in the form of a ROS 2 package for use in any normal ROS 2 workspace. This tool is available in the [micro-ROS/micro_ros_setup](https://github.com/micro-ROS/micro_ros_setup) repository. | ||
|
|
||
| The **micro_ros_setup** tool allows compiling and generating images that contain micro-ROS apps for the [supported hardware](/docs/overview/hardware/) boards and [RTOSes](/docs/concepts/rtos/). | ||
|
|
||
| As the **micro_ros_setup** package can be installed like any other ROS 2 package, its usage will be through the ROS 2 CLI tool. Compiling, generating an image and flashing it on a board can be done just with four ROS 2 commands. A detailed description about the usage of this package can be found in the [tutorial section](/docs/tutorials/core/first_application_rtos/). | ||
|
|
||
| ### micro-ROS client | ||
|
|
||
| Once installed, the build system tool provides some utilities that can be used in order to prepare, build, flash and use a micro-ROS application. The micro-ROS build system is a four-step procedure. In the first step, the user can create a new micro-ROS application by configuring the target hardware and RTOS: | ||
|
|
||
| ```bash | ||
| # Create step | ||
| ros2 run micro_ros_setup create_firmware_ws.sh [RTOS] [HARDWARE BOARD] | ||
| ``` | ||
|
|
||
| It is possible to obtain a list of the supported hardware by running the command without any argument. By doing so, it is possible to see that along with the RTOSes and hardware supported by micro-ROS this build system also provides with three extra options: | ||
| - By using `zephyr` as RTOS and `host` as hardware name, it is possible to obtain a Zephyr RTOS image with your micro-ROS app that runs in your host computer. | ||
| - By using just `host` as RTOS, micro-ROS will build a set of [micro-ROS demo applications](https://github.com/micro-ROS/micro-ROS-demos) natively in your host machine. These applications behave just like micro-ROS apps (using the same abstraction layers and middleware implementation) and allow the user to debug and test the applications on a PC. | ||
| - By using `generate_lib` as RTOS it is possible to configure the build system for generating static libraries (`.a`) and a set of headers (`include`) that can be linked in any other external tool. This option requires a valid CMake toolchain. | ||
|
|
||
| Once the build system has created the new firmware project, it is possible to configure it using: | ||
|
|
||
| ```bash | ||
| # Configure step | ||
| ros2 run micro_ros_setup configure_firmware.sh [APP] [OPTIONS] | ||
| ``` | ||
|
|
||
| By running this command without any argument, it will output a list of example applications valid for the selected RTOS. | ||
| Common options available at this configuration step are: | ||
| - `--transport` or `-t`: `udp`, `serial` or any hardware specific transport label | ||
| - `--dev` or `-d`: agent string descriptor in a serial-like transport | ||
| - `--ip` or `-i`: agent IP in a network-like transport | ||
| - `--port` or `-p`: agent port in a network-like transport | ||
|
|
||
|
|
||
| Finally, it is possible to build and flash a micro-ROS app using: | ||
|
|
||
| ```bash | ||
| # Build step | ||
| ros2 run micro_ros_setup build_firmware.sh | ||
|
|
||
| # Flash step | ||
| ros2 run micro_ros_setup flash_firmware.sh | ||
| ``` | ||
|
|
||
| ### micro-ROS agent | ||
|
|
||
| The micro-ROS build system is also able to ease the compilation of the micro-ROS Agent in a ROS 2 workspace by using these commands: | ||
|
|
||
| ```bash | ||
| # Download micro-ROS-Agent packages | ||
| ros2 run micro_ros_setup create_agent_ws.sh | ||
| ros2 run micro_ros_setup build_agent.sh | ||
| source install/local_setup.bash | ||
| ros2 run micro_ros_agent micro_ros_agent [OPTIONS] | ||
| ``` | ||
|
|
||
| **Tip 1:** To learn use of the micro_ros_setup build system hands-on, please see the [core tutorials](https://micro-ros.github.io/docs/tutorials/core/first_application_rtos/). | ||
|
|
||
| **Tip 2 :** Remember that the micro-ROS Agent can be also be used with this simple Docker command: `docker run -it --rm -v /dev:/dev --privileged --net=host microros/micro-ros-agent:foxy [OPTIONS]` | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.