下载此文档

DJI RoboMaster竞赛机器人2020自组装版开发文档手册说明书.pdf


文档分类:行业资料 | 页数:约16页 举报非法文档有奖
1/16
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/16 下载此文档
文档列表 文档介绍
该【DJI RoboMaster竞赛机器人2020自组装版开发文档手册说明书 】是由【青山代下】上传分享,文档一共【16】页,该文档可以免费在线阅读,需要了解更多关于【DJI RoboMaster竞赛机器人2020自组装版开发文档手册说明书 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..:..竞赛机器人开发手册.....................................................................3文件目录.....................................................................3软件环境.....................................................................4编程规范.....................................................................4功能介绍.....................................................................5功能实现框架.................................................................6共15页第2页:..竞赛机器人开发手册Applicationgimbal_taskINS_taskchassis_taskcalibrate_taskdetect_taskled_taskoled_taskvolage_taskusb_taskservo_tasktest_taskreferee_taskStandardBSPDevicesAlgorithmOLEDBMI088IST8310AHRSBoardPIDADCBUZZERCANCRCDELAYFIFOFLASHIMUPWMFRICI2CLASERMATHLEDUSARTRCSPISERVO文件目录application::实现对底层封装,移植标准库需要重新实现这一层级3.:姿态解算算法以及DSP库4.:PID相关函数实现共15页第3页:..竞赛机器人开发手册BMI088和IST8310和OLED的驱动6.:CRC8,:::-ARM:::cubeMX自动生成的c文件Toolchain/IDEMDK--,采用自行实现的软件定时器实现,定时精度受任务调度影响共15页第4页:..:完成底盘的麦轮运动控制,底盘功率控制,提供4种控制模式:跟随云台角度闭环控制,跟随底盘角度闭环控制,底盘旋转无角度闭环控制,原生CAN控制。:根据数据反馈的时间戳来判断设备是否离线。:完成云台的角度控制。提供3种控制模式,陀螺仪角度控制,电机码盘角度控制,原生CAN控制。:完成陀螺仪加速度计的角度融合,解算欧拉角。:使用三色LED完成RGB显示,呼吸灯效。用于显示程序是否死机。:将电池电量,设备错误信息显示出来,方便使用者定位问题。:使用单字节解析裁判系统数据,适用于2019年裁判系统,裁判系统需要升级总决赛版本。:使用串口空闲中断函数,解析接收机发送的数据。:将4个空闲的PWM输出舵机信号,通过按键进行控制,方便之后添加弹仓控制或者简易的机械装置。:控制下供弹装置,完成发射逻辑。共15页第5页:..竞赛机器人开发手册电池在机器人内部,不方便观测电量的场合。全局变量通过指针传递的方式进行,减少extern使用,例如遥控器指针提供constRC_ctl_t*get_remote_control_point(void)返回遥控器常指针,在需要遥控器参数的任务中新建一个local_rc_ctrl的结构体指针,通过获取指针方式传递全局变量。所有的全局变量均在app层,方便人员查看参数,不需要跳转到其他层去寻找来源,驱动层和硬件层只提供处理函数以及硬件初始化功能函数。对于云台控制任务,底盘控制任务等,有对应的结构体控制变量集成所需要的变量,方便使用者查看。以下介绍一些常用任务实现流程图。,云台中值校准,底盘进入快速设置ID模式。模块离线判断任务主要通过判断模块的数据发送时间,与当前系统时间的差值来判断是否掉线。这两个任务都是主要通过指针函数来完成。共15页第6页:..,添加设备名字在errorList的最后,像enumerrorList{...XXX_TOE,//新设备ERROR_LIST_LENGHT,};,ime(离线时间),ime(上线时间),priority(优先级)参数uint16_tset_item[ERROR_LIST_LENGHT][3]={...{n,n,n},//XX_TOE};共15页第7页:..竞赛机器人开发手册data_is_error_fun,solve_lost_fun,solve_data_error_fun函数,,添加函数detect_hook(XXX_TOE).如果需要在校准任务中添加一个设备,可以按照下列步骤操作。,像typedefenum{...//addmore...CALI_XXX,CALI_LIST_LENGHT,}cali_id_e;,大小必须是4字节倍数,像typedefstruct{uint16_txxx;uint16_tyyy;fp32zzz;}xxx_cali_t;//长度:8字节8bytes,必须是4,8,12,16...(uint32_t*cali,bool_tcmd),添加新名字在申明变量xxx_cali_txxx_cail,添加变量地址在cali_sensor_buf[CALI_LIST_LENGHT]共15页第8页:..竞赛机器人开发手册添加数据长度,最后在cali_hook_fun[CALI_LIST_LENGHT]添加函数。对于云台和底盘采取两层分层结构,第一层是控制层,完成对不同控制目标的实现,第二层是行为层,对于不同的功能去实现对应的控制目标的设定。对于云台来讲具有三种控制模式:陀螺仪角度控制,编码器角度控制,原始CAN控制;具有六种行为模式:无力行为,初始化行为,校准行为,绝对角度控制行为,相对角度控制行为,静止位置行为。对于底盘来讲具有四种控制模式:跟随云台角度控制,跟随底盘角度控制,不跟随角度旋转控制,原始CAN控制;具有六种行为模式:无力行为,不移动行为,类步兵跟随云台行为,类工程跟随底盘角度行为,不跟随云台行为,开环行为。射击,底盘以及云台整体流程类似,故而框架流程如下图。共15页第9页:..竞赛机器人开发手册功能备注set_mode通过遥控器设置状态机mode_change状态机改变后更新的例如云台从陀螺仪切控制值换编码器的过程,需共15页第10页:..竞赛机器人开发手册值feedback_update反馈数据更新set_control设置控制量control_loop控制器计算can_sendCan发送指令对于云台来讲,如果要添加一个新的行为模式,,添加一个新行为名字在gimbal_behaviour_e中,erum{......GIMBAL_XXX_XXX,//新添加的}gimbal_behaviour_e,(fp32*yaw,fp32*pitch,gimbal_control_t*gimbal_control_set);参数是云台运动控制输入量第一个参数:'yaw'通常控制yaw轴移动,通常是角度增量,正值是逆时针运动,负值是顺时针共15页第11页:..竞赛机器人开发手册:'pitch'通常控制pitch轴移动,通常是角度增量,正值是逆时针运动,负值是顺时针在这个新的函数,,添加新的逻辑判断,给gimbal_behaviour赋值成GIMBAL_XXX_XXX在gimbal_behaviour_mode_set函数最后,添加然后选择一种云台控制模式GIMBAL_MOTOR_RAW:使用'yaw'and'pitch'作为电机电流设定值,:'yaw'and'pitch'是角度增量,:'yaw'and'pitch'是角度增量,,添加elseif(gimbal_behaviour==GIMBAL_XXX_XXX){gimbal_xxx_xxx_control(&rc_add_yaw,&rc_add_pit,gimbal_control_set);},,添加一个新行为名字在chassis_behaviour_e中共15页第12页:..竞赛机器人开发手册{......CHASSIS_XXX_XXX,//}chassis_behaviour_e,(fp32*vx,fp32*vy,fp32*wz,chassis_move_t*chassis)参数是底盘运动控制输入量第一个参数:'vx'通常控制纵向移动,正值前进,负值后退第二个参数:'vy'通常控制横向移动,正值左移,负值右移第三个参数:'wz'可能是角度控制或者旋转速度控制在这个新的函数,,添加新的逻辑判断,给chassis_behaviour_mode赋值成CHASSIS_XXX_XXX在函数最后,添加然后选择一种底盘控制模式4种:CHASSIS_VECTOR_FOLLOW_GIMBAL_YAW:'vx'and'vy'是速度控制,'wz'是角度控制云台和底盘的相对角度你可以命名成而不是'wz'共15页第13页:..竞赛机器人开发手册CHASSIS_VECTOR_FOLLOW_CHASSIS_YAW:'vx'and'vy''wz'是角度控制底盘的陀螺仪计算出的绝对角度你可以命名成CHASSIS_VECTOR_NO_FOLLOW_YAW:'vx'and'vy'是速度控制,'wz'是旋转速度控制CHASSIS_VECTOR_RAW:使用'vx''vy'and'wz'直接线性计算出车轮的电流值,,添加elseif(chassis_behaviour_mode==CHASSIS_XXX_XXX){chassis_xxx_xxx_control(vx_set,vy_set,angle_set,chassis_move_rc_to_vector);}OLEDOLED任务通过100Hz查询oled的I2C地址来确认连接情况,10Hz刷新OLED屏幕。,。共15页第14页:..竞赛机器人开发手册共15页第15页:..竞赛机器人开发手册共15页第16页

DJI RoboMaster竞赛机器人2020自组装版开发文档手册说明书 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数16
  • 收藏数0 收藏
  • 顶次数0
  • 上传人青山代下
  • 文件大小1.76 MB
  • 时间2024-04-13
最近更新