問題タブ [ros]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opencv - openCv での表示中に msg_Image が歪んでいるのを受け取りました
1 つのノードからイメージを公開した後、2 番目のノードでそのイメージをサブスクライブしたいと考えています。しかし、2番目のノードでサブスクライブした後、cv::Mat イメージに保存しようとすると、歪んでしまいます。
次のコードの patchImage は歪んでいます。いくつかの水平線と同じ画像の 4 つの画像が結合されています。
私のコードの概要は次のとおりです。
qt - Qtablewigetがセグメンテーション違反を投げる
QtableWidget を使用して、ROS メッセージから収集したデータを入力しています。
プログラムを実行すると、セグメンテーション違反エラーが発生します
c++ - rqt で単純な ros ノードをサブスクライブする
rqt プラグイン内から非常に単純な ros トピックにサブスクライブしようとしています。サブスクリプションは機能しているようですが、Callback 関数が呼び出されません。
これは実際には非常に単純なはずです。私は何が欠けていますか?
communication - ROS - ノードがまだ生きているかどうかを確認する
4 つの車輪を持つデバイスの制御ノードを実装しています。これまでのところ、次のノードがあります。
これら 2 つの作品間の通信と私の唯一の問題は、車両の制御不能な動きを防ぐためにどちらかがシャットダウンした場合にどうするかということです。ros::isShuttingDown()
LISTENER を呼び出して、いつ殺されようとしているのかを検出します。
ただし、TALKER がシャットダウンされた場合、LISTENER は TALKER から受信した最後のメッセージに従って車両を動かし続けます。最初はros::isShuttingDown()
、最終的な「停止」メッセージを LISTENER に送信するために、TALKER でも使用しようとしましたが、ノードがシャットダウンすると、通信ができないようです。
したがって、ノード TALKER がまだ生きているかどうか (または新しいメッセージがまだ受信されているかどうか) を LISTENER 内でチェックする方法を探しています。
ノード(この場合はTALKER)がまだ生きているかどうかを確認する方法についてのアイデアはありますか?または、最後の ROS メッセージが受信されてからの経過時間を検出する簡単な方法はありますか?
c++ - Ubuntu で Qt GUI アプリから複数のコマンドライン アプリを実行し、コンソール出力を取得する
Ubuntu 12.04 (Precise) と ROS fuerte でロボット工学アプリケーションを開発しています。実行する必要がある約 10 の異なるノード (プロセス) があり、ロボットのさまざまな操作モードを切り替える必要があります。また、これらのノードを動的に強制終了して生成する必要があります。通常はターミナルから起動するのが一般的ですが、使いやすい GUI インターフェースを提供したいと考えています。
すべての出力を取得しながら、Ubuntu で C++ コードからターミナル アプリケーションを起動する方法はありますか? 実行中のすべてのアプリからすべての出力を収集し、1 つのビューに表示したいと考えています。外出先でこれらのアプリをスポーンおよびキルすることも可能である必要があります。
それとも、私が気付いていないROSの方法でこれを行うのでしょうか?
ありがとう!
android - Androidスタジオは、Gradleのバージョン>= 1.8および<=1.6が必要であると教えてくれます
Android Studio をダウンロードする手順: http://wiki.ros.org/sig/Rosjava/Android%20Studio/Download
したがって、デフォルトのgradleラッパーを使用しようとすると、バージョン1.8が必要であることがわかります. そこで、これを修正する方法を調べたので、gradle バージョン 1.8 をダウンロードしました。それを使うたびに、バージョン 1.6 が必要だというメッセージが表示されます。
問題があれば、Android と ROS を使用しようとしています (そのため、android_apps プログラムを Android スタジオにインポートしようとしています)。
何か助けはありますか?
c++ - インクルード ディレクトリを AUTOMOC に追加する
QT4 GUI を含む ROS パッケージがあります。私のコードはフォルダー
Project_name/src/test/*.cpp
にあり、私のインクルードは
Project_name/include/test/*.h
一部のヘッダー ファイルにはクラスに Q_OBJECT が含まれているため、一部の qt4 moc を作成する必要があります。
cmake ファイルでを試しました
set(CMAKE_AUTOMOC ON)
が、 /include/test/ フォルダーを検索しないようです。AUTOMOC は、ソース ファイルで moc_ * *.cpp ファイルを検索するか、ヘッダー ファイルで Q_OBJECT を調べることによって機能すると述べています。
また、ソース ファイルに a を含めようとしmoc_***.cpp
ました (たとえば、/src/test/a.cpp
)。そのため、検索しましa.h
たが、 で見つかりませんでしたinclude/test/a.h
。
include/ フォルダーが次のように追加されるため、クラスから Q_OBJECT を削除すると、コンパイルが成功することに注意する必要があります。
include_directories( include
${catkin_INCLUDE_DIRS}
)
最後に、QT4_WRAP_CPP を使用しようとしましたが、何らかの理由で mocs を見つけることができず、リンクが失敗しました (ただし、cmake ファイルで同じパラメーターを持つ別のプロジェクトでは動作します:/)
編集: 解決策が見つかりました。cpp ファイルに次のように追加されました。
#include "../../include/test/moc_a.cpp"
インクルード/テストで.hを見つけました。
それは正しい方法ではないと何かが私に言っていますが:P