From 6879723771f1a1625a83ab23c9f26afbd241ab95 Mon Sep 17 00:00:00 2001 From: Oleg Kalachev Date: Thu, 12 Mar 2020 20:20:27 +0300 Subject: [PATCH] image: add some examples (#222) * image: add some examples * Rename 'fligth' node to 'leds' * image: copy examples to /home/pi/examples * examples: add information links Co-authored-by: Alamoris --- builder/assets/examples/flight.py | 31 +++++++++++++++++++++++++++++++ builder/assets/examples/leds.py | 25 +++++++++++++++++++++++++ builder/image-build.sh | 2 ++ builder/test/tests.sh | 3 +++ 4 files changed, 61 insertions(+) create mode 100644 builder/assets/examples/flight.py create mode 100644 builder/assets/examples/leds.py diff --git a/builder/assets/examples/flight.py b/builder/assets/examples/flight.py new file mode 100644 index 00000000..5234e189 --- /dev/null +++ b/builder/assets/examples/flight.py @@ -0,0 +1,31 @@ +# Information: https://clever.coex.tech/en/programming.html + +import rospy +from clover import srv +from std_srvs.srv import Trigger + +rospy.init_node('flight') + +get_telemetry = rospy.ServiceProxy('get_telemetry', srv.GetTelemetry) +navigate = rospy.ServiceProxy('navigate', srv.Navigate) +navigate_global = rospy.ServiceProxy('navigate_global', srv.NavigateGlobal) +set_position = rospy.ServiceProxy('set_position', srv.SetPosition) +set_velocity = rospy.ServiceProxy('set_velocity', srv.SetVelocity) +set_attitude = rospy.ServiceProxy('set_attitude', srv.SetAttitude) +set_rates = rospy.ServiceProxy('set_rates', srv.SetRates) +land = rospy.ServiceProxy('land', Trigger) + +# Takeoff and hover 1 m above the ground +navigate(x=0, y=0, z=1, frame_id='body', auto_arm=True) + +# Wait for 3 seconds +rospy.sleep(3) + +# Fly forward 1 m +navigate(x=1, y=0, z=0, frame_id='body') + +# Wait for 3 seconds +rospy.sleep(3) + +# Perform landing +land() diff --git a/builder/assets/examples/leds.py b/builder/assets/examples/leds.py new file mode 100644 index 00000000..9a015482 --- /dev/null +++ b/builder/assets/examples/leds.py @@ -0,0 +1,25 @@ +# Information: https://clever.coex.tech/en/leds.html + +import rospy +from clover.srv import SetLEDEffect + +rospy.init_node('leds') + +set_effect = rospy.ServiceProxy('led/set_effect', SetLEDEffect) # define proxy to ROS-service + +set_effect(r=255, g=0, b=0) # fill strip with red color +rospy.sleep(2) + +set_effect(r=0, g=100, b=0) # fill strip with green color +rospy.sleep(2) + +set_effect(effect='fade', r=0, g=0, b=255) # fade to blue color +rospy.sleep(2) + +set_effect(effect='flash', r=255, g=0, b=0) # flash twice with red color +rospy.sleep(5) + +set_effect(effect='blink', r=255, g=255, b=255) # blink with white color +rospy.sleep(5) + +set_effect(effect='rainbow') # show rainbow diff --git a/builder/image-build.sh b/builder/image-build.sh index f270d75d..fc6f6a03 100755 --- a/builder/image-build.sh +++ b/builder/image-build.sh @@ -104,6 +104,8 @@ ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/butterf ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/monkey.service' '/lib/systemd/system/' # software install ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} exec ${SCRIPTS_DIR}'/image-software.sh' +# examples +${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/examples' '/home/pi/' # network setup ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} exec ${SCRIPTS_DIR}'/image-network.sh' diff --git a/builder/test/tests.sh b/builder/test/tests.sh index a8dcd43f..f9f28128 100755 --- a/builder/test/tests.sh +++ b/builder/test/tests.sh @@ -52,3 +52,6 @@ rosversion usb_cam rosversion cv_camera rosversion web_video_server rosversion rosshow + +# validate examples are present +[[ $(ls /home/pi/examples/*) ]]