python-3.x - 无法使用 ROS 消息发送 mavlink 消息以旋转云台
问题描述
我可以使用我在 pymavlink文档中找到的以下代码来旋转 typhoon480 的云台。
connection = mavutil.mavlink_connection('udpin:0.0.0.0:14540')
connection.wait_heartbeat()
connection.mav.command_long_send(connection.target_system, connection.target_component, mavutil.mavlink.MAV_CMD_DO_MOUNT_CONTROL, 1, pitch, roll, yaw, 0, 0, 0, mavutil.mavlink.MAV_MOUNT_MODE_MAVLINK_TARGETING)
connection.close()
但是,我正在开发一个基于 ROS 的项目,并且正在从 ROS 启动文件设置 UDP 连接,如下所示:
<arg name="fcu_url" default="udp-b://:14540@14548"/>
所以我确实需要从 python 代码建立一个 UDP 连接。我正在创建这样的心跳连接,并尝试将 mavlink 消息作为 ROS 消息发送,如下所示:
hb_mav_msg = mavutil.mavlink.MAVLink_heartbeat_message(mavutil.mavlink.MAV_TYPE_ONBOARD_CONTROLLER, 0, 0, 0, 0, 0)
gimbal_mav_msg=mavutil.mavlink.mav.command_long_send(mavutil.mavlink.target_system, mavutil.mavlink.target_component, mavutil.mavlink.MAV_CMD_DO_MOUNT_CONTROL, 1, pitch, roll, yaw, 0, 0, 0, mavutil.mavlink.MAV_MOUNT_MODE_MAVLINK_TARGETING)
gimbal_ros_msg = mavlink.convert_to_rosmsg(gimbal_mav_msg)
pub.publish(gimbal_ros_msg)
它给出了以下错误:
AttributeError: module 'pymavlink.dialects.v10.ardupilotmega' has no attribute 'mav'
解决方案
推荐阅读
- ios - Is there a way to request multiple distinct resources in parallel using URLSession.shared.dataTask
- groovy - Groovy 中的字符串插值与 Jenkins 流水线文件不起作用
- filter - FILTER 在 Google 表格中的范围大小不匹配
- javascript - 有没有办法使用自定义按钮在 Fullcalendar v4 中实现事件过滤器?
- python - 如何在不使用 Selenium 或任何其他第三方库的情况下控制 Web 组件?
- project.json - 访问 JSON 文件
- node.js - 做 fs.watch 直到它成功
- javascript - 表单 onsubmit 不执行功能
- excel - Excel在数字中显示零而没有错误
- websocket - 如何在芹菜任务中调用异步函数