Ubuntu Mate(ROS)上的Raspberry Pi Sense HAT

时间:2018-12-28 22:15:05

标签: python ubuntu raspberry-pi3 ros upstart

你好,我正在为一个学校项目工作。我在Raspberry pi 3 B上使用Sense Hat在led矩阵和IMU上显示像素以获取偏航数据。但是问题是当Ubuntu Mate在ROS(http://www.ros.org/)中启动时(启动时),我试图运行IMU。因此,我提供了在服务中使用robot_upstart(http://docs.ros.org/jade/api/robot_upstart/html/)在启动时运行python脚本的服务。但是服务出现错误:

#!/usr/bin/env python
import rospy
from sense_hat import SenseHat
import time
from random import randint
from std_msgs.msg import Float32

sense = SenseHat()

def randomColor():
 red_random = randint(0,255)
 blue_random = randint(0,255)
 green_random = randint(0,255)
 return (red_random,green_random,blue_random)


def gyroData():
    pub = rospy.Publisher('gyro', Float32, queue_size=10)
    rospy.init_node('picobot_imu')
    rate = rospy.Rate(10) # 10hz

    sense.set_imu_config(False, True, True)

    while not rospy.is_shutdown():
        o = sense.get_orientation()
       #pitch = o["pitch"]
       #roll = o["roll"]
        yaw = o["yaw"]
       #rospy.loginfo(yaw)
        pub.publish(yaw)
        rate.sleep()

def main():

    sense.clear((0, 0, 0))
    sense.low_light = True
    g =(0,153,153)
    bl = (0,153,0)
    b = (0,0,0)
    picobot_pixels = [
    g,g,b,g,b,g,g,b,
    g,g,b,g,b,g,b,b,
    g,b,b,g,b,g,g,b,
    b,b,b,b,b,b,b,b,
    g,g,g,b,bl,b,bl,b,
    g,b,g,b,b,bl,b,b,
    g,g,g,b,bl,bl,bl,b,
    b,b,b,b,b,b,b,b
    ]
    sense.set_pixels(picobot_pixels)
    gyroData()
if __name__ == '__main__':
     main()

如果我手动运行脚本,一切正常,但是如果运行该服务,则会出现错误。

  • dec 28 01:25:57 pi-mate picobot-start [870]:文件gyroData中的“ /home/pi/catkin_ws/src/Picobot/picobot_imu/src/picobot_imu.py”,第22行
  • dec 28 01:25:57 pi-mate picobot-start [870]:sense.set_imu_config(False,True,True)
  • 12月28日01:25:57 pi-mate picobot-start [870]:文件“ /usr/lib/python2.7/dist-packages/sense_hat/sense_hat.py”,行660,位于set_imu_config中
  • 十二月28 01:25:57 pi-mate picobot-start [870]:self._init_imu()#确保已初始化imu
  • 12月28日01:25:57 pi-mate picobot-start [870]:文件_init_imu中的“ /usr/lib/python2.7/dist-packages/sense_hat/sense_hat.py”行648
  • 十二月28 01:25:57 pi-mate picobot-start [870]:引发OSError(“ IMU初始化失败”)
  • 十二月28 01:25:57 pi-mate picobot-start [870]:OSError:IMU初始化失败
  • dec 28 01:25:58 pi-mate picobot-start [870]:找不到记录器“ roslaunch”的处理程序
  • dec 28 01:25:58 pi-mate picobot-start [870]:[picobot_imu-6]进程已死亡[pid 1515,退出代码1,cmd / home / pi / catkin_ws / src / Picobot / picobot < / li>

后来我尝试将启动延迟设置为15秒。

<node pkg="timed_roslaunch" type="timed_roslaunch.sh" args="15 picobot_imu picobot_imu.launch" name="timed_roslaunch2" output="screen" />

服务错误如下:

  • 12月29日10:46:06 pi-mate picobot-start [859]:NODES

  • 12月29日10:46:06 pi-mate picobot-start [859]:/

  • 12月29日10:46:06 pi-mate picobot-start [859]:picobot_imu(picobot_imu / picobot_imu.py)

  • 12月29日10:46:06 pi-mate picobot-start [859]:ROS_MASTER_URI = http://127.0.0.1:11311

  • 12月29日10:46:06 pi-mate picobot-start [859]:[96B blob数据]

  • 12月29日10:46:06 pi-mate picobot-start [859]:进程[picobot_imu-1]:从pid [1823]开始

  • 12月29日10:46:06 pi-mate picobot-start [859]:计算机上的所有进程均已终止,roslaunch将退出

  • 12月29日10:46:06 pi-mate picobot-start [859]:正在关闭处理监视器...

  • 12月29日10:46:06 pi-mate picobot-start [859]:...正在关闭处理监控程序

0 个答案:

没有答案