ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

ROS 2使ってDofbotのLED光らせてみた

まずここを見ながら、元から入っているROSをアンインストールする。

qiita.com

humbleはインストールが出来なかったので、ここを見ながらrollingをインストールする。

docs.ros.org

desktopで問題無し。

sudo apt install ros-rolling-desktop

colconをインストールする

sudo apt install python3-colcon-common-extensions

ROS2とPythonで作って学ぶAIロボット入門を見ながらプロジェクトをつくってちょっと動かす。

www.amazon.co.jp

Pythonのソースを書く。 Dofbot用のライブラリ Arm_Libは元のラズパイイメージの状態でパスが通っているようで、どこからでもimportして利用できました。

import rclpy
from rclpy.node import Node

import time
from Arm_Lib import Arm_Device

class LedNode(Node):
    def __init__(self):
        print("generate node")
        super().__init__('led_node')
        self.get_logger().info("happy led")
        self.timer = self.create_timer(1.0, self.timer_callback)
        self.arm =  Arm_Device()
        time.sleep(0.1)
        self.count = 0

    def timer_callback(self):
        self.get_logger().info("led update")
        if self.count == 0:
            self.arm.Arm_RGB_set(50, 0, 0) #RGB Red light on
            self.count = 1
        elif self.count == 1:
            self.arm.Arm_RGB_set(0, 50, 0) #RGB Green light on
            self.count = 2
        elif self.count == 2:
            self.arm.Arm_RGB_set(0, 0, 50) #RGB Blue light on
            self.count = 0
        else:
            self.count = 0



def main():
    rclpy.init()
    node = LedNode()
    try:
        rclpy.spin(node)
    except KeyboardInterrupt:
        print("stop")
    del node.arm
    rclpy.shutdown()
    print("end of main")



if __name__ == '__main__':
    main()

これでLED点滅しました。