案例要求
创建地图
./1-gmapping.sh
把多个launch文件融合在sh文件里面
rviz仿真
rviz是rose集成的可视化界面,查看机器人的各项数据,
保存地图
roslaunch robot_slam save_map.launch
坐标点定位
要让机器人移动到对应位置,给予坐标信息(X,Y,偏转角度),信息保存于multi_goal.launch
建图位置和起点位置要重合
小车的坐标系:X轴朝左,单位m
;Y轴朝上,单位m
;偏转角度逆时针为正,单位°
调用坐标点的命令:
navi.goto(goals[第几个坐标])
识别训练
分别打开两个终端启动两个launch文件
启动摄像头:
roslaunch usb_cam usb_cam-test.launch
启动识别文件:
rolaunch find_object_2d find_object_2d.launch
手动给图像做分类,z表示是命名名称
主逻辑理解
代码是
语音播报
使用os.system('mplayer %s' % music1_path)
这行代码,通过系统调用来执行mplayer命令并播放指定的音乐文件。music_path
指定了要播放的音乐文件路径
查看当前路径:pwd
语音播放识别成功:
没有听到声音:查看扬声器信道
没有运行成功:查看代码格式
可以用TTS文本转语音
模块匹配
self.find_sub = rospy.Subscriber('/object_position',Point,self.find_cb);
创建了一个订阅者(Subscriber),用于接受名为/object.position
的话题发布的geometry_msgs.msg.Point
类型的消息,并将其传递给self.find_cb方法进行处理。
rospy.Subscriber
:创建一个订阅者对象
'/object_position
:指令要订阅的话题名称
Point
:指令要订阅的消息类型,即geometry_msgs.msg.Point
'self.find_cb’是回调函数,当从/object_position话题接受到消息是,该函数将调用来处理接收到的消息
通过这行代码,节点将订阅/object_position话题,一旦有新的geometry_msgs.msg.Point类型的消息发布到该话题上,self.find_cb将会被调用来处理接收到的消息数据
列出当前系统中所有已发布和已订阅的话题:
rostopic list
查看名为 /object_position
的话题上的消息:
rostopic echo /object_position
启动摄像头和识别软件:
roslaunch usb_cam-test.launch
roslaunch find_object_2d find_object_2d.launch
代码具体含义:
二维码识别
代码具体含义:
多点导航