驱动层程序包括无人机驱动及无人车驱动,程序放置于Sunray_swarm/sunray_drivers
文件夹中。
rmtt_driver
无人机驱动程序放置在Sunray_swarm/sunray_drivers/rmtt
文件夹中,无人机驱动节点启动文件截取如下:
<arg name="local_ip" default="192.168.25.59" />
<!-- 第1台无人机 -->
<group ns="/sunray_swarm/rmtt_1">
<node pkg="rmtt_driver" name="rmtt_driver" type="rmtt_node.py" output="screen">
<param name="drone_sn" type="string" value="0TQZM47CNT046P" />
<param name="drone_ip" type="string" value="192.168.25.95" />
<param name="drone_port" type="string" value="8889" />
<param name="local_ip" type="string" value="$(arg local_ip)" />
<param name="local_port" type="string" value="8890" />
<param name="video_port" type="string" value="11111" />
<param name="enable_camera" type="bool" value="true" />
</node>
</group>
启动参数
drone_sn
,该SN号可以在无人机电池槽中查看获得drone_ip
,即无人机连接至指定局域网中的IPlocal_ip
为运行sunray_swarm程序的电脑IP地址drone_port
是驱动程序发送控制指令至无人机的端口号local_port
是驱动程序从无人机端接收状态的端口号video_port
是无人机发送视频流至驱动程序的端口号enable_camera
代表是否启动摄像头rmtt_driver
发布的话题
~battery
(std_msgs/Float32
):无人机电池电量~image_raw
(sensor_msgs/Image
):图像话题~image_raw/compressed
(sensor_msgs/CompressedImage
)压缩的图像话题~camera_info
(sensor_msgs/CameraInfo
) 相机信息rmtt_driver
订阅的话题
~cmd_vel
(geometry_msgs/Twist
)机体系速度控制指令,起飞后才会生效~takeoff
(std_msgs/Empty
)起飞指令~land
(std_msgs/Empty
)降落指令~led
(std_msgs/ColorRGBA
) LED灯颜色~mled
(std_msgs/String
)点阵屏的字符rmtt_driver
提供的服务
~set_downvision
(std_srvs/SetBool
)切换相机wheeltec_robot_node
Sunray_swarm/sunray_drivers/wheeltec
文件夹中wheeltec_robot_node
运行在无人车车载电脑中,无人车底层控制器与车载电脑通过USB线连接,通信方式为串口通信,目前wheeltec_robot_node
与ugv_control_node
通信的方式为ROS多机,后期可以改为TCP通信<group>
<!-- 开启底层单片机控制节点 -->
<node pkg="turn_on_wheeltec_robot" type="wheeltec_robot_node" name="wheeltec_robot_node" output="screen">
<remap from="/cmd_vel" to="/sunray_swarm/wheeltec_$(arg ugv_id)/cmd_vel"/>
<remap from="/PowerVoltage" to="/sunray_swarm/wheeltec_$(arg ugv_id)/battery"/>
<param name="usart_port_name" type="string" value="/dev/ttyACM0"/>
<param name="serial_baud_rate" type="int" value="115200"/>
</node>
</group>
wheeltec_robot_node
参数
usart_port_name
: 无人车与车载电脑的端口号serial_baud_rate
: 串口通信波特率wheeltec_robot_node
发布的话题
~battery
(std_msgs/Float32
):无人车电池电量wheeltec_robot_node
订阅的话题
~cmd_vel
(geometry_msgs/Twist
)无人车车体系速度控制指令,注:收不到指令无人机就不会移动