SLAM从入门到精通(用python实现机器人运动控制)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

在ROS下面,开发的方法很多,可以是c++,可以是python。大部分接口操作类的应用,其实都可以用python来开发。或者如果想对某一类的算法、设备来验证,这个时候用python来开发也是ok的。当然如果是纯算法,或者最终是需要部署在嵌入式系统上面长期运行的,那么这个时候基本上只能选择c++了。下面我们就来谈一谈如何在ros环境下进行ros开发。

1、创建scripts目录

假设我们有一个beginner_tutorials的package,这个时候首先需要创建一个scripts的目录。所有的python文件一般就安装在这个scripts目录里面。

2、编写python脚本文件

这里,我们编写一个控制小车的脚本文件vel_node.py。它实现的功能和之前vel_node.cpp其实是一样的。只不过和c++版本相比较,python脚本本身不需要编译,使用起来更加地方便。

复制代码
#!/usr/bin/env python3

import rospy
from geometry_msgs.msg import Twist

if __name__ == "__main__":
	rospy.init_node("vel_node")

	vel_pub = rospy.Publisher("cmd_vel", Twist, queue_size=10)

	vel_msg=Twist()
	vel_msg.linear.x = 0.1

	rate = rospy.Rate(30)
	while not rospy.is_shutdown():
		vel_pub.publish(vel_msg)
		rate.sleep()

从代码内容上看其实并不复杂。首先代码中创建了一个node,接着生成一个vel_pub,发布的消息是vel_msg,最后就是用vel_pub将vel_msg周期性发送出去,这就是一个基本的ros python脚本操作。

3、设置vel_node.py属性

编写好了vel_node.py,这个时候其实脚本还没有办法直接运行起来。需要用chmod +x vel_node.py运行一下,这样vel_node.py就变成可执行文件了。

4、开始测试

测试的方法也非常简单。主要的动作有两步,第一步就是用roslaunch wpr_simulation wpb_simple.launch将gazebo的仿真场景运行起来。第二步,就是利用rosrun beginner_tutorials vel_node.py命令将脚本运行起来。我们需要观察一下此时此刻,小车是否真的动起来了。如果小车一切运行ok,那代表vel_node.py脚本发挥了作用了。反之,则要回过头去看下,我们编写的vel_node.py究竟是哪里出了问题。希望了解更多rospy知识点的同学,可以看看这个链接,

复制代码
http://wiki.ros.org/rospy
相关推荐
码兄科技3 小时前
Java AI智能体开发实战:从零构建智能对话系统指南
java·开发语言·人工智能
Drone_xjw4 小时前
从 GDB 到 CDB:C/C++ 程序调试的两把“手术刀”
c语言·开发语言·c++
SL-staff5 小时前
智慧园区2000+设备统一管理:JVS-IoT如何降低运维成本40%
java·开发语言·物联网·智慧园区·设备管理·运维优化·jvs-iot
聪明的一休丶5 小时前
VLLM v0.24.0 版本深度解析:新引擎、新架构与大规模服务全家桶升级
python·架构·vllm
2zcode7 小时前
基于MATLAB图像处理的饮料瓶灌装液位检测系统设计与实现
开发语言·图像处理·matlab
万亿少女的梦1687 小时前
基于Python的高考志愿填报辅助系统设计与实现
java·spring boot·python·mysql·vue
必须得开心呀8 小时前
QT解决中文乱码问题
开发语言·qt
闲猫8 小时前
Python FastAPI + SQLAlchemy 入门教程:从零搭建你的第一个 Web 应用
前端·python·fastapi
这不小天嘛9 小时前
JAVA八股——redis篇
java·开发语言·redis
逝水无殇10 小时前
C# 字符串(String)详解
开发语言·后端·c#