个 IC641SWP710常规
2024-09-04 15:21  点击:387
联系方式
状态:发送留言
姓名:黄生(先生)
地区:福建-厦门市
Q Q :2708880336
价格:未填
发送询价
做为ROS的入门篇我们来看看如何控制伺服机。伺服机的缺点是会尽快遵照指令运转,因此头部常常会突然活动,以至于失去平衡。不过使用ROS之后,就可以进行正弦曲线运动,让机器人保持稳定。由于可以在ROS当中进行这项操作,因此无须改写控制用的程序代码。另外,连接伺服机和ROS的程序代码,以及伺服机的硬件都无须变更。再者,程序代码还可以任意使用。

ROS很适合用在Ubuntu或Debian上,无须编译。建置时要在Linux机器上执行Ubuntu,使用业余用伺服机、Arduino和普通的导线。ROS要在Ubuntu机器上启动,讯息则透过USB传送到Arduino。只要安装二进制的ROS套件,就会在主控台程序(像是gnome-terminal或konsole)追加以下指令,这样Arduino系统就能辨识ROS函式库。IC641SWP710常规IC641SWP710常规IC641SWP710常规

cd~/sketchbook/libraries

rm-rf ros_lib

rosrunrosserial_arduino make_l ibraries.py .

Arduino的程序

接下来要将程序代码上传到Arduino当中,执行低阶的伺服机控制,以便能从Linux机器操作。这时要以限制范围内的百分比(0.0~1.0)伺服机的位置。之所以使用百分比而不是写明角度,是因为Arduino的程序代码限制了正确的角度,要避免在角度时发生冲突。

就如各位所见,使用ROS之后,一般的循环函数就会变得相当简单。循环函数只会订阅(subscribe)数据,任何Arduino循环都一样。设定时要将ROS初始化,将各个ROS讯息订阅者的订阅叫出来。每个订阅者会占据Arduino的RAM,数量取决于要用程序代码做什么,以6个到12个为限。

Servo servo;

void servo_cb( const std_msgs::Float32& msg )

A06B-0075-B403 A06B-0373-B076 A06B-6063-H222 

A06B-0075-B503     A06B-6064-H202

A06B-0077-B203 A06B-0373-B175 A06B-6064-H308                       

A06B-0101-B060 A06B-0373-B510 A06B-6064-H315  

A06B-0106-B580 A06B-0373-B571 A06B-6066-H233

A06B-0113-B075 A06B-0373-B575 A06B-6066-H244

A06B-0373-B577 A06B-6066-H266

A06B-0113-B077 A06B-0373-B675 A06B-6069-H104

A06B-0113-B078 A06B-0374-B576 A06B-6070-H004

A06B-0113-B079 A06B-0374-B577 A06B-6070-H500 

A06B-0113-B175 A06B-0376-B675 A06B-6070-H600 

A06B-0113-B178 A06B-0377-B175 A06B-6073-K001

A06B-0115-B275 A06B-0377-B575 A06B-6073-K250

A06B-0116-B075 A06B-0390-B060 A06B-6076-H001

A06B-0116-B203 A06B-0501-B001 A06B-6077-H106

A06B-0116-B204 A06B-0501-B002