ã€ã³ããŠã³ãã RCãªãŒããŒã©ã€ãéšåã§ããã€ãã®å©ããå¿ èŠã«ãªããŸãã
ãã©ã°ã€ã³ã§ã¯ãªãã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ã§è¡ãããŸããã
軞ã®è€æ°åœ¢ãããããŸããã§ããã
ééã£ãããŒãã«ãã©ã¡ãŒã¿ãé©çšããŸããã ç§ã¯æããã«èµ·åã¹ã¯ãªãããå®è¡ããŸããã
https://github.com/vooon/mavros/commit/289fa6c18113f6c0c1e1764cf4e5c37fd5abf9e2
ïŒPRã®åã«éå§ïŒã
ééã£ãããŒãã«ãã©ã¡ãŒã¿ãé©çšããŸããã ç§ã¯æããã«èµ·åã¹ã¯ãªãããå®è¡ããŸããã
ã¯ããããããŸããã ããããšãïŒ ãã®åŸãPRããã£ã³ã»ã«ããŸãã
䜿çšæ³ïŒ
roslaunch mavros px4.launch
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ããã解決ããæ¹æ³ãèããŸãããïŒ
æãåèã«ãªãã³ã¡ã³ã
@vooonã¯ä»ãã¹ããããŠããŸãã ç§ã®è»žãããã¯ç°ãªããç°¡åã«å€æŽã§ããŸãããäžéšã®ãã£ãã«ãéã«ãªã£ãŠããããšãããããŸãã å¶åŸ¡ã¢ãŒãã«ç§»åããã«ããªããŒã¹ãã£ãã«ã«ããã©ã¡ãŒã¿ãè¿œå ããŠã
z=-yaw
ãããªåŠçãè¡ãå¿ èŠããããŸãã泚ïŒç§ã®å Žåã軞ãããã¯æ¬¡ã®ãšããã§ãã
ããã³velå¶åŸ¡ã¢ãŒãã®å ŽåïŒ