松灵机器人多模态运动ROS移动机器人开发平台LIMO,这款多模态移动机器人一经问世,便吸引了许多人的目光,是目前十分火热的一款ROS机器人平台。
除了ROS外,LIMO最近还推出了自己的Python库,可以使用Python直接控制。现在我们就来看下都有那些功能吧。
一、安装Python库
LIMO的Python库需要Python3.5以上的版本。我们这里直接在LIMO板载的Jetson Nano中进行测试,Python3版本为3.6,满足安装要求。
首先使用如下指令更新pip3:
$ python3 -m pip install --upgrade pip
然后直接使用pip3安装即可:
$ pip3 install pylimo
二、接口分析
安装之后即可使用了,为了更好的使用,我们先了解下其都有哪些接口。(接口总结如下,参考自官方页面:pylimo)
方法名 |
参数/返回值 |
描述 |
EnableCommand() |
|
使能控制命令 |
GetAngularVelocity() |
linear_vel:(float)angular_vel:(float) lateral_velocity:(float) steering_angle:(float) |
limo的移动控制命令车体行进速度(m/s)车体旋转角速度(四轮差速模式有效)(rad/s)车体横移速度(麦轮模式有效)(m/s)转向内转角角度(阿克曼模式有效)(rad/s) |
GetLinearVelocity() |
linear velocity |
从limo获取线速度(m/s) |
GetAngularVelocity() |
linear velocity |
从limo获取内转角角度(rad/s) |
GetSteeringAngle() |
steering angle |
从limo获取内转角角度(rad/s) |
GetLateralVelocity() |
lateral velocity |
从limo获取横移速度 |
GetControlMode() |
control mode |
获取当前limo控制模式:0 待机模式、1 指令模式、3遥控模式 |
GetLeftWheelOdeo() |
LeftWheelOdom |
获取左轮里程计(mm) |
GetRightWheelOdom() |
RightWheelOdeom |
获取右轮里程计(mm) |
GetBatteryVoltage() |
battery voltage |
获取电池电量信息(v) |
GetErrorCode() |
error code |
获取错误代码 |
GetIMUAccelData() |
IMU_accel_x,IMU_accel_y,IMU_accel_z |
获取加速度信息(0.01°) |
GetIMUGyroData() |
IMU_gyro_x,IMU_gyro_y,IMU_gyro_z |
获取陀螺仪信息(0.01°) |
GetIMUYawData() |
IMU_yaw |
获取航向角(0.01°) |
GetIMUPitchData() |
IMU_pitch |
获取俯仰角(0.01°) |
GetIMURollData() |
IMU_roll |
获取横滚角(0.01°) |
三、编程操作
了解了都有哪些接口之后我们就可以来使用Python来操作LIMO了。
首先我们让LIMO动起来。在/home/agilex/agilex_ws/src/limo_ros/limo_base/script目录下有两个.py文件,其中limomove.py可控制limo移动。代码内容如下:
#!/usr/bin/env python3
# coding=UTF-8
from pylimo import limo
import time
limo=limo.LIMO()
limo.EnableCommand() # 使能控制s
num=10
while num>0:
limo.SetMotionCommand(linear_x=0.1,angular_z=-0.01)
time.sleep(0.3)
num-=1
运行此代码即可看到小车开始运动,默认运动有些慢,可以自行修改。
此外,该目录下还有一个Python文件,名字为limogetmessage.py,此文件可以获取小车当前的线速度。
代码内容如下:
#!/usr/bin/env python3
# coding=UTF-8
from pylimo import limo
import time
limo=limo.LIMO()
#limo.EnableCommand() # 没有控制LIMO 可以不使能控制
while True:
time.sleep(0.1)
print(limo.GetLinearVelocity())
运行后即可看到实时打印的LIMO线速度了。
我们还可以使用pylimo控制其他的运动方式以及获取更多的小车数据,按照接口的说明操作即可,还是十分简单方便的。
评论(0)
您还未登录,请登录后发表或查看评论