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

文章学习链接:(http://blog.csdn.net/hcx25909)
(https://blog.csdn.net/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 python
import roslib; roslib.load_manifest('smartcar_teleop')
import rospy
from geometry_msgs.msg import Twist
from std_msgs.msg import String
 
class 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 的权限:
在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 

效果图如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值