动捕系统、ROS、SIMULINK的通信

卓翼simulink控制源码

一、路径:droneyee_ws/src/ 下的功能包的作用
1、droneyee
包含无人机主要的起飞/降落的控制程序:Publisher的程序编写、matlab_udp的IP和串口号的定义和

  1. tello_takeoff_all.cpp

main中初始化了takeoff 12345678几个发布者节点,当主程序调用达到10次,通过takeoff 12345678节点 向话题“str_message”发布消息,消息内容通过msg消息类型在外部调用传入

  1. 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里面

  1. 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
  1. 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值