卓翼simulink控制源码
一、路径:droneyee_ws/src/ 下的功能包的作用
1、droneyee
包含无人机主要的起飞/降落的控制程序:Publisher的程序编写、matlab_udp的IP和串口号的定义和
- tello_takeoff_all.cpp
main中初始化了takeoff 12345678几个发布者节点,当主程序调用达到10次,通过takeoff 12345678节点 向话题“str_message”发布消息,消息内容通过msg消息类型在外部调用传入
- scrips/ROS2UDP.py 定义了matlab和ros连接
主函数try中调用UDP2ROS()初始化socket 注1:try的用法 注2:UDP服务器,其中matlab_ip、matlab_port由人为给定,便于drone连接,其中gemometry_msg,Twist,PoseStamped是ROS定义封装好的类名
#0. bind port and ip
UAV_NUM = 8
UAV_state = [[0.0] * 10] * UAV_NUM
s = list()
for i in range(UAV_NUM):
s_temp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#s_temp.bind(('127.0.0.1', 26000+i))
s.append(s_temp)
list()函数 写socket内容为九个状态数据,在经过struct.pack()函数打包到UAV_data里面
- UDP2ROS
1、启动optitrack
#roslaunch mocap_optitrack multi_rigidbody8.launch
#roslaunch vps_driver vps_driver.launch
roslaunch vrpn_client_ros sample.launch server:=192.168.101.17
- send data to matlab
roslaunch network_interface droneyee_vrpn_swarm_mocapCarsCopters.launch
#检查数据是否传输
rostopic list
rostopic echo /vrpn_client_node/droneyee1/pos_sync
2、启动tello_driver
roslaunch droneyee_driver droneyee_node_all6.launch
roscd droneyee_driver/launch
chmod +x droneyee_node_all6.launch
3、tello起飞
rosrun droneyee droneyee_takeoff_all
4、运行matlab程序
5、如果要降落
停止simulink运行
如果直接起飞降落,可以使用 rosrun droneyee droneyee_land_all 指令让 droneyee 降落。
看飞机位置
rostopic echo /bebop1/pos_sync