CoppeliaSimはROSカスタムメッセージタイプを追加します

CoppeliaSim

CoppeliaSimは、拡張性の高いシミュレーションプラットフォームとして多くのインターフェースを提供しており、プラグインの生成が容易である限り、すべてがプラグインであると言えます。githubは、simExtROSプラグインのソースコードを提供します。組み込みのROSプラグイン機能が満たされない場合は、そのソースコードを変更してプラグインをコンパイルできます。

準備オーケー

ROSワークスペースを作成する

catkin-toolsをインストールします

公式サイトでの
注意Ubunt20.04はPython3であるため、使用時にsudo apt-get install python3-catkin-tools依存関係の問題が発生する可能性があります。リポジトリ追加するための完全なプロセスは次のとおり
です

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -

catkin_toolsをインストールします。
以下はpython3であることに注意してください。これが、ubuntuシステムの下位バージョンである場合は、pythonを使用してください。
sudo apt-get update sudo apt-get install python3-catkin-tools

問題:
ここに画像の説明を挿入
解決策:上の図の一番下の行を見てください。これはosrf_pycommonに依存していないため、インストール中にosrf-pycommonを同時にインストールする必要があります。

sudo apt install python3-catkin-tools python3-osrf-pycommon

カスタムROSメッセージパッケージを作成する

自分で確認してください。例としてgithubにダウンロードしたAckermanメッセージを次に示します。

git clone https://github.com/ros-drivers/ackermann_msgs.git ackermann_msgs

ここに画像の説明を挿入
ワークスペースでコンパイルする

sim_ros_interfaceをコンパイルします

  1. libPluginのダウンロード
    注:libPluginのバージョンは、CoppeliaSimのバージョンに対応している必要があります。履歴バージョンをダウンロードできます。
    ここに画像の説明を挿入

  2. sim_ros_interfaceのダウンロード
    注:libPluginと同じで、バージョンはCoppeliaSimバージョンと同じである必要があります。過去のバージョンをダウンロードできます。

git clone --recursive https://github.com/CoppeliaRobotics/simExtROSInterface.git sim_ros_interface
  1. カスタムメッセージ
    ackermann_msgsを追加し、sim_ros_interfaceパッケージCMakeLists.txt、package.xml、meta /messages.txt変更します。
    cmakelist.txtにackermann_msgsを追加しますpackage.xmlはackermann_msgsを追加しますackermann_msgsの2つのサブタイプを追加します

  2. roscoreを開始します


  3. ワークスペースの下でコンパイルしますsim_ros_interfaceをワークスペースsrcの下に置きます
    ここに画像の説明を挿入

問題1:COPPELIASIM_ROOT_DIRのパスが設定されていません。
ここに画像の説明を挿入
解決策:〜/ .bashrcの最後に追加しますexport COPPELIASIM_ROOT_DIR=/home/lyz/sim_ws/src/CoppeliaSim_Edu_V4_1_0_Ubuntu16_04/(特定のパスは独自のCoppeliaSimパスによって異なります)。環境変数が正常に追加されたことを確認します。追加後に同じエラーが報告された場合は、端末を閉じて再起動してください。

問題2:
ここに画像の説明を挿入
解決策:これは、libPluginが最新ではないためです。最初に最新のlibPluginをダウンロードし、CoppeliaSimでlibPluginを置き換えてから、新しい問題をコンパイルする必要があります。
ここに画像の説明を挿入プロンプトに従って、sudo apt install xsltproc問題なくコンパイルします。
6.リファレンスブログ

ubuntu 16 18のROSはpython2に基づいているため、ダウンロードしたCoppeliaSimバージョンに注意する必要があります。したがって、上記のプロセスは適切ではありません。githubでsim_ros_interfaceの履歴バージョンをダウンロードし、対応するバージョンのlibPluginをダウンロードする必要があります。 、そうでない場合、コンパイルは多くの奇妙なエラーになります。githubチュートリアルの履歴バージョンをダウンロードします。

CoppeliaSimでテスト済み

シーンを見つけて、ニューストピックを購読して
ここに画像の説明を挿入
ここに画像の説明を挿入
ください。コンパイルは問題ありません。このトピックはターミナルで確認できます。
ここに画像の説明を挿入

catkinbuildとcatkin_makeの違い

https://catkin-tools.readthedocs.io/en/latest/migration.html
主な違いは、catkinビルドのコンパイルは独立してビルドされるのに対し、catkin_makeのコンパイルは依存することです。この例では、カスタムメッセージパッケージackerman_msgsがあります。ワークスペースsim_ros_interfaceでは、catkin_makeでコンパイルされた.soプラグインに依存関係があるため、CoppeliaSimの下に置くとackermann_msgsメッセージが認識されません。catkinビルドでコンパイルされたパッケージには、必要なすべての依存関係が追加されており、比較的独立しているため、CoppeliaSimの下に配置しても依存関係の問題は発生しません。
ここに画像の説明を挿入
catkinビルドでコンパイルすることに加えて、catkin_make_isolatedを使用してsim_ros_interfaceを個別にコンパイルすることもでき、生成されたプラグインにも同じ効果があります。

レッスン

公式チュートリアルに必ず従ってください。そうしないと、多くの時間が無駄になります。catkinbuildの代わりにcatkin_makeを使用してスマートにすることができます。結果は成功しませんでしたが、catkinツールを素直にインストールした後、一度に成功しました。

リファレンスブログ

おすすめ

転載: blog.csdn.net/github_39582118/article/details/113093349