Raspberry Pi Sense HAT на Ubuntu Mate (ROS) - PullRequest
0 голосов
/ 29 декабря 2018

Здравствуйте, я работаю над проектом для школы.Я использую Sense Hat на Raspberry pi 3 B для отображения пикселей на светодиодной матрице и IMU для получения данных рыскания.Но проблема в том, что я пытаюсь запустить IMU, когда Ubuntu Mate запускается (при загрузке) в ROS (http://www.ros.org/).). Поэтому я создал сервис, который запускает скрипт python при загрузке с помощью robot_upstart (http://docs.ros.org/jade/api/robot_upstart/html/). НоЯ получаю сообщение об ошибке от службы:

#!/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]: файл «/home/pi/catkin_ws/src/Picobot/picobot_imu/src/picobot_imu.py», строка 22, в gyroData
  • дек 28 01:25: 57 pi-mate picobot-start [870]: sense.set_imu_config (False, True, True)
  • dec 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 инициализирован
  • дек 28 01:25:57 pi-mate picobot-start [870]: файл «/ usr / lib /python2.7 / dist-packages / sense_hat / sense_hat.py ”, строка 648, в_init_imu
  • декабрь 28 01:25:57 запуск пиобота pi-mate [870]: поднять OSError («Ошибка инициализации IMU»)
  • dec 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

Позже я попытался установить задержку запуска на 15 с.

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

ошибка в обслуживании выглядела так:

  • 29 декабря 10:46:06 pi-mate picobot-start [859]: УЗЛЫ

  • 29 декабря 10:46:06 pi-mate picobot-начало [859]: /

  • 29 дек. 10:46:06 pi-mate picobot-start [859]: picobot_imu (picobot_imu / picobot_imu.py)

  • 29 декабря 10:46:06 pi-mate picobot-start [859]: ROS_MASTER_URI = http://127.0.0.1:11311

  • 29 декабря 10:46:06 pi-mate picobot-start [859]:[Данные BLOB-объекта 96B]

  • 29 дек. 10:46:06 pi-mate picobot-start [859]: процесс [picobot_imu-1]: запущен с pid [1823]

  • 29 декабря 10:46:06 pi-mate picobot-start [859]: все процессы на машине прекратились, roslaunch завершит работу

  • 29 декабря10:46:06 pi-mate picobot-start [859]: выключение монитора обработки ...

  • 29 декабря 10:46:06 pi-mate picobot-start [859]: ... завершение обработки монитора завершено

...