ROS智能小车的人跟踪跟随

                                                        已经实现的功能点

  0:识别人

 1:设定某个人,镜头对人上半身,识别人的正面和背面,同时支持正面和背面行走(人走的时候,支持从正面转到背面,也支持背面转到正面)

 2:在人少的地方(室内/室外)可以跟随人走(人面部对小车时候,人移动,小车移动。人背部对小车,小车为跟着走方式),人移动,小车也跟着相应的移动(前,后,左,右移动)

 3:可以设定小车和人之间的主要两个距离,近距离(50厘米内),为停止,远距离(大于50厘米)为移动

 4:本次测试主要的距离是人和小车在1.2米范围内(也可以支持1.2米距离外的跟随)。

 5:可以设定小车的移动速度

 6:主界面(脚本实现),流程参照本章 第5点,自动化

智能小车人跟踪跟随行走

                                             具体操作   

 1:开始跟随(不含录屏:弹出一个窗口。是opencv的终端,显示小车前面看到的视频同时,显示 单目的时间和距离 数据)

   2:开始跟随(含录屏,弹出一个窗口。是opencv的终端,显示小车前面看到的视频,不显示单目的时间和距离 数据)

   3:设置小车速度

   4:设置近距离

   5:退出

                                               主要技术

   1:采用单目相机实现方式

   2:神经网络采用TENSORFLOW  OR  PYTORCH

   3:上位机主要采用英伟达JESTON NANO 

   4:完全满足及实现上面需求

                                            目标跟随任务

简介: 通过特定方式选择目标(手动选择区域或识别标识板), 上位机(手机、显示屏、远程服务器)设置跟踪距离,小车根据目标位置和距离执行跟随任务。

  1. 启动和停止

小车上电后静止,由上位机发布启动事件,小车判断视区是否存在合法目标,通过单目摄像头测量目标距离,根据距离位置发布小车移动指令。需要停止跟随时, 1:近距离停止模式(系统设定)

2:通过上位机下发停止指令,小车进入待命状态。

2. 视觉识别要求

设定跟随目标后,要求跟随目标主要在1.2米内进行测试,目标轮廓清晰,目标上身尽量颜色统一

3.速度要求

跟随目标速度不能大于小车最大移动速度,转向速度不能超过小车自转速度,目标丢失后,小车原地静止待命,直到目标回到视觉范围内再次执行跟随任务。

4. 场地要求

场地环境需要明亮无障碍物遮挡,地面需要平整,具体适用场景需要根据测试情况观察。

5自动化

  1:程序启动后,立刻进入识别人的模式(弹出一个窗口。是opencv的终端)。

  2:系统自动识别人后,弹出确认窗口

  3:弹出窗口有,确定(开始行走) 和 取消(进入程序主界面) 按钮

  4:如果没有按 确定 和  取消  操作。5秒后,自动开启跟随模式

6. 非功能性需求

5.1界面操作需求

5.2性能需求

5.3安全性需求

电子设计校内选拔赛,智能随动小车代码 //按下“运动测试”按键,小车能够依次连续执行前进、后退、左拐 弯、右拐弯、原地左转、原地右转的动作各5秒。 //(2)小车能够测量前方物体的距离,并通过显示屏实时显示距离。 //(3)小车前方放置一个平面物体(如书本、木板),平面朝向小车前方。 小车能自动与物体保持一定距离,当物体前后移动时,小车也能跟 随移动。当实际距离与设定的跟随距离的差值大于5cm时,小车会发出 声光提示。 //02过冲 //(4)初始状态下让小车与前方物体相距2m,然后进入跟随模式,跟随距离 设定为20cm ,记录小车从初始状态到与物体 稳定地相距20cm所用的时 间t(单位为秒)。测试3次,取最短的时间。 //距离235,过冲后退 2. 发挥部分 //(1)小车具有测速功能,显示屏实时显示小车当前速度(圈/秒)。 //(2)无线通信功能,小车能把距离、速度等信息无线发送到另一个装置可以 是电脑、手机、另一个单片机等)。装置C 可无线发送命令让小车执行不 同的动作模式。 (3)小车可通过按键设置执行跟随功能模式。测试者把书本或木板在小 车前方前后移动,小车跟随,当测试者把手掌面对小车前方前后移动, 小车会自动跟随。 (4)小车具有自动寻跟随功能。当体(手掌)不在小车前方,小车能自 动原地旋转,直到检测到体,然后自动跟随体。
### 基于 ROS智能小车设计实现方案 #### 1. ROS智能小车中的作用 ROS(Robot Operating System)作为机器开发的重要工具,在智能小车的设计中扮演着核心角色。它不仅为开发者提供了一套标准化的框架,还集成了丰富的库和工具来简化复杂的机器功能开发过程[^1]。 #### 2. 智能小车的功能模块划分 在基于 ROS 开发智能小车时,通常会将其功能划分为以下几个主要模块: - **传感器数据处理** 使用激光雷达、摄像头或其他传感器获取环境信息,并利用 ROS 提供的相关包(如 `laser_scan_matcher` 或 `image_pipeline`)对这些数据进行预处理和分析。 - **路径规划与导航** 结合 SLAM(Simultaneous Localization and Mapping)技术完成地图构建以及全局/局部路径规划。常用的 ROS 软件包有 `gmapping` 和 `move_base`。 - **运动控制** 针对具体硬件平台编写驱动程序并定义动作接口;通过计算所需时间等方式精确控制车辆移动方向与速度[^3]。 - **机交互界面** 构建图形化操作面板让用户更方便地监控状态或发送指令给设备运行指定任务。 #### 3. Fast-DDS 平台的作用 为了确保不同节点间高效可靠的通讯机制,在最新版本 ROS2 中引入了 Fast-DDS 技术作为底层传输协议解决方案之一。该方法具备低延迟特点的同时还能满足实时性需求较高的应用场景要求[^2]。 #### 4. 示例代码展示 以下是关于如何让一个小车按照预定轨迹行驶的一段简单 Python 实现片段: ```python import rospy from geometry_msgs.msg import Twist def move(): # 初始化节点 rospy.init_node('robot_mover', anonymous=True) velocity_publisher = rospy.Publisher('/cmd_vel', Twist, queue_size=10) vel_msg = Twist() speed = input("Set your linear speed:") distance = input("Type your distance:") isForward = input("Foward?: ")==1 # 设置线性和角速度参数 if (isForward): vel_msg.linear.x = abs(speed) else: vel_msg.linear.x = -abs(speed) rate = rospy.Rate(10) # 发布频率设为10Hz current_distance = 0 t0 = rospy.Time.now().to_sec() while(current_distance < distance): velocity_publisher.publish(vel_msg) t1=rospy.Time.now().to_sec() current_distance= speed*(t1-t0) rate.sleep() if __name__ == '__main__': try: move() except rospy.ROSInterruptException: pass ``` 此脚本允许用户输入期望的速度值及前进的距离长度,并据此调整实际执行过程中所持续的时间长短以便达到预期效果。 ---
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值