ROS探索(5)——Python控制SmartCar
来源:互联网 发布:单点登录源码 编辑:程序博客网 时间:2024/05/21 23:34
在ROS探索(4)中对SmartCar仿真是使用指令来实现的,但是在实际应用中这是不太可能发生的事情。在实际应用中,Robot 一般是使用写好的程序进行控制的,即在控制Robot 一般是使用代码来实现的,因此我们可以使用Python代码来实现对SmartCar的控制。
创建项目包
catkin_create_pkg smartcar_teleop rospy geometry_msgs std_msgs roscppRobot的移动控制主要是通过 Twist 结构来实现的,因此想要用Python实现SmartCar的移动控制仿真,我们可以将 Twist 下的数据封装到一个节点再通过 Publisher 发布成一个Topic从而达到控制的效果。在 smartcar_teleop/scripts 下(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 = None cmd = Twist() cmd.linear.x = 0.2 cmd.linear.y = 0 cmd.linear.z = 0 cmd.angular.z = 0 cmd.angular.z = 0 cmd.angular.z = 0.5 self.cmd = cmd while not rospy.is_shutdown(): pub.publish(self.cmd) rate.sleep()if __name__ == '__main__':Teleop()为了能让 rosrun 可以执行 teleop.py,我们需要更改 teleop.py 的权限:
sudo chmod +x teleop.py打开ROS探索(4)使用到的自定义机器人SmartCar,打开一个新的终端,执行
source catkin_ws/devel/setup.bashrosrun smartcar_teleop teleop.py
效果如下:
参考:
http://blog.csdn.net/hcx25909/article/details/9004617
《ros by example vol 2 indigo》
0 0
- ROS探索(5)——Python控制SmartCar
- ROS探索(6)——C++控制SmartCar
- ROS探索总结(七)——smartcar源码上传
- ROS探索总结(七)——smartcar源码上传
- ROS探索(3)——SmartCar模型搭建
- ROS探索(4)——SmartCar仿真
- ROS探索总结(七)(八)(九)——smartcar源码上传 键盘控制 操作杆控制
- (古月居)ROS探索总结(六)使用smartcar进行仿真使用smartcar进行仿真——INDIGO版修正
- ROS探索总结(五)——创建简单的机器人模型smartcar
- ROS探索总结(六)——使用smartcar进行仿真
- ROS探索总结(五)——创建简单的机器人模型smartcar
- ROS探索总结(六)——使用smartcar进行仿真
- ROS探索总结(五)——创建简单的机器人模型smartcar
- ROS探索总结(四)(五)(六)——简单的机器人仿真 创建简单的机器人模型smartcar 使用smartcar进行仿真
- 关于参考古月《ROS探索总结(五)——创建简单的机器人模型smartcar》在kinetic中实现总结
- ROS探索总结(八)——键盘控制
- ROS探索总结(九)——操作杆控制
- ROS探索总结(十)——语音控制
- Leetcode 77. Combinations 组合算法 解题报告
- Android shape使用详解
- studio中可能遇到的.9-patch图片报错处理
- Java动态代理-创建动态类的实例对象及调用其方法
- hdu 2686/hdu 3376 Matrix Again 费用流模板
- ROS探索(5)——Python控制SmartCar
- 在VS2010中无法以“(LocalDB)\8.0”为服务器名来创建数据库
- 汽车全景标定(拼接)效果的检验方法
- 深入浅出 - Android系统移植与平台开发(九)- JNI介绍
- Intellij IDEA快捷键整理
- 深入浅出 - Android系统移植与平台开发(十) - led HAL简单设计案例分析
- php urlencode()与urldecode()函数字符编码原理-笔记
- 2016年5月26日,这应该是一个milestone吧 version1.6
- leetcode #36 in cpp.