
ROS
庆钊你好呀
98年诞生于阿卡林省,性别男,取向女,考上某不知名985大学,19年毕业后留在广东广州工作。
从事于汽车控制研发,主业MATLAB数框框,副业朋友圈点赞机。
业余爱好电子和编程,Arduino点灯工程师,“helloword”软件爱好者。
实习打杂做过网站前后端开发,ROS。受不了996福报,逃回国企养老。
稍稍学了点tensorflow,训练出了人工智障。
工作上最有成就感是用EXCEL的VBA写了一个爬虫,然后偷了一个礼拜的懒。
干啥啥不行,吃饭第一名。吃饭不积极,脑子有问题。
展开
-
使用python,通过串口ROS直接控制电机驱动器(1)
最近在一个公司实习,公司需要我用ROS搭建一个机器车地盘,因此我开始学习关于ROS方面的东西。通常传统的方法大家搭建机器车地盘的时候会想到用一个stm32开发板作为中间层次,对上层上位机通过ros-stm32串口的方式通讯,对下层电机驱动器通过pwm的模拟电压来控制电机。但是公司给我的驱动器的通讯方式不仅仅是模拟量的输出,还可以通过can或者串口的形式来控制驱动器。我之前的学习基本是在上位机上...原创 2019-01-03 10:56:54 · 9443 阅读 · 5 评论 -
使用python,通过串口ROS直接控制电机驱动器(2)
第一节:运用测试程序测试电机是否正常工作在第一节中,我们需要测试一下用Python串口控制电机的可行性。请确保自己安装好anaconda。第一步:安装pyserial模块(遇到问题百度解决)打开命令行输入:pip install pyserial第二步,参考驱动器使用手册,了解驱动器串口(RS232)通讯协议:第三步:根据通讯协议写测试代码:import seri...原创 2019-01-04 15:56:08 · 5471 阅读 · 2 评论 -
使用python,通过串口ROS直接控制电机驱动器(3)
运用python最大的好处就是我们能够通过面向对象的方式来编写程序,因此在这一节里我们首先创建一个电机的对象,在脑海里构思,电机有哪些属性,需要哪些控制方法!在考虑到这么多的属性与方法之后,我参考卖家基于stm32的can通讯类方法,写了以下设置初始化方式:class SpeedMotor: def __init__(self, device, acc, dcc): ...原创 2019-01-07 10:47:00 · 2986 阅读 · 0 评论 -
使用python,通过串口ROS直接控制电机驱动器(4)
继续上节的工程,我给电机做了一个简单的建模后,就需要具体实现每一个功能了。首先我们要在脑海里建立好一个模型,我们一方面向串口输入数据,一方面还要从串口里接收数据。在刚开始的时候,我定义了很多个函数,在发送完数据后立马就接收驱动器回复的数据,在后期想用多线程的时候很容易产生错误,导致驱动器不知道我发送的是什么指令需要使用线程锁来编写,又导致程序非常的复杂。在参考网上的的串口多线程编程的过程中,我...原创 2019-01-08 17:59:25 · 2715 阅读 · 10 评论 -
使用python,通过串口ROS直接控制电机驱动器(5)
接下来我便是驱动电机的代码实现了,由于需要发送十六进制的字节码,因此我们要引入Python的struct模块,把数字转换为字节串。 def motor_speed_set(self): a1 = 6 a4 = check_code(a1, self.set_speed) self.serial.write(struct.pack("&...原创 2019-01-15 18:29:16 · 1756 阅读 · 2 评论 -
使用python,通过串口ROS直接控制电机驱动器(6)
python驱动电机部分完结,现在把全部代码公布,基本实现驱动器速度控制部分功能。接下来我将把电机驱动器移植到ROS上,实现驱动器与ROS之间的通讯。下图为我代码的基本框架:#!/usr/bin/env pythonimport serialimport timeimport threadingimport structmotor_speed_mode = b'\x02\x...原创 2019-01-15 18:32:31 · 2845 阅读 · 1 评论 -
使用python,通过串口ROS直接控制电机驱动器(7)
在做好电机的驱动后,接下来我们便可以把它移植到ROS平台上,移植的过程其实很简单,就是按照官方的例程订阅和发布消息。首先我们要确认我们的程序要订阅些什么内容,比如说很容易想到我们要订阅速度信息,并发布实际速度信息,等等。如图所示是传统电机的驱动模型,因此我们移植到ROS平台上需要订阅cmd_vel(速度信息),和发布Odometry(里程计信息)。在订阅了速度信息后,我的地盘是两车轮模...原创 2019-01-16 15:00:59 · 2538 阅读 · 4 评论 -
使用python,通过串口ROS直接控制电机驱动器(8)
在有了别人的代码后,我就很容易的参考他的方法来实现电机的这个功能,因此我简单的写了一个Python程序,通过调用之前写的Python驱动程序,实现了对单轮电机的速度控制。该程序的实现原理:第一:将导入单轮电机的类实例化,创建对象。第二,创建一个叫base_controller的节点,然后订阅/cmd_vel(速度)主题,定义要发布的/odom(里程计)主题(里程计功能我还暂未实现,但是...原创 2019-04-30 23:28:12 · 2352 阅读 · 3 评论 -
在Arduino平台上使用ESP8266:订阅ROS消息,通过tcp无线控制IO
在本教程之前,请先确认是否安装好arduino的IDE和加载了ROS的库文件;安装IDE的参考文章:https://blog.youkuaiyun.com/zengqz123/article/details/82712648加载ROS库的参考文章:http://wiki.ros.org/rosserial_arduino/Tutorials/Arduino%20IDE%20Setup在RO...原创 2019-01-16 10:33:16 · 2100 阅读 · 7 评论 -
在嵌入式linux环境下,搭建ROS下位机
最近在ros官网上发现rosserial支持embeddlinux,于是对这个产生了很大的兴趣,传统大家都是用arduino来做下位机,通过串口的形式来做控制的,但是有时候我们的下位机可能需要很大的计算量,这时候用普通的单片机可能性能就不是很够的了,因此我做这样一个教程,通过给树莓派编译rosserial_embeddedlinux,实现通过网络的形式给上位机发布消息。首先我们要有一台运行Ub...原创 2019-01-12 10:56:52 · 2120 阅读 · 0 评论