赞
踩
小车yolo机械臂(一)ros下gazebo搭建小车(可键盘控制)安装摄像头仿真 加载yolo检测识别标记物体
小车yolo机械臂(二)机械臂仿真 ros下从xacro模型文件搭建Moveit!+Gazebo仿真系统
小车yolo机械臂(三)ROS消息订阅监听 rospy.Subscriber 订阅监听yolo python实现订阅/darknet_ros/bounding_boxes topic
小车yolo机械臂(四)python ros 和darknet_ros 使用launch文件启动脚本
小车yolo机械臂(五)让小车在命令下运动起来 rostopic pub /cmd_vel geometry_msgs/Twist
小车yolo机械臂(六)ros gazebo 小车摄像头根据darknet_ros中yolo目标检测的信息进行自主运动
小车yolo机械臂(七)小车与机械臂融合,并控制机械臂运动 gazebo control
小车yolo机械臂(八)ros小车和机械臂gazebo仿真,机械臂根据darknet_ros中yolo检测结果来自动运动 python实现
在之前的几篇博客中,小车已经可以通过键盘控制,但是,我们最后要实现的是小车根据自己所看到的来做出运动判断,机械臂也要根据所看到的来做出运动判断,期间不能有人工参与。
所以我们现在要做的就是用命令让小车动起来,然后再将命令嵌入python中,什么时候让小车运动,由python程序决定。
(五)turtlebot3用代码控制机器人直线及圆弧运动(/cmd_vel geometry_msgs/Twist的使用)
roslaunch mrobot_gazebo my_gazebo3.launch
我们查看当前有哪些tipic,再从中找到控制小车运动的topic
rostopic list
这里有很多话题,具体选那个,查阅众多资料,发现和控制运动有关的话题是/cmd_vel
同样,我们可以打开mrobot_gazebo/urdf下的my_gazebo_robot_car.urdf.xacro
可以看到其中有一句:
<commandTopic>cmd_vel</commandTopic>
也可以看出控制小车运动的话题就是cmd_vel
下一步,控制小车运动的命令
在终端中,输入:
rostopic info /cmd_vel
这里的type就是 Type: geometry_msgs/Twist
所以最后的控制命令就是:
rostopic pub /cmd_vel geometry_msgs/Twist
最后还差命令的数据,我们通过键盘控制可以看到命令数据的格式
在终端输入:
roslaunch mrobot_teleop mrobot_teleop.launch
同时执行:
rostopic echo /cmd_vel
所以小车的运动命令数据格式是:
linear:
x: 0.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0
最后的命令:
rostopic pub /cmd_vel geometry_msgs/Twist '{linear: {x: 0.1, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0}}'
可以看到小车已经开始动了,但是它一直不停。
在执行命令的时候,我们加一个 -1
rostopic pub -1 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.1, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0}}'
-1只发布一次消息
但是小车还是一直在动,估计是没有摩擦力的原因,后续再修改。
也可以再发一次命令:
rostopic pub -1 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.0, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0}}'
里面的值全0,这样的话,小车就可以停止。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。