以下のサイトの手順に従ってRos4WinをUSBメモリにインストールしてください。
以下のコマンドでClinkを起動してください。ここではドライブ"D:"にインストールしたUSBドライブが刺さっている前提でコマンドを示していますが、違うドライブに刺さっている場合は"D:"の部分をそのドライブ名に変更してください。
> D:\opt\start_ros.bat
移行の作業はClink上で実行します。
CMake実行時にROS_ENABLEのオプションをONにします。
> cmake -DORB_ROOT=C:/workspace/omniORB-4.2.3-win64-vc14 -DCORBA=omniORB -G "Visual Studio 15 2017" -A x64 -DROS_ENABLE=ON ..
その他の手順は通常と同じです。
以下のrtc.confを作成します。
manager.modules.load_path: C:\\workspace\\openrtm\\build_omni\\devel\\bin\\Release manager.modules.preload: ROSTransport.dll manager.components.preconnect: ConsoleOut0.in?interface_type=ros&marshaling_type=ros:std_msgs/Float32&ros.topic=chatter, ConsoleIn0.out?interface_type=ros&marshaling_type=ros:std_msgs/Float32&ros.topic=chatter manager.components.preactivation: ConsoleOut0, ConsoleIn0
OpenRTM-aistのシリアライザーモジュール(ROSTransport.dll)が対応しているメッセージ型は以下のようになります。
RTCを起動して動作確認します。 以下のファイルをダブルクリックします。この時上記の変更をしたrtc.confは、VC14等のOpenRTM-aistをインストール時に指定したVisual Studioのバージョンに関連したのフォルダー(デフォルトではExamplesの下のVC14)に実行するexeファイルがありますので、そこと同じディレクトリに置くようにしてください。
\Program Files\OpenRTM-aist\2.0\Components\C++\Examples\ConsoleIn.bat \Program Files\OpenRTM-aist\2.0\Components\C++\Examples\ConsoleOut.bat
以下のコマンドでインストールしてください。
$ export ROS_DISTRO=melodic $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' $ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 $ sudo apt-get -y update $ sudo apt-get -y install ros-${ROS_DISTRO}-ros-base $ sudo rosdep init $ rosdep update
ROS用にbashの設定を以下のように行います。(次回以降のbash起動時の設定と、現在実行中のbashの設定を行います。)
$ echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc $ source ~/.bashrc
CMake実行時にROS_ENABLEのオプションをONにします。
$ cmake -DCORBA=omniORB -DCMAKE_BUILD_TYPE=Release -DROS_ENABLE=ON ..
その他の手順は通常と同じです。
ビルド後にインストールしてください。
$ cmake --build . --target install
以下のrtc.confを作成します。このファイルは下記のRTCコンポーネントを起動する時に使うカレントワーキングディレクトリにおいてください。
manager.modules.load_path: /usr/local/lib/openrtm-2.0/transport/ manager.modules.preload: ROSTransport.so manager.components.preconnect: ConsoleOut0.in?interface_type=ros&marshaling_type=ros:std_msgs/Float32&ros.topic=chatter, ConsoleIn0.out?interface_type=ros&marshaling_type=ros:std_msgs/Float32&ros.topic=chatter manager.components.preactivation: ConsoleOut0, ConsoleIn0
OpenRTM-aistのシリアライザーモジュール(ROSTransport.so)が対応しているメッセージ型は以下のようになります。
ConsoleInComp、ConsoleOutCompを起動して動作確認します。
それぞれ別のターミナルから起動してください。
$ /usr/local/share/openrtm-2.0/components/c++/examples/ConsoleInComp
$ /usr/local/share/openrtm-2.0/components/c++/examples/ConsoleOutComp
以下のページに従ってROSをUSBメモリにインストールしてください。
OpenRTM-aist 1.2等をインストーラーでインストールしておいてください。 OpenRTM-aist Python版のソースコードを入手してください。
以下のコマンドでOpenRTM-aist Python版をインストールしてください。
> python setup.py build > python setup.py install
start_ros.batを2回実行して、ROSの環境設定をしたウインドウを2つ開いてください。
> D:\opt\start_ros.bat
片方のウインドウでroscoreを起動します。
> roscore
もう片方のウインドウでOpenRTM-aistをインストールしたディレクトリをPYTHONPATHに設定します。
> set PYTHONPATH=%PYTHONPATH%;C:\Python37\Lib\site-packages;C:\Python37\Lib\site-packages\OpenRTM_aist;C:\Python37\Lib\site-packages\OpenRTM_aist\utils;C:\Python37\Lib\site-packages\OpenRTM_aist\RTM_IDL
以下のrtc.confを作成します。(rtc.confはRTCのexeファイルが実行される時のディレクトリに作成してください。サンプルバッチファイルを使う場合は、バッチファイルから起動されるexeファイルが置かれているディレクトリになります。)
manager.modules.load_path: C:\\Python37\\Lib\\site-packages\\OpenRTM_aist\\ext\\transport\\ROSTransport manager.modules.preload: ROSTransport.py manager.components.preconnect: ConsoleOut0.in?interface_type=ros&marshaling_type=ros:std_msgs/Float32&ros.topic=chatter, ConsoleIn0.out?interface_type=ros&marshaling_type=ros:std_msgs/Float32&ros.topic=chatter manager.components.preactivation: ConsoleOut0, ConsoleIn0
OpenRTM-aistのシリアライザーモジュール(ROSTransport.py)が対応しているメッセージ型は以下のようになります。
上記のrtc.confを用いてRTCを起動して動作確認してください。
C++版と同じ手順でROSをインストールしてください。
以下のパッケージをインストールしてください。
$ sudo apt-get install python-omniorb-omg omniidl-python doxygen
以下のコマンドでOpenRTM-aist Python版をインストールします。
$ git clone https://github.com/OpenRTM/OpenRTM-aist-Python $ cd OpenRTM-aist-Python $ python setup.py build $ sudo python setup.py install
以下のrtc.confを作成します。(rtc.confはRTCを実行する時のカレントワーキングディレクトリに作成してください。)
manager.modules.load_path: /usr/local/lib/python2.7/dist-packages/OpenRTM_aist/ext/transport/ROSTransport/ manager.modules.preload: ROSTransport.py manager.components.preconnect: ConsoleOut0.in?interface_type=ros&marshaling_type=ros:std_msgs/Float32&ros.topic=chatter, ConsoleIn0.out?interface_type=ros&marshaling_type=ros:std_msgs/Float32&ros.topic=chatter manager.components.preactivation: ConsoleOut0, ConsoleIn0
OpenRTM-aistのシリアライザーモジュール(ROSTransport.py)が対応しているメッセージ型は以下のようになります。
以下のコマンドでRTCを起動して動作確認してください。
$ python /usr/local/share/openrtm-2.0/components/python/SimpleIO/ConsoleIn.py
$ python /usr/local/share/openrtm-2.0/components/python/SimpleIO/ConsoleOut.py
When using the ROS and ROS2 communication functions, OpenRTM-aist has a serializers that support the following ROS / ROS2 message types. If you need something other than the following message types, implement your own serializer to convert to that message type.
Serializer Name | RTM Data Type | ROS,ROS2 Message Type |
ros:std_msgs/Float32, ros2:std_msgs/Float32 |
TimedState,TimedShort, TimedLong,TimedUShort, TimedULong,TimedFloat, TimedDouble |
std_msgs/Float32 |
ros:std_msgs/Float64, ros2:std_msgs/Float64 |
TimedState,TimedShort, TimedLong,TimedUShort, TimedULong,TimedFloat, TimedDouble |
std_msgs/Float64 |
ros:std_msgs/Int8, ros2:std_msgs/Int8 |
TimedState,TimedShort, TimedLong,TimedUShort, TimedULong,TimedFloat, TimedDouble |
std_msgs/Int8 |
ros:std_msgs/Int16, ros2:std_msgs/Int16 |
TimedState,TimedShort, TimedLong,TimedUShort, TimedULong,TimedFloat, TimedDouble |
std_msgs/Int16 |
ros:std_msgs/Int32, ros2:std_msgs/Int32 |
TimedState,TimedShort, TimedLong,TimedUShort, TimedULong,TimedFloat, TimedDouble |
std_msgs/UInt8 |
ros:std_msgs/Int64, ros2:std_msgs/Int64 |
TimedState,TimedShort, TimedLong,TimedUShort, TimedULong,TimedFloat, TimedDouble |
std_msgs/UInt16 |
ros:std_msgs/UInt32, ros2:std_msgs/UInt32 |
TimedState,TimedShort, TimedLong,TimedUShort, TimedULong,TimedFloat, TimedDouble |
std_msgs/UInt32 |
ros:std_msgs/UInt64, ros2:std_msgs/UInt64 |
TimedState,TimedShort, TimedLong,TimedUShort, TimedULong,TimedFloat, TimedDouble |
std_msgs/UInt64 |
ros:std_msgs/Float32MultiArray, ros2:std_msgs/Float32MultiArray |
TimedShortSeq,TimedLongSeq, TimedUShortSeq,TimedULongSeq, TimedFloatSeq,TimedDoubleSeq |
std_msgs/Float32MultiArray |
ros:std_msgs/Float32MultiArray, ros2:std_msgs/Float32MultiArray |
TimedShortSeq,TimedLongSeq, TimedUShortSeq,TimedULongSeq, TimedFloatSeq,TimedDoubleSeq |
std_msgs/Float32MultiArray |
ros:std_msgs/Float64MultiArray, ros2:std_msgs/Float64MultiArray |
TimedShortSeq,TimedLongSeq, TimedUShortSeq, TimedULongSeq, TimedFloatSeq,TimedDoubleSeq |
std_msgs/Float64MultiArray |
ros:std_msgs/Int8MultiArray, ros2:std_msgs/Int8MultiArray |
TimedShortSeq,TimedLongSeq, TimedUShortSeq,TimedULongSeq, TimedFloatSeq,TimedDoubleSeq |
std_msgs/Int8MultiArray |
ros:std_msgs/Int16MultiArray, ros2:std_msgs/nt16MultiArray |
TimedShortSeq,TimedLongSeq, TimedUShortSeq,TimedULongSeq, TimedFloatSeq,TimedDoubleSeq |
std_msgs/Int16MultiArray |
ros:std_msgs/Int32MultiArray, ros2:std_msgs/Int32MultiArray |
TimedShortSeq,TimedLongSeq, TimedUShortSeq,TimedULongSeq, TimedFloatSeq,TimedDoubleSeq |
std_msgs/Int32MultiArray |
ros:std_msgs/Int64MultiArray, ros2:std_msgs/Int64MultiArray |
TimedShortSeq,TimedLongSeq, TimedUShortSeq,TimedULongSeq, TimedFloatSeq,TimedDoubleSeq |
std_msgs/Int64MultiArray |
ros:std_msgs/UInt8MultiArray, ros2:std_msgs/UInt8MultiArray |
TimedShortSeq,TimedLongSeq, TimedUShortSeq,TimedULongSeq, TimedFloatSeq,TimedDoubleSeq |
std_msgs/UInt8MultiArray |
ros:std_msgs/UInt16MultiArray, ros2:std_msgs/UInt16MultiArray |
TimedShortSeq,TimedLongSeq, TimedUShortSeq,TimedULongSeq, TimedFloatSeq,TimedDoubleSeq |
std_msgs/UInt16MultiArray |
ros:std_msgs/UInt32MultiArray, ros2:std_msgs/UInt32MultiArray |
TimedShortSeq,TimedLongSeq, TimedUShortSeq,TimedULongSeq, TimedFloatSeq,TimedDoubleSeq |
std_msgs/UInt32MultiArray |
ros:std_msgs/UInt64MultiArray, ros2:std_msgs/UInt64MultiArray |
TimedShortSeq,TimedLongSeq, TimedUShortSeq,TimedULongSeq, TimedFloatSeq,TimedDoubleSeq |
std_msgs/UInt64MultiArray |
ros:std_msgs/String, ros2:std_msgs/String |
TimedString | std_msgs/String |
ros:geometry_msgs/PointStamped, ros2:geometry_msgs/PointStamped |
TimedPoint3D | geometry_msgs/PointStamped |
ros:geometry_msgs/QuaternionStamped, ros2:geometry_msgs/QuaternionStamped |
TimedQuaternion | geometry_msgs/QuaternionStamped |
ros:geometry_msgs/Vector3Stamped, ros2:geometry_msgs/Vector3Stamped |
TimedVector3D | geometry_msgs/Vector3Stamped |
ros:sensor_msgs/Image, ros2:sensor_msgs/Image |
CameraImage | sensor_msgs/Image |