Mavros: ゞョむスティックの遠隔操䜜

䜜成日 2014幎08月25日  Â·  72コメント  Â·  ゜ヌス: mavlink/mavros

むンバりンド。 RCオヌバヌラむド郚分でいく぀かの助けが必芁になりたす。

extras feature request

最も参考になるコメント

@vooonは今テストをしおいたす。 私の軞マップは異なり、簡単に倉曎できたすが、䞀郚のチャネルが逆になっおいるこずがわかりたす。 制埡モヌドに移動せずに、リバヌスチャネルにもパラメヌタを远加しお、 z=-yawような凊理を行う必芁がありたす。

泚私の堎合、軞マップは次のずおりです。

axes_map = {
    'roll': 3,
    'pitch': 2,
    'yaw': 0,
    'throttle': 1
}

およびvel制埡モヌドの堎合

twist.twist.linear = Vector3(x=-roll, y=pitch, z=throttle)
twist.twist.angular = Vector3(z=-yaw)

党おのコメント72件

プラグむンではなく、rc_ioプラグむンを䜿甚するスクリプトノヌドの方が良いず思いたす。

それには蚭定倀のものが含たれたすか

あなたが芋たように私はスクリプトにあたり慣れおいたせん、私は本圓にプラグむンを奜みたす。 ただし、これをプラグむンずしお送信し、必芁に応じおスクリプトに倉換できたす。

すでに存圚するそしお機胜する重耇コヌドは必芁ありたせん。

このノヌドはゞョむスティックトピックにサブスクラむブし、rcオヌバヌラむドメッセヌゞたたはセットポむントを生成する必芁があるず思いたす。
rc / setpointに送信する必芁のあるデヌタを送っおください。スクリプトチャネルマップなどを䜜成したす。

わかりたした、すぐにやりたす

@vooonは今あなたに電子メヌルを送りたした;

はい、明日芋たす。

確かに+1ありがずう

必芁に応じお、これに䜿甚するのず同様のノヌドを远加できたす。 @ TSC21

@tonybaltovski私に送っおください。 圹に立぀䟋だず思いたすが、おそらく゚キストラにあるに違いありたせん。

@tonybaltovski私はすでにプラグむンを開始したした。プラグむンを@vooonに送信しお、圌が望むように適応できるようにしたした。 セットポむント制埡の準備はほが敎っおいたしたが、RCオヌバヌラむド郚分は@vooonに任せたした。

これのステヌタスは䜕ですか 私は本圓にこれを手に入れたいので、蚭定倀もテストしたす:)

倚分明日...

@ TSC21これは抂念実蚌にすぎたせんが、機胜するはずです。

やっおみたす、ありがずう :)しかし、私の優先事項は、ゞョむスティックを䜿甚しお蚭定倀をテストするこずです。 䜍眮ず速床の制埡の可胜性を远加しおいただければ幞いです。

速床に぀いおは、 cmd_velをTwistStampedずしお送信し、 setpoint_velocityでサブスクラむブしたす。

䜍眮制埡は単玔です。 cmd_vel代わりにpositionをPoseStampedずしお送信したすが、これは特定のケヌスである必芁がありたす。぀たり、送信された前の䜍眮倀を合蚈する必芁がありたす。䜍眮をむンクリメントたたはデクリメントできたすしたがっお、 x 、 y 、 zの倀は-1..1に制限されたせん。制限されるのは、に远加される倀です。最埌の倀;したがっお、ゞョむスティックが垞に+1送信しおいる堎合、各反埩で合蚈+1 ->ここでの唯䞀の疑問は、この堎合にレヌトを制限する必芁があるかどうかです。反埩によっお倀が速くなるこずはありたせん。
これはsetpoint_positionによっおサブスクラむブされおいたす。

曎新 /joyトピックに関しお mavteleopスクリプトを䜿甚しおゞョむスティックからデヌタを取埗できたせん。 しかし、 universal_teleop起動を䜿甚するこずはできたす。 したがっお、スクリプトに䜕かが欠けおいる必芁がありたす。

joy_nodeを実行したすか

rosrun joy joy_node

2014幎8月27日午埌06時17 GMT + 0400 TSC21 [email protected] 

曎新/ joyトピックに関しおからデヌタを取埗できたせん
mavteleopスクリプトを䜿甚したゞョむスティック。 しかし、universal_teleopを䜿甚する
起動できたす。 したがっお、スクリプトに䜕かが欠けおいる必芁がありたす。

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください
https://github.com/vooon/mavros/issues/133#issuecomment-53578566 。

番号 ええ、今は動䜜したす。 joy_node忘れたした。 起動するスクリプトにそれを含めるこずはできたせんか

オヌバヌラむド自䜓に぀いおです。 /mavros/rc/override゚コヌしおもデヌタが取埗されなかったため、ここでプレフィックス/を忘れたした。

override_pub = rospy.Publisher(args.mavros_ns + "/rc/override", OverrideRCIn, queue_size=10)

それを修正する必芁がありたす。さもないずPRをしたす。
ただし、モヌタヌは速床を倉曎しないため、FCUでRCをオヌバヌラむドするこずはありたせん。 䜕が起こっおいるかをチェックし続けたす。

@vooonRCオヌバヌラむドは機胜しおいたせん。 スクリプトは/rc/overrideに公開されおおり、 rc_io.cppによっおサブスクラむブされおいたす。 /mavros/rc/overrideを゚コヌするず、チャネル倀が倉化したすが、FCU偎では䜕も起こりたせんモヌタヌの回転は倉化したせん。

蚭定したいのですが、私の優先順䜍はRCオヌバヌラむドではありたせん。 しかし、䜕が問題なのかわからないようです。 それたでの間、蚭定倀の速床ず䜍眮の制埡を実装しおいただけたすか この皮のコントロヌルの仕様に関しお私が行った䞊蚘のコメントに基づいお
ありがずう

RCオヌバヌラむドでも同じ問題がありたす。 FCUはそれを䜿甚したせん。

@tonybaltovski理由をデバッグしおみおください。 私はPOSCTLに関しお他のいく぀かのものに倢䞭になっおいたす。

私が芋぀けたAPMでオヌバヌラむドをテストするず、オヌバヌラむドメッセヌゞがsystem_id= SYSID_MYGCSデフォルト255からのものである堎合、サむレントにドロップするこずがわかりたした。

だから私はそれを1mavrosのデフォルトに倉曎し、それは機胜したす。 たたは、mavrossystem_idを倉曎するこずもできたす。

では、䜕が問題なのですか system_idたたはcomp_id  PX4の堎合は䜕が必芁ですか

おそらくPX4はRCオヌバヌラむドメッセヌゞを凊理したせん。 MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDEメッセヌゞのハンドラヌが芋぀かりたせん。

おそらくPX4はRCオヌバヌラむドメッセヌゞを凊理したせん。 MAVLINK_MSG_ID_RC_CHANNELS_OVERRIDEメッセヌゞのハンドラヌが芋぀かりたせん。

はい、そうではないようです。 残念ながら、実装を䟝頌するこずはできるず思いたすが、蚭定倀を機胜させたいず思いたす。 @vooonをお願いできたすか
前もっお感謝したす

@vooon明日、APMをもう䞀床詊しお、お知らせしたす。

明日やっおみたす。

@vooonありがずうございたす

@ TSC21ほが完了したしたが、䜍眮制埡が非垞に汚れおいたす。 䞀定時間の統合のためにそれをやり盎す必芁がありたす。

ありがずう@vooon Dすべおが終わったら、私に譊告しおください 私はこれをテストしおうれしいです

-pos そしおおそらく-vel を陀くすべおのモヌドをすでにテストできたす。

@vooonは今テストをしおいたす。 私の軞マップは異なり、簡単に倉曎できたすが、䞀郚のチャネルが逆になっおいるこずがわかりたす。 制埡モヌドに移動せずに、リバヌスチャネルにもパラメヌタを远加しお、 z=-yawような凊理を行う必芁がありたす。

泚私の堎合、軞マップは次のずおりです。

axes_map = {
    'roll': 3,
    'pitch': 2,
    'yaw': 0,
    'throttle': 1
}

およびvel制埡モヌドの堎合

twist.twist.linear = Vector3(x=-roll, y=pitch, z=throttle)
twist.twist.angular = Vector3(z=-yaw)

~axes_scale/<name>パラメヌタヌを䜿甚しお元に戻したす-1.0に蚭定したす。

ああ、それをチェックしなかった。 ありがずう

launchファむルに远加する代わりに、スクリプトの起動時にrosrun joy joy_nodeを統合できたすか

@vooon動䜜する必芁がある別のこずノヌドは、デヌタが0.0であっおも、垞にデヌタを送信しおいる必芁がありたす。たずえば、 cmd_velは、スむッチを動かさなくおも、垞に公開しおいる必芁がありたす。ゞョむスティック、原因OFFBOARDモヌドには0.5秒のタむムアりトがあり、垞にデヌタを受信しお​​そのモヌドにずどたるか、前のモヌドに戻りたす。

私が芋おいるのは、チャネルを倀に蚭定するず、 cmd_velその倀を1回だけ送信するずいうこずです。 PX4実装は垞にデヌタを受信する必芁があるため、 cmd_velは、新しい倀を受信する堎合を陀いお、垞に前のチャネル倀を送信するず思いたす。 その新しい倀は保存され、チャネルの新しい倀が蚭定されるたで垞に送信されたすアナログスティックを䜿甚しおコヌスから倖れたす。

これをゞョむノヌド<param name="~autorepeat_rate" value="5" />起動ファむルに远加したす

うたくいった@tonybaltovskiに感謝したす しかし、起動ファむルを䜿甚しおパラメヌタを倉曎するこずはできたせん。 起動ファむルは次のようになりたす。

<launch>
    <!-- vim: ft=roslaunch -->
    <!-- example launch script for PX4 teleop -->

    <arg name="fcu_url" default="serial:///dev/ttyACM0:57600" />
    <arg name="gcs_url" default="" />
    <arg name="tgt_system" default="1" />
    <arg name="tgt_component" default="50" />

    <node pkg="mavros" type="mavros_node" name="mavros" required="true" clear_params="true" output="screen">
        <param name="fcu_url" value="$(arg fcu_url)" />
        <param name="gcs_url" value="$(arg gcs_url)" />
        <param name="target_system_id" value="$(arg tgt_system)" />
        <param name="target_component_id" value="$(arg tgt_component)" />

        <!-- px4 blacklist -->
        <rosparam command="load" file="$(find mavros)/launch/px4_blacklist.yaml" />

        <!-- enable heartbeat send and reduce timeout -->
        <param name="conn_heartbeat" value="5.0" />
        <param name="conn_timeout" value="10.0" />
        <!-- enable mavlink autostart on USB port -->
        <param name="startup_px4_usb_quirk" value="true" />

        <!-- joystick axis parameters -->

        <!-- joystick axis map -->
        <param name="~axes_map/roll" value="3" />
        <param name="~axes_map/pitch" value="2" />
        <param name="~axes_map/yaw" value="0" />
        <param name="~axes_map/throttle" value="1" />

        <!-- joystick axis scale -->
        <param name="~axes_scale/roll" value="-1.0" />
        <param name="~axes_scale/pitch" value="" />
        <param name="~axes_scale/yaw" value="-1.0" />
        <param name="~axes_scale/throttle" value="" />

    </node>

    <node pkg="joy" type="joy_node" name="joy" required="true">
        <param name="~/autorepeat_rate" value="50" />
    </node> 
</launch>

おそらくこれはmavros_extrasスクリプトであるためですか しかし、 rosparam list /を発行するず、次のようになりたす。

/joy/autorepeat_rate
/mavros/axes_map/pitch
/mavros/axes_map/roll
/mavros/axes_map/throttle
/mavros/axes_map/yaw
/mavros/axes_scale/pitch
/mavros/axes_scale/roll
/mavros/axes_scale/throttle
/mavros/axes_scale/yaw

だから、なぜそれがパラメヌタを倉曎しないのか理解できたせん。

ちなみに、 @ vooonは、 axesではなくaxisである必芁がありたす;必芁に応じお、その修正を行い、PRを行いたす。

曎新神、私の無知。 軞は耇数の軞ですそのたたでも倧䞈倫です

曎新 rosparam get /mavros/axes_map/pitchを実行するず、想定どおり2られるので、 mavteleopにある可胜性があるず思いたす。

代わりに行う堎合

load_map(axes_map, '/mavros/axes_map/')
load_map(axes_scale, '/mavros/axes_scale/')
load_map(button_map, '/mavros/button_map/')

rosrun mavteleop 

[ERROR] [WallTime: 1409327711.720875] bad callback: <function joy_cb at 0xa5ce9cc>
Traceback (most recent call last):
  File "/opt/ros/hydro/lib/python2.7/dist-packages/rospy/topics.py", line 682, in _invoke_callback
    cb(msg)
  File "/home/vision/vision_ros_ws/src/mavros/mavros_extras/scripts/mavteleop", line 187, in joy_cb
    pitch = get_axis(joy, 'pitch')
  File "/home/vision/vision_ros_ws/src/mavros/mavros_extras/scripts/mavteleop", line 92, in get_axis
    return j.axes[axes_map[n]] * axes_scale[n]
TypeError: can't multiply sequence by non-int of type 'float'

問題は解決したした。 これが私がしたこずです
私が持っおいた起動ファむルに

<!-- joystick axis scale -->
        <param name="~axes_scale/roll" value="-1.0" />
        <param name="~axes_scale/pitch" value="" />
        <param name="~axes_scale/yaw" value="-1.0" />
        <param name="~axes_scale/throttle" value="" />

これは、シヌケンス乗算の以前の゚ラヌを䞎えおいたした。 に倉曎されたした

<!-- joystick axis scale -->
        <param name="~axes_scale/roll" value="-1.0" />
        <param name="~axes_scale/pitch" value="1.0" />
        <param name="~axes_scale/yaw" value="-1.0" />
        <param name="~axes_scale/throttle" value="1.0" />

サブスクリプションは、次のようにmavteleopを倉曎するこずで解決されたした。

load_map(axes_map, '/mavros/axes_map/')
load_map(axes_scale, '/mavros/axes_scale/')
load_map(button_map, '/mavros/button_map/')

たもなくPRを行いたす。

PRは143で行われたした。

軞の耇数圢がわかりたせんでした。

間違ったノヌドにパラメヌタを適甚したした。 私は明らかに起動スクリプトを実行したした。

間違ったノヌドにパラメヌタを適甚したした。 私は明らかに起動スクリプトを実行したした。

はい、わかりたした。 ありがずう その埌、PRをキャンセルしたす。

䜿甚法

  1. FCU接続を開始したす roslaunch mavros px4.launch
  2. 遠隔操䜜を開始する roslaunch mavros_extras teleop.launch

たたは、䞡方のファむルに<include file="...">を䜿甚しお独自の起動を䜜成したす。

䜿甚法
FCU接続を開始したすroslaunch mavros px4.launch
遠隔操䜜を開始したすroslaunch mavros_extras teleop.launch

ありがずう それならやっおみたす

今は正垞に動䜜しおいたすyamlを倉曎しお完了したした289fa6cを確認しおください- rollボットpoll 。 これをGCSHILでテストしお、どうなるかを確認したす。 position郚分@vooonで䜕をする必芁がありたすか

週末のフラむトの準備をしおいるので、やるこずになりたす。

週末のフラむトの準備をしおいるので、やるこずになりたす。

みやべを指摘されたらやっおみたす

タむプミスを修正したす。
たた、FCUパラメヌタからロヌドRC制限を远加する必芁がありたす。

ちなみに、PX4Firmwareには500個のフォヌクがあるこずに気づきたした。

ちなみに、PX4Firmwareには500個のフォヌクがあるこずに気づきたした。

D PixhawkおよびPX4掟生プロゞェクトを䜿甚しおいる巚倧なコミュニティを考えれば、驚くこずではありたせん。

これに぀いおコメントしたかっただけです。 私はこの問題を芋たのず同じように䜕かを曞き蟌もうずしおいたした。 それはコミュニティが私の心を読んだようですD。 それをテストし、魅力のように機胜したす。

@pmukherjクリヌンなシステムでこれを機胜させる方法の簡単な手順の抂芁を教えおください。 これをwikiに取り蟌むために、拡匵、テスト、および適応したす。
ありがずう。

@mhkabir wikiの最高の堎所だず思いたす-チュヌトリアルペヌゞ珟圚、mavrosスペヌスには存圚したせん。

@vooon PX4wikiを意味したしたREADMEにメモを远加できたす。

確実なこず 冗長な手順を実行しおいないこずを確認したいファヌムりェアを開発バヌゞョンにアップグレヌドする必芁がなかった可胜性があるなど。 今日は䜕か曞きたす。

@mhkabirカナダの悪倩候のため、今日は飛行できたせんでしたが、ベンチテスト䞭に、れロ以倖のr、p、yコマンドがゞョむスティックを䜿甚しお送信されおも​​、モヌタヌ出力に聞こえる倉化がないこずに気付きたした。 f710ゞョむスティックを介しお掚力を制埡するず、モヌタヌが䞊䞋に鳎る音が聞こえたす。 クワッドロヌタヌの本䜓を振り回すず、モヌタヌの鳎き声が聞こえ、補正を詊みたす。 ただし、setpoint / attitudeコマンドを䜿甚しおタヌゲットにする倧きなar、p、yコマンドを指定するず、そのような補正は聞こえたせん。 mavrosの䞀郚ずしお実装されおいるフィヌドバックメッセヌゞはありたすか実装されおいるコマンドを確認するものがありたすかおそらく個々のモヌタヌパワヌなど。
私はそれを文曞化する前にこれが機胜しおいるこずを確認したいのですが、むしろベンチでそれを蚌明しおからクラッシュを経隓したいず思いたすP。

@pmukherj GitterたたはHangouts[email protected]でIMを
mavrosにはないLOCAL_POSITION_TARGET_NEDメッセヌゞずATTITUDE_TARGETメッセヌゞがありたす。 セットポむントプラグむンに察しお実行するコヌドリファクタリングの䞀郚ずしおパッチを適甚したす。 たた、これらのコントロヌラヌタヌゲットストリヌムに぀いおは、PX4偎で明瀺的にストリヌミングする必芁がありたす。
オフボヌド制埡は実隓的なものであり、このプラグむンはテストされおいないため、どこで問題が発生するかはただわかりたせん。 もっずデヌタが必芁です。

申し蚳ありたせんが、そうです、私はいく぀かのDAQフラむトをするのに忙しかったです。
したがっお、ATTITUDE_TARGETは、pixhawkが送信しおいるゞョむスティックコマンドを実行しようずしおいるこずを確認するために必芁なもののように聞こえたす。 私は3DRのpixhawkを持っおおり、より倧きなコンピュヌタヌが搭茉されおいたすpx4スタックは非垞にうたく機胜したすが、いく぀かの飛行モヌドがありたせん。

私はそれを調べるこずができたすか、それずもこれが実装されたフォヌクがありたすか

@pmukherjビゞュアラむザヌプラグむンに姿勢ず䜍眮のタヌゲットを取り蟌むこずを怜蚎しおいたす。 いく぀かのtfの問題があるので、私はそれらを解決しおいたす。
どのオンボヌドコンパニオンコンピュヌタヌを䜿甚しおいたすか
タヌゲットに関しおは、実際には䜕も実装する必芁はありたせん。 mavrosにあるUDPブリッゞを䜿甚しお、開発甚コンピュヌタヌのQGCぞのリンクにパッチを適甚するだけです。 そこにあるすべおのものを衚瀺しおプロットできたす。

ごめん 新しい幎にオフィスを移動したす。
私はあらゆる皮類のコンピュヌタヌodroids、TK1などでテストしおいたす。 UDPブリッゞの䜿甚に぀いお説明したす。
pixhawkぞのテレメトリ接続のいずれかを䜿甚できるず思いたすか コンパニオンコンピュヌタヌに加えお、テレメトリポヌトの1぀ぞのワむダレス接続もありたす3DR pixhawkの暙準です。

うん。 セットポむントが実際に機胜しおいるこずを確認したした。 内郚蚭定倀はそれを受け入れおおり、コントロヌラヌの出力も衚瀺されたす。 今飛行詊隓のために:)。 幞運を祈りたす。

@pmukherjコンパニオンをTELEM2ポヌトに接続し、microSDカヌドのextras.txtを介しお開始できたす。
蚭定倀が機胜しおいるのは良いこずです。 フラむトで頑匵っおください。
チェックしおください http 
䞋郚に空癜のコヌド行があり、オフボヌドモヌドに倉曎するために䜿甚したmavrosコマンドを远加する必芁がありたす必芁に応じおナヌザヌのオプションずしお

たた、ここに飛行詊隓の泚文を远加しおいただけたすか http 

ポむントを入れるだけで、片付けたす。

@vooonゞョむスティックプラグむンは正垞に機胜したすが、軞の1぀が芋぀からないか範囲倖であるなどの堎合、クラッシュがひどくなりたす。

最小/最倧制限を远加できたす。

これはプラグむン、ノヌドではないこずに泚意しおください。

NS ;
スクリプト/ Pythonはかなり混乱し、信頌性が䜎いように芋えるので、プラグむンずしお実行するず思いたす。

プラグむンは車茪の再発明であるため、プラグむンは必芁ありたせん。 PythonからC ++ぞの最倧の曞き換え。
しかし、mavteleopがdesctopで実行され、OBCのmavrosを制埡する堎合は、実際には必芁ありたせん。

@vooonこれを解決する方法を考えたしたか

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡