From 262b72f5a96c876463958ba029863dbd1a3591c4 Mon Sep 17 00:00:00 2001
From: Guilhem Saurel <guilhem.saurel@laas.fr>
Date: Tue, 5 Nov 2019 15:14:47 +0100
Subject: [PATCH] romeo: CMake, loader & test

---
 CMakeLists.txt                             | 1 +
 python/example_robot_data/__init__.py      | 4 ++--
 python/example_robot_data/__main__.py      | 7 ++++++-
 python/example_robot_data/robots_loader.py | 7 +++++++
 unittest/test_load.py                      | 8 +++++++-
 5 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2736043..c8536d8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -48,4 +48,5 @@ IF(NOT INSTALL_PYTHON_INTERFACE_ONLY)
   INSTALL(DIRECTORY kinova_description DESTINATION share/${PROJECT_NAME})
   INSTALL(DIRECTORY tiago_description DESTINATION share/${PROJECT_NAME})
   INSTALL(DIRECTORY ur_description DESTINATION share/${PROJECT_NAME})
+  INSTALL(DIRECTORY romeo_description DESTINATION share/${PROJECT_NAME})
 ENDIF(NOT INSTALL_PYTHON_INTERFACE_ONLY)
diff --git a/python/example_robot_data/__init__.py b/python/example_robot_data/__init__.py
index 3ca7eec..337b88d 100644
--- a/python/example_robot_data/__init__.py
+++ b/python/example_robot_data/__init__.py
@@ -1,3 +1,3 @@
 # flake8: noqa
-from .robots_loader import (getModelPath, loadANYmal, loadHyQ, loadICub, loadSolo, loadTalos, loadTalosArm,
-                            loadTalosLegs, loadKinova, loadTiago, loadTiagoNoHand, loadUR, readParamsFromSrdf)
+from .robots_loader import (getModelPath, loadANYmal, loadHyQ, loadICub, loadKinova, loadRomeo, loadSolo, loadTalos,
+                            loadTalosArm, loadTalosLegs, loadTiago, loadTiagoNoHand, loadUR, readParamsFromSrdf)
diff --git a/python/example_robot_data/__main__.py b/python/example_robot_data/__main__.py
index 9b5e671..da4b1ad 100644
--- a/python/example_robot_data/__main__.py
+++ b/python/example_robot_data/__main__.py
@@ -4,7 +4,7 @@ from . import robots_loader
 
 ROBOTS = [
     'anymal', 'anymal_kinova', 'hyq', 'solo', 'solo12', 'talos', 'talos_arm', 'talos_legs', 'kinova', 'tiago',
-    'tiago_no_hand', 'icub', 'ur5'
+    'tiago_no_hand', 'icub', 'ur5', 'romeo'
 ]
 
 parser = ArgumentParser()
@@ -76,3 +76,8 @@ elif args.robot == 'ur5':
     ur5 = robots_loader.loadUR()
     ur5.initViewer(loadModel=True)
     ur5.display(ur5.q0)
+
+elif args.robot == 'romeo':
+    romeo = robots_loader.loadRomeo()
+    romeo.initViewer(loadModel=True)
+    romeo.display(romeo.q0)
diff --git a/python/example_robot_data/robots_loader.py b/python/example_robot_data/robots_loader.py
index 83edd93..5e51873 100644
--- a/python/example_robot_data/robots_loader.py
+++ b/python/example_robot_data/robots_loader.py
@@ -241,3 +241,10 @@ def loadUR(robot=5, limited=False):
     URDF_SUBPATH = "/ur_description/urdf/" + URDF_FILENAME
     modelPath = getModelPath(URDF_SUBPATH)
     return RobotWrapper.BuildFromURDF(modelPath + URDF_SUBPATH, [modelPath])
+
+
+def loadRomeo():
+    URDF_FILENAME = "romeo.urdf"
+    URDF_SUBPATH = "/romeo_description/urdf/" + URDF_FILENAME
+    modelPath = getModelPath(URDF_SUBPATH)
+    return RobotWrapper.BuildFromURDF(modelPath + URDF_SUBPATH, [modelPath], pinocchio.JointModelFreeFlyer())
diff --git a/unittest/test_load.py b/unittest/test_load.py
index bdd264a..2052199 100755
--- a/unittest/test_load.py
+++ b/unittest/test_load.py
@@ -107,10 +107,16 @@ class KinovaTest(RobotTestCase):
     RobotTestCase.NV = 6
 
 
+class RomeoTest(RobotTestCase):
+    RobotTestCase.ROBOT = example_robot_data.loadRomeo()
+    RobotTestCase.NQ = 62
+    RobotTestCase.NV = 61
+
+
 if __name__ == '__main__':
     test_classes_to_run = [
         ANYmalTest, ANYmalKinovaTest, HyQTest, TalosTest, TalosArmTest, TalosArmFloatingTest, TalosLegsTest, ICubTest,
-        SoloTest, Solo12Test, TiagoTest, TiagoNoHandTest, KinovaTest
+        SoloTest, Solo12Test, TiagoTest, TiagoNoHandTest, KinovaTest, RomeoTest
     ]
     loader = unittest.TestLoader()
     suites_list = []
-- 
GitLab