ROS2, Micro ROS,Raspbeery Pi, SPRESENSE, PX4
Creating custom micro-ROS transports
eProsima Micro XRCE-DDS Agent
Transport
Agent API
How to use custom QoS in micro-ROS
VcXsrv
wingetでインストールできる.
Spresense-microROS-Seminar
SPRESENSE™とmicro-ROSで始めるロボットプログラミング
XML Robot Description Format (URDF)
統一ロボット記述フォーマット(URDF)は、ロボットを記述するためのXML仕様である。我々はこの仕様をできるだけ一般的なものにしようと試みているが、この仕様ですべてのロボットを記述することはできないのは明らかである。現時点での主な制限は、ツリー構造しか表現できないことであり、すべての並列ロボットを除外している。また、この仕様では、ロボットは関節で接続された剛体リンクで構成されていると仮定しており、柔軟な要素はサポートされていません。(DeepL翻訳)
http://wiki.ros.org/urdf/XML/model
PX4 User Guide/ROS 2 User Guide
ROS 2-PX4アーキテクチャは、ROS 2とPX4の間の深い統合を提供し、ROS 2のサブスクライバまたはパブリッシャノードがPX4 uORBトピックと直接インターフェースできるようにします。(DeepL翻訳)
uORB Messaging
uORB は非同期の publish() / subscribe() メッセージング API で、スレッド間/プロセス間通信に使用されます。(DeepL翻訳)
Design and Implementation of Model Predictive Control on Pixhawk Flight Controller
13: Micro object request broker, µORB
First micro-ROS Application on Linux
micro-ROS 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.
- Platform-specific integrations: We have integrated micro-ROS with several platforms build tools. Click here to learn more.
ここではRTOSの場合におけるビルドを説明していて、zephyrの場合の例でreate_firmware_ws.sh
を行っている
Creating a new firmware workspace
Once the build system is installed, let’s create a firmware workspace that targets all the required code and tools:# Create step ros2 run micro_ros_setup create_firmware_ws.sh zephyr host
ここでzepher
の所で指定できるRTOSなどの一覧は以下のディレクトリ内のサブディレクトリ。
ドキュメントではRTOSと表現されているので文字通りRTOSしか指定出来ないと考えてしまうが、上記のディレクトリを見れば分かるようにraspbian
も存在している。
root@262fbbec43ba:/microros_ws# ros2 run micro_ros_setup create_firmware_ws.sh
Syntax: ros2 run micro_ros_setup create_firmware_ws.sh <package> [<platform>]
Available platforms:
. android
+-- generic
. freertos
+-- crazyflie21
+-- esp32
+-- nucleo_f446re
+-- nucleo_f446ze
+-- nucleo_f746zg
+-- nucleo_f767zi
+-- olimex-stm32-e407
. generate_lib
+-- generic
. host
+-- generic
. mbed
+-- disco_l475vg_iot01a
. raspbian
+-- stretch_v8
+-- buster_v7
+-- buster_v8
. renesas_ra
+-- ra6m5
. zephyr
+-- discovery_l475_iot1
+-- olimex-stm32-e407
+-- nucleo_f401re
+-- nucleo_h743zi
+-- nucleo_f746zg
[ros2run]: Process exited with failure 1