diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml index 5493192a..98332767 100644 --- a/.github/workflows/config.yml +++ b/.github/workflows/config.yml @@ -50,14 +50,16 @@ jobs: CONTAINER: ubuntu:18.04 USE_DEB : true TEST_PKGS: "pr2eus_moveit pr2eus_tutorials" - # - ROS_DISTRO: noetic - # CONTAINER: ubuntu:20.04 - # USE_DEB : true - # TEST_PKGS: "pr2eus" - # - ROS_DISTRO: noetic - # CONTAINER: ubuntu:20.04 - # USE_DEB : true - # TEST_PKGS: "pr2eus_moveit pr2eus_tutorials" + - ROS_DISTRO: noetic + CONTAINER: ubuntu:20.04 + USE_DEB : true + BUILD_PKGS: "pr2eus" + TEST_PKGS: "pr2eus" + - ROS_DISTRO: noetic + CONTAINER: ubuntu:20.04 + USE_DEB : true + BUILD_PKGS: "pr2eus_moveit pr2eus_tutorials" + TEST_PKGS: "pr2eus_moveit pr2eus_tutorials" - ROS_DISTRO: noetic CONTAINER: ubuntu:20.04 USE_DEB : false @@ -95,7 +97,7 @@ jobs: fi - name: Chcekout - uses: actions/checkout@v2 + uses: actions/checkout@v3.0.2 - name: Run jsk_travis uses: jsk-ros-pkg/jsk_travis@master diff --git a/pr2eus/test/pr2-ri-test-base.launch b/pr2eus/test/pr2-ri-test-base.launch index fe974c24..b9ef00bd 100644 --- a/pr2eus/test/pr2-ri-test-base.launch +++ b/pr2eus/test/pr2-ri-test-base.launch @@ -1,9 +1,12 @@ + + + - diff --git a/pr2eus/test/pr2-ri-test-bringup.launch b/pr2eus/test/pr2-ri-test-bringup.launch index d0fa1490..a602dbe0 100644 --- a/pr2eus/test/pr2-ri-test-bringup.launch +++ b/pr2eus/test/pr2-ri-test-bringup.launch @@ -63,7 +63,7 @@ - + diff --git a/pr2eus/test/pr2-ri-test-simple.l b/pr2eus/test/pr2-ri-test-simple-angle-vector.l similarity index 58% rename from pr2eus/test/pr2-ri-test-simple.l rename to pr2eus/test/pr2-ri-test-simple-angle-vector.l index e4923fb7..3da79b36 100644 --- a/pr2eus/test/pr2-ri-test-simple.l +++ b/pr2eus/test/pr2-ri-test-simple-angle-vector.l @@ -49,31 +49,6 @@ (assert (eps= tm 1.0)) )) -;; https://github.com/jsk-ros-pkg/jsk_pr2eus/pull/165#discussion_r37421484 -(deftest test-go-pos - (let () - (setq *ri* (instance pr2-interface :init)) - (assert (send *ri* :go-pos 1 0 0) "(send *ri* :go-pos 1 0 0)") ;; go-pos is relative to current position - (assert (send *ri* :go-pos 0 1 90) "(send *ri* :go-pos 0 1 90)") - (assert (send *ri* :go-pos-no-wait -1 1 -90) "(send *ri* :go-pos-no-wait -1 1 -90)") - (ros::sleep 1) ;; wait for 1 sec to activate goal status... - (assert (send *ri* :go-waitp) "(send *ri* :go-waitp)") - (assert (send *ri* :go-wait) "(send *ri* :go-wait)") - (assert (eps-v= (send (send *ri* :worldcoords ) :worldpos) #f(0 0 0))) - (assert (send *ri* :go-pos-unsafe-no-wait -1 1 -90) "(send *ri* :go-pos-unsafe-no-wait -1 1 -90)") - )) - -(deftest test-move-to - (let () - (setq *ri* (instance pr2-interface :init)) - (assert (send *ri* :move-to (make-coords :pos #f(1000 0 0))) "(send *ri* :move-to (make-coords :pos #f(1000 0 0)))") ;; default is world and wait - (send *ri* :move-to (make-coords :pos #f(1000 1000 0) :rpy (float-vector pi/2 0 0))) - (assert (send *ri* :move-to (make-coords) :no-wait t) "(send *ri* :move-to (make-coords) :no-wait t)") ;; no-wait t means not wait so need to call wait - (assert (send *ri* :move-to-wait) "(send *ri* :move-to-wait)") ;; wait move-to - (assert (eps-v= (send (send *ri* :worldcoords ) :worldpos) #f(0 0 0))) - )) - - ;; https://github.com/jsk-ros-pkg/jsk_pr2eus/pull/143 (defclass pr2-interface-wrong :super pr2-interface) @@ -158,55 +133,6 @@ ) )) -;; pr2 / pr2-sensor-robot test -(deftest instantiate-pr2-sensor-robot-test - (let (rgb-camera-pr1012 rgb-camera-pr1040) - ;; call from function - (pr2) - (assert *pr2*) ;; generate *pr2* - (assert (derivedp *pr2* pr2-sensor-robot)) ;; pr2 derived from pr2-sensor-robot - (assert (equal (send *pr2* :name) "pr2")) ;; robot name is pr2 - (assert (equal (*pr2* . name) :pr1012)) ;; but we can know serial number - (setq rgb-camera-1012 (send (send *pr2* :camera :kinect_head/rgb) :viewing :projection)) - - (pr2 :pr1040) - (assert *pr2*) ;; generated *pr2* - (assert (derivedp *pr2* pr2-sensor-robot)) ;; pr2 derived from pr2-sensor-robot - (assert (equal (send *pr2* :name) "pr2")) ;; robot name is pr2 - (assert (equal (*pr2* . name) :pr1040)) ;; but we can know serial number - (setq rgb-camera-1040 (send (send *pr2* :camera :kinect_head/rgb) :viewing :projection)) - (defun m= (m1 m2) (v= (array-entity m1) (array-entity m2))) - (when (m= rgb-camera-1012 rgb-camera-1040) - (warning-message 1 "each robot should have different camera param~%~A~%~A~%" - rgb-camera-1040 rgb-camera-1040)) - - ;; use instance - (setq *pr2* (instance pr2-robot :init)) - (assert *pr2*) ;; generate *pr2* - (assert (derivedp *pr2* pr2-robot)) ;; pr2 derived from pr2-sensor-robot - (assert (equal (send *pr2* :name) "pr2")) ;; robot name is pr2 - (assert (null (assoc 'name (send *pr2* :slots)))) ;; but it does not have slot 'name - - (setq *pr2* (instance pr2-sensor-robot :init)) - (assert *pr2*) ;; generate *pr2* - (assert (derivedp *pr2* pr2-robot)) ;; pr2 derived from pr2-sensor-robot - (assert (equal (send *pr2* :name) "pr2")) ;; robot name is pr2 - (assert (equal (*pr2* . name) :pr1012)) ;; but we can know serial number - - (setq *pr2* (instance pr2-sensor-robot :init :pr1012)) - (assert *pr2*) ;; generated *pr2* - (assert (derivedp *pr2* pr2-sensor-robot)) ;; pr2 derived from pr2-sensor-robot - (assert (equal (send *pr2* :name) "pr2")) ;; robot name is pr2 - (assert (equal (*pr2* . name) :pr1012)) ;; but we can know serial number - - (setq *pr2* (instance pr2-sensor-robot :init :pr1040)) - (assert *pr2*) ;; generated *pr2* - (assert (derivedp *pr2* pr2-sensor-robot)) ;; pr2 derived from pr2-sensor-robot - (assert (equal (send *pr2* :name) "pr2")) ;; robot name is pr2 - (assert (equal (*pr2* . name) :pr1040)) ;; but we can know serial number - )) (run-all-tests) (exit) - - diff --git a/pr2eus/test/pr2-ri-test-simple-go-pos.l b/pr2eus/test/pr2-ri-test-simple-go-pos.l new file mode 100644 index 00000000..716913bc --- /dev/null +++ b/pr2eus/test/pr2-ri-test-simple-go-pos.l @@ -0,0 +1,33 @@ +(require :unittest "lib/llib/unittest.l") +(load "package://pr2eus/pr2-interface.l") + +(init-unit-test) + +(pr2-init) + +;; https://github.com/jsk-ros-pkg/jsk_pr2eus/pull/165#discussion_r37421484 +(deftest test-go-pos + (let () + (setq *ri* (instance pr2-interface :init)) + (assert (send *ri* :go-pos 1 0 0) "(send *ri* :go-pos 1 0 0)") ;; go-pos is relative to current position + (assert (send *ri* :go-pos 0 1 90) "(send *ri* :go-pos 0 1 90)") + (assert (send *ri* :go-pos-no-wait -1 1 -90) "(send *ri* :go-pos-no-wait -1 1 -90)") + (ros::sleep 1) ;; wait for 1 sec to activate goal status... + (assert (send *ri* :go-waitp) "(send *ri* :go-waitp)") + (assert (send *ri* :go-wait) "(send *ri* :go-wait)") + (assert (eps-v= (send (send *ri* :worldcoords ) :worldpos) #f(0 0 0))) + (assert (send *ri* :go-pos-unsafe-no-wait -1 1 -90) "(send *ri* :go-pos-unsafe-no-wait -1 1 -90)") + )) + +(deftest test-move-to + (let () + (setq *ri* (instance pr2-interface :init)) + (assert (send *ri* :move-to (make-coords :pos #f(1000 0 0))) "(send *ri* :move-to (make-coords :pos #f(1000 0 0)))") ;; default is world and wait + (send *ri* :move-to (make-coords :pos #f(1000 1000 0) :rpy (float-vector pi/2 0 0))) + (assert (send *ri* :move-to (make-coords) :no-wait t) "(send *ri* :move-to (make-coords) :no-wait t)") ;; no-wait t means not wait so need to call wait + (assert (send *ri* :move-to-wait) "(send *ri* :move-to-wait)") ;; wait move-to + (assert (eps-v= (send (send *ri* :worldcoords ) :worldpos) #f(0 0 0))) + )) + +(run-all-tests) +(exit) diff --git a/pr2eus/test/pr2-ri-test-simple-sensor-model.l b/pr2eus/test/pr2-ri-test-simple-sensor-model.l new file mode 100644 index 00000000..7cb31faa --- /dev/null +++ b/pr2eus/test/pr2-ri-test-simple-sensor-model.l @@ -0,0 +1,57 @@ +(require :unittest "lib/llib/unittest.l") +(load "package://pr2eus/pr2-interface.l") + +(init-unit-test) + +(pr2-init) + +;; pr2 / pr2-sensor-robot test +(deftest instantiate-pr2-sensor-robot-test + (let (rgb-camera-pr1012 rgb-camera-pr1040) + ;; call from function + (pr2) + (assert *pr2*) ;; generate *pr2* + (assert (derivedp *pr2* pr2-sensor-robot)) ;; pr2 derived from pr2-sensor-robot + (assert (equal (send *pr2* :name) "pr2")) ;; robot name is pr2 + (assert (equal (*pr2* . name) :pr1012)) ;; but we can know serial number + (setq rgb-camera-1012 (send (send *pr2* :camera :kinect_head/rgb) :viewing :projection)) + + (pr2 :pr1040) + (assert *pr2*) ;; generated *pr2* + (assert (derivedp *pr2* pr2-sensor-robot)) ;; pr2 derived from pr2-sensor-robot + (assert (equal (send *pr2* :name) "pr2")) ;; robot name is pr2 + (assert (equal (*pr2* . name) :pr1040)) ;; but we can know serial number + (setq rgb-camera-1040 (send (send *pr2* :camera :kinect_head/rgb) :viewing :projection)) + (defun m= (m1 m2) (v= (array-entity m1) (array-entity m2))) + (when (m= rgb-camera-1012 rgb-camera-1040) + (warning-message 1 "each robot should have different camera param~%~A~%~A~%" + rgb-camera-1040 rgb-camera-1040)) + + ;; use instance + (setq *pr2* (instance pr2-robot :init)) + (assert *pr2*) ;; generate *pr2* + (assert (derivedp *pr2* pr2-robot)) ;; pr2 derived from pr2-sensor-robot + (assert (equal (send *pr2* :name) "pr2")) ;; robot name is pr2 + (assert (null (assoc 'name (send *pr2* :slots)))) ;; but it does not have slot 'name + + (setq *pr2* (instance pr2-sensor-robot :init)) + (assert *pr2*) ;; generate *pr2* + (assert (derivedp *pr2* pr2-robot)) ;; pr2 derived from pr2-sensor-robot + (assert (equal (send *pr2* :name) "pr2")) ;; robot name is pr2 + (assert (equal (*pr2* . name) :pr1012)) ;; but we can know serial number + + (setq *pr2* (instance pr2-sensor-robot :init :pr1012)) + (assert *pr2*) ;; generated *pr2* + (assert (derivedp *pr2* pr2-sensor-robot)) ;; pr2 derived from pr2-sensor-robot + (assert (equal (send *pr2* :name) "pr2")) ;; robot name is pr2 + (assert (equal (*pr2* . name) :pr1012)) ;; but we can know serial number + + (setq *pr2* (instance pr2-sensor-robot :init :pr1040)) + (assert *pr2*) ;; generated *pr2* + (assert (derivedp *pr2* pr2-sensor-robot)) ;; pr2 derived from pr2-sensor-robot + (assert (equal (send *pr2* :name) "pr2")) ;; robot name is pr2 + (assert (equal (*pr2* . name) :pr1040)) ;; but we can know serial number + )) + +(run-all-tests) +(exit) diff --git a/pr2eus/test/pr2-ri-test-simple.launch b/pr2eus/test/pr2-ri-test-simple.launch index 4165f26b..4b117d28 100644 --- a/pr2eus/test/pr2-ri-test-simple.launch +++ b/pr2eus/test/pr2-ri-test-simple.launch @@ -1,5 +1,13 @@ + + + + - + + + diff --git a/pr2eus/test/pr2-ri-test.launch b/pr2eus/test/pr2-ri-test.launch index c99134f2..b446b05a 100644 --- a/pr2eus/test/pr2-ri-test.launch +++ b/pr2eus/test/pr2-ri-test.launch @@ -4,6 +4,10 @@ pass_all_args="true" /> - + + + diff --git a/pr2eus_moveit/test/test-pr2eus-moveit.l b/pr2eus_moveit/test/test-pr2eus-moveit.l index 5b3d79cd..a84a9ab8 100755 --- a/pr2eus_moveit/test/test-pr2eus-moveit.l +++ b/pr2eus_moveit/test/test-pr2eus-moveit.l @@ -290,7 +290,7 @@ (send co :add-object r) ;; move left arm between blocks (send *ri* :move-end-coords-plan (make-coords :pos #f(700 0 700)) :move-arm :larm) - (ros::rate 10) + (ros::rate 1) (while (not (send *ri* :interpolatingp)) (send *ri* :spin-once) (ros::sleep))