当前位置: 首页 > news >正文

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 python3import rospy
from geometry_msgs.msg import Twistif __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.1rate = 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

http://www.lryc.cn/news/182007.html

相关文章:

  • 接口和抽象类有什么区别?
  • 基于springboot+vue的人事系统
  • 记住这份软件测试八股文还怕不能拿offer?你值得拥有
  • 2023年,在CSDN拥有10000粉丝有多难?
  • C++ -- 学习系列 关联式容器 set 与 map
  • Day 04 python学习笔记
  • Moonbeam Ignite强势回归
  • 【改造后序遍历算法】95. 不同的二叉搜索树 II
  • 栈的基本操作(数据结构)
  • D. Jellyfish and Mex Codeforces Round 901 (Div. 2)
  • 操作系统内存管理相关
  • Sui流动性质押黑客松获胜者公布,助力资产再流通
  • 为什么在使用PageHelper插件时,指定的每页记录数大小失效?显示所有的记录数
  • XML文档基础
  • 软考知识汇总-软件工程
  • 力扣:119. 杨辉三角 II(Python3)
  • 指针笔试题(带解析版)
  • 服务器搭建(TCP套接字)-libevent版(服务端)
  • 斐波那契模型系列【动态规划】
  • 【Java】微服务——Nacos注册中心
  • Redis Cluster Gossip Protocol: PING, PONG, MEET
  • httpserver 下载服务器demo 以及libevent版本的 httpserver
  • 构建强大的RESTful API:@RestController与@Controller的对比与应用
  • 【Java-LangChain:使用 ChatGPT API 搭建系统-10】评估(下)-当不存在一个简单的正确答案时
  • 【微服务的集成测试】python实现-附ChatGPT解析
  • Mesa新版来袭
  • 基于 SpringBoot 2.7.x 使用最新的 Elasticsearch Java API Client 之 ElasticsearchClient
  • 辅助驾驶功能开发-功能对标篇(15)-NOA领航辅助系统-吉利
  • javascript: Sorting Algorithms
  • 嵌入式Linux应用开发-驱动大全-同步与互斥④