100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > ubuntu16.04ROS学习(二)smartcar仿真--键盘控制

ubuntu16.04ROS学习(二)smartcar仿真--键盘控制

时间:2021-05-25 02:19:25

相关推荐

ubuntu16.04ROS学习(二)smartcar仿真--键盘控制

文章学习链接:(/hcx25909)

(/hyhop150/article/details/51503243)

使用python代码实现控制小车运动

1.创建功能包

catkin_create_pkg smartcar_teleop rospy geometry_msgs std_msgs roscpp

Robot的移动控制主要是通过 Twist 结构来实现的,因此想要用Python实现SmartCar的移动控制仿真,我们可以将 Twist 下的数据封装到一个节点再通过 Publisher 发布成一个Topic从而达到控制的效果。在 smartcar_teleop/src下,文件夹名可以自定义,原因可以看看 CMakList 的实现)编写 Python 文件 teleop.py:

#!/usr/bin/env pythonimport roslib; roslib.load_manifest('smartcar_teleop')import rospyfrom geometry_msgs.msg import Twistfrom std_msgs.msg import Stringclass Teleop:def __init__(self):pub = rospy.Publisher('cmd_vel', Twist)rospy.init_node('smartcar_teleop')rate = rospy.Rate(rospy.get_param('~hz', 1))self.cmd = Nonecmd = Twist()cmd.linear.x = 0.2cmd.linear.y = 0cmd.linear.z = 0cmd.angular.z = 0cmd.angular.z = 0cmd.angular.z = 0.5self.cmd = cmdwhile not rospy.is_shutdown():pub.publish(self.cmd)rate.sleep()if __name__ == '__main__':Teleop()

为了能让 rosrun 可以执行 teleop.py,我们需要更改 teleop.py 的权限:

在teleop/src目录下

sudo chmod +x teleop.py

1.打开ROS学习(一)的smartcar自定义机器人:

roslaunch smartcar_description smartcar_display.rviz.launch

2.打开一个新终端:

source /home/lm/smartcar_description/devel/setup.bash #这里检索路径命令看个人工作空间rosrun smartcar_teleop teleop.py

效果图如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。