RflySimSDK v3.08
RflySimSDK说明文档
载入中...
搜索中...
未找到
RflyRosCtrlApi类 参考

RflyRosCtrlApi结构体类。提供了与无人机进行通信和控制的完整接口,支持多种通信模式,并集成了ROS系统 更多...

Public 成员函数

 __init__ (self, CopterID=1, ip='127.0.0.1', Com='udp', port=0)
 RflyRosCtrlApi的构造函数
 
 convert_to_payload64 (self, payload_bytes)
 将payload字节转换为Mavlink的payload64格式
 
 convert_to_rosmsg (self, mavmsg, header)
 将pymavlink消息转换为ROS的Mavlink消息
 
 arm_px4 (self, isArm)
 解锁或锁定PX4无人机
 
 fillList (self, data, inLen, fill=0)
 填充或截断列表,使其长度达到指定值

 
 InitMavLoop (self)
 初始化Mavlink连接,并启动Mavros
 
 SendMavArm (self, isArm)
 发送解锁或锁定命令到无人机
 
 initOffboard (self)
 初始化Offboard模式并发送初始命令
 
 OffboardLoop (self)
 持续发送Offboard命令以维持Offboard模式
 
 endOffboard (self)
 结束Offboard模式,停止相关线程,并关闭ROS2节点
 
 stopRun (self)
 停止运行,杀死子进程并提醒用户关闭所有终端窗口
 
 calcTypeMask (self, EnList)
 根据输入的启用列表计算Type Mask
 
 SendVelNED (self, vx=math.nan, vy=math.nan, vz=math.nan, yawrate=math.nan)
 发送NED(北、东、下)坐标系下的速度命令
 
 SendVelFRD (self, vx=math.nan, vy=math.nan, vz=math.nan, yawrate=math.nan)
 发送FRD(前、右、下)坐标系下的速度命令
 
 SendPosNED (self, x=math.nan, y=math.nan, z=math.nan, yaw=math.nan)
 发送NED坐标系下的位置命令
 
 SendPosVelNED (self, PosE=[math.nan] *3, VelE=[math.nan] *3, yaw=math.nan, yawrate=math.nan)
 发送NED坐标系下的位置和速度命令
 
 local_pose_callback (self, msg)
 处理本地位姿消息
 
 local_vel_callback (self, msg)
 处理本地速度消息
 
 mavros_state_callback (self, msg)
 处理Mavros状态消息
 
 imu_callback (self, msg)
 处理IMU消息
 
 gps_callback (self, msg)
 处理GPS消息
 
 q2yaw (self, q)
 从四元数计算偏航角
 
 q2Euler (self, q)
 从四元数计算欧拉角
 
 SendMavArm (self, isArm=0)
 发送解锁或锁定命令到无人机
 
 arm (self)
 解锁无人机
 
 disarm (self)
 锁定无人机
 
 offboard (self)
 切换飞行模式到Offboard模式
 
 yawSat (self, yaw)
 对偏航角进行限制,使其保持在[-π/2, π/2]范围内
 
 sendMavSetParam (self, param_id_str, param_value, param_type)
 设置MAVLink参数
 
 SendMavCmdLong (self, command, param1=0, param2=0, param3=0, param4=0, param5=0, param6=0, param7=0)
 发送长命令到飞行控制器
 
 SendHILCtrlMsg (self, ctrls=[0] *16, idx=0)
 发送HIL(硬件在环)控制消息到Pixhawk,这些消息会转化为uORB消息rfly_ctrl
 

Public 属性

 isCom
 用于标识当前通信模式是否为串口模式
 
 Com
 存储传入的通信模式参数
 
 baud
 波特率,默认设置为115200
 
 ip
 存储数据发送的IP地址
 
 CopterID
 无人机的ID号,用于区分不同的无人机
 
 port
 端口号,默认根据CopterID计算而得
 
 rosName
 
 ComName
 
 imu
 存储无人机的IMU数据
 
 gps
 存储无人机的GPS数据
 
 local_pose
 存储无人机的本地位姿数据
 
 mavros_state
 存储无人机的当前状态信息
 
 current_heading
 存储无人机当前的航向角信息
 
 local_vel
 存储无人机的本地速度数据
 
 arm_state
 表示无人机的解锁/上锁状态
 
 offboard_state
 表示无人机是否处于Offboard模式
 
 received_imu
 表示是否接收到IMU数据
 
 frame
 定义数据坐标系的参考框架
 
 state
 存储自定义状态信息
 
 command
 存储速度控制命令
 
 offCmd
 存储位置控制命令
 
 isInOffboard
 表示是否处于Offboard模式中
 
 uavAngEular
 存储无人机的欧拉角信息
 
 uavAngRate
 存储无人机的角速度信息
 
 uavPosNED
 存储无人机的本地NED坐标系位置信息
 
 uavVelNED
 存储无人机的本地NED坐标系速度信息
 
 uavAngQuatern
 存储无人机的四元数姿态信息
 
 count
 计数器,初始化为0
 
 countHil
 HIL(硬件在环)模式的计数器,初始化为0
 
 local_pose_sub
 
 local_vel_sub
 
 mavros_sub
 
 gps_sub
 
 imu_sub
 
 vel_pub
 
 vel_raw_pub
 
 mav_raw_pub
 
 armService
 
 flightModeService
 
 setparamService
 
 sendCmdLongService
 
 ros_node
 
 executor
 
 t1
 
 f
 
 mav0
 
 tgtSys
 
 child
 
 t2
 

详细描述

RflyRosCtrlApi结构体类。提供了与无人机进行通信和控制的完整接口,支持多种通信模式,并集成了ROS系统

创建一个通信实例
ID: 表示飞机的CopterID号。按平台规则,port=20100+CopterID*2-2。
ip: 数据向外发送的IP地址。默认是发往本机的127.0.0.1的IP;在分布式仿真时,也可以指定192.168打头的局域网电脑IP;也可以使用255.255.255.255的广播地址(会干扰网络其他电脑)
Com: 与Pixhawk的连接模式。
    Com='udp',表示使用默认的udp模式接收数据,这种模式下,是接收CopterSim转发的PX4的MAVLink消息(或UDP_full,simple)消息包
             使用port+1端口收和port端口发(例如,1号飞机是20101端口收,20100端口发,与CopterSim对应)。
    Com='COM3'(Widnows下)或 Com='/dev/ttyUSB0'(Linux系统,也可能是ttyS0、ttyAMA0等),表示通过USB线(或者数传)连接飞控,使用默认57600的波特率。注意:波特率使用port口设置,默认port=0,会重映射为57600

port: UDP模式下默认情况下设为0,会自动根据IP填充,按平台规则,port=20100+CopterID*2-2。如果这里赋值大于0,则会强制使用port定义的端口。
      COM模式下,Port默认表示波特率self.baud=port。如果port=0,则会设置self.baud=57600


接口示例:
UDP模式
PX4MavCtrler(1) # 默认IP
PX4MavCtrler(1,'192.168.31.24') # 指定IP,用于远程控制

串口模式
PX4MavCtrler(1,'127.0.0.1','com1',57600) # 指定串口,并设置波特率

构造及析构函数说明

◆ __init__()

__init__ ( self,
CopterID = 1,
ip = '127.0.0.1',
Com = 'udp',
port = 0 )

RflyRosCtrlApi的构造函数

参数
初始化传输模式,波特率,ip等等参数

分为ros1和ros2两种,定义一些ROS系统中的服务、订阅和发布

成员函数说明

◆ arm()

arm ( self)

解锁无人机

  • 参数
    返回
    是否解锁成功
+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ arm_px4()

arm_px4 ( self,
isArm )

解锁或锁定PX4无人机

-

参数
isArm是否解锁
返回
上锁或者解锁的结果
+ 这是这个函数的调用关系图:

◆ calcTypeMask()

calcTypeMask ( self,
EnList )

根据输入的启用列表计算Type Mask

-

参数
EnList启用列表
返回
掩膜类型
+ 这是这个函数的调用关系图:

◆ convert_to_payload64()

convert_to_payload64 ( self,
payload_bytes )

将payload字节转换为Mavlink的payload64格式

-

参数
payload_bytes输入的payload字节
返回
返回Mavlink.payload64格式的payload
Convert payload bytes to Mavlink.payload64
+ 这是这个函数的调用关系图:

◆ convert_to_rosmsg()

convert_to_rosmsg ( self,
mavmsg,
header )

将pymavlink消息转换为ROS的Mavlink消息

-

参数
mavmsgpymavlink消息
headerROS消息头
返回
mav_raw Mavlink消息
Convert pymavlink message to Mavlink.msg

Currently supports MAVLink v1.0 only.
+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ disarm()

disarm ( self)

锁定无人机

  • 参数
    返回
    上锁成功
+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ endOffboard()

endOffboard ( self)

结束Offboard模式,停止相关线程,并关闭ROS2节点

-

参数
返回
+ 这是这个函数的调用关系图:

◆ fillList()

fillList ( self,
data,
inLen,
fill = 0 )

填充或截断列表,使其长度达到指定值

-

参数
data输入列表
inLen输出列表的长度
fill(默认为0) 填充的值
返回
填充或截断后的列表
+ 这是这个函数的调用关系图:

◆ gps_callback()

gps_callback ( self,
msg )

处理GPS消息

  • 参数
    msgGPS消息
    返回

◆ imu_callback()

imu_callback ( self,
msg )

处理IMU消息

  • 参数
    msgIMU消息
    返回
+ 函数调用图:

◆ InitMavLoop()

InitMavLoop ( self)

初始化Mavlink连接,并启动Mavros

-

参数
返回

◆ initOffboard()

initOffboard ( self)

初始化Offboard模式并发送初始命令

-

参数
返回
+ 函数调用图:

◆ local_pose_callback()

local_pose_callback ( self,
msg )

处理本地位姿消息

  • 参数
    msg位姿消息
    返回
+ 函数调用图:

◆ local_vel_callback()

local_vel_callback ( self,
msg )

处理本地速度消息

  • 参数
    msg速度消息
    返回

◆ mavros_state_callback()

mavros_state_callback ( self,
msg )

处理Mavros状态消息

  • 参数
    msg状态消息
    返回

◆ offboard()

offboard ( self)

切换飞行模式到Offboard模式

  • 参数
    返回
    是否进入offboard模式
+ 这是这个函数的调用关系图:

◆ OffboardLoop()

OffboardLoop ( self)

持续发送Offboard命令以维持Offboard模式

-

参数
返回
+ 这是这个函数的调用关系图:

◆ q2Euler()

q2Euler ( self,
q )

从四元数计算欧拉角

  • 参数
    q四元数
    返回
    滚转角、俯仰角、偏航角
+ 这是这个函数的调用关系图:

◆ q2yaw()

q2yaw ( self,
q )

从四元数计算偏航角

  • 参数
    q四元数
    返回
+ 这是这个函数的调用关系图:

◆ SendHILCtrlMsg()

SendHILCtrlMsg ( self,
ctrls = [0]*16,
idx = 0 )

发送HIL(硬件在环)控制消息到Pixhawk,这些消息会转化为uORB消息rfly_ctrl

参数
ctrls16个控制量
idx(默认值为0) 0-3,用于选择不同的uORB消息rfly_ctrl,rfly_ctrl1,rfly_ctrl2,rfly_ctrl
  • 0表示rfly_ctrl消息
  • 1表示rfly_ctrl1消息
  • 2表示2表示rfly_ctrl2消息
  • 3表示rfly_ctrl消息
返回
 Send hil_actuator_controls command to PX4, which will be transferred to uORB message rfly_ctrl
https://mavlink.io/en/messages/common.html#HIL_ACTUATOR_CONTROLS
+ 函数调用图:

◆ SendMavArm() [1/2]

SendMavArm ( self,
isArm )

发送解锁或锁定命令到无人机

-

参数
isArm是否解锁
返回
是否发送成功
+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ SendMavArm() [2/2]

SendMavArm ( self,
isArm = 0 )

发送解锁或锁定命令到无人机

  • 参数
    isArm(默认值为0) 是否解锁
    返回
+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ SendMavCmdLong()

SendMavCmdLong ( self,
command,
param1 = 0,
param2 = 0,
param3 = 0,
param4 = 0,
param5 = 0,
param6 = 0,
param7 = 0 )

发送长命令到飞行控制器

参数
command命令
param1(默认值为0) 参数1
param2(默认值为0) 参数2
param3(默认值为0) 参数3
param4(默认值为0) 参数4
param5(默认值为0) 参数5
param6(默认值为0) 参数6
param7(默认值为0) 参数7
返回
+ 这是这个函数的调用关系图:

◆ sendMavSetParam()

sendMavSetParam ( self,
param_id_str,
param_value,
param_type )

设置MAVLink参数

参数
param_id_str参数ID
param_value参数值
param_type参数类型
返回
+ 这是这个函数的调用关系图:

◆ SendPosNED()

SendPosNED ( self,
x = math.nan,
y = math.nan,
z = math.nan,
yaw = math.nan )

发送NED坐标系下的位置命令

  • 参数
    x(默认值为nan) x方向位置
    y(默认值为nan) y方向位置
    z(默认值为nan) z方向位置
    yaw(默认值为nan) 偏航角
    返回
+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ SendPosVelNED()

SendPosVelNED ( self,
PosE = [math.nan]*3,
VelE = [math.nan]*3,
yaw = math.nan,
yawrate = math.nan )

发送NED坐标系下的位置和速度命令

  • 参数
    PosE(默认值为[nan]*3) 位置
    VelE(默认值为[nan]*3) 速度
    yaw(默认值为nan) 偏航角
    yawrate(默认值为nan) 偏航角速率
    返回
+ 函数调用图:

◆ SendVelFRD()

SendVelFRD ( self,
vx = math.nan,
vy = math.nan,
vz = math.nan,
yawrate = math.nan )

发送FRD(前、右、下)坐标系下的速度命令

  • 参数
    vx(默认值为nan) x方向速度
    vy(默认值为nan) y方向速度
    vz(默认值为nan) z方向速度
    yawrate(默认值为nan) 偏航角速率
    返回
+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ SendVelNED()

SendVelNED ( self,
vx = math.nan,
vy = math.nan,
vz = math.nan,
yawrate = math.nan )

发送NED(北、东、下)坐标系下的速度命令

  • 参数
    vx(默认值为nan) x方向速度
    vy(默认值为nan) y方向速度
    vz(默认值为nan) z方向速度
    yawrate(默认值为nan) 偏航角速率
    返回
+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ stopRun()

stopRun ( self)

停止运行,杀死子进程并提醒用户关闭所有终端窗口

-

参数
返回
+ 这是这个函数的调用关系图:

◆ yawSat()

yawSat ( self,
yaw )

对偏航角进行限制,使其保持在[-π/2, π/2]范围内

  • 参数
    yaw偏航角
    返回
    矫正后的偏航角
+ 这是这个函数的调用关系图:

类成员变量说明

◆ arm_state

arm_state

表示无人机的解锁/上锁状态

◆ baud

baud

波特率,默认设置为115200

◆ Com

Com

存储传入的通信模式参数

◆ command

command

存储速度控制命令

◆ CopterID

CopterID

无人机的ID号,用于区分不同的无人机

◆ count

count

计数器,初始化为0

◆ countHil

countHil

HIL(硬件在环)模式的计数器,初始化为0

◆ current_heading

current_heading

存储无人机当前的航向角信息

◆ frame

frame

定义数据坐标系的参考框架

◆ gps

gps

存储无人机的GPS数据

◆ imu

imu

存储无人机的IMU数据

◆ ip

ip

存储数据发送的IP地址

◆ isCom

isCom

用于标识当前通信模式是否为串口模式

◆ isInOffboard

isInOffboard

表示是否处于Offboard模式中

◆ local_pose

local_pose

存储无人机的本地位姿数据

◆ local_vel

local_vel

存储无人机的本地速度数据

◆ mavros_state

mavros_state

存储无人机的当前状态信息

◆ offboard_state

offboard_state

表示无人机是否处于Offboard模式

◆ offCmd

offCmd

存储位置控制命令

◆ port

port

端口号,默认根据CopterID计算而得

◆ received_imu

received_imu

表示是否接收到IMU数据

◆ state

state

存储自定义状态信息

◆ uavAngEular

uavAngEular

存储无人机的欧拉角信息

◆ uavAngQuatern

uavAngQuatern

存储无人机的四元数姿态信息

◆ uavAngRate

uavAngRate

存储无人机的角速度信息

◆ uavPosNED

uavPosNED

存储无人机的本地NED坐标系位置信息

◆ uavVelNED

uavVelNED

存储无人机的本地NED坐标系速度信息


该类的文档由以下文件生成: