RobotML / RobotML-SDK

RobotML-SDK is an implementation of the Robot Modeling language. It is based upon Papyrus modeling tool (http://www.papyrus.org) which is itself based upon Eclipse framework (http://www.eclipse.org).
2 stars 1 forks source link

No GyroscopeSensorSystem #76

Closed SergeStinckwich closed 11 years ago

SergeStinckwich commented 11 years ago

There is no GyroscopeSensorSystem

sdhouib commented 11 years ago

@Farges : is there the concept of GyroscopeSensorSystem in the proteus ontology?

Farges commented 11 years ago

The ontology (Proteus.owl) is not detailed at this level. The last level in class specialization is LocalizationSensorHardware. Gyrometer is in comment of the class with others (GPS, accelerometer...) Capture-14 The instances created to describe challenges with the ontology were (ProteusServices.owl): Capture-15

sdhouib commented 11 years ago

If we add a GyroscopeSensorSystem stereotype to the robotML profile, what will be its configuration attributes? For example, for CameraSystem, we have configuration attributes that almost come from the sensor_msgs/CameraInfo.msg in ROS: ScreenShot275

Farges commented 11 years ago

In Morse GyroscopeClass has no specific configuration attributes. When configured with ROS middleware, it is characterized by delivering yaw, pitch and roll angles in a std_msgs::String . See the

 __init__

in http://www.openrobots.org/morse/doc/0.5/_modules/morse/sensors/gyroscope.html#GyroscopeClass . For comparison with VideoCameraClass that have configuration attributes see the

 __init__

in http://www.openrobots.org/morse/doc/0.5/_modules/morse/sensors/video_camera.html#VideoCameraClass

sdhouib commented 11 years ago

@negre are the attributes proposed by Serge compliant with CyCabTK simulator?

Farges commented 11 years ago

@sdhouib No relation with the initial issue, but in the stereotype CameraSystem the multiplicity of Float32 for translate and rotate seems to be [1] instead of [3].

sdhouib commented 11 years ago

@Farges What about typing translate and rotate by Point32 ?

Farges commented 11 years ago

@sdhouib In ROS, the most adequate geometry message is translate + rotate = Pose ( http://ros.org/doc/api/geometry_msgs/html/msg/Pose.html ). However in Pose the rotate is given in a quaternion form while it seems that in RobotML rotate is given in Euler angles. As there is no Euler angles type in ROS two Point ( http://ros.org/doc/api/geometry_msgs/html/msg/Point.html ) or two Point32 are acceptable.

negre commented 11 years ago

For me the GyroscopeSystem is an IMU. The associated output data are described by the ROS sensor_msgs/Imu message.

sdhouib commented 11 years ago

@SergeStinckwich in fact, there is a stereotype InertialMeasurementUnit in the profile. Is this setereotype sufficient dor describing GyroscopeSystem? ScreenShot277

Farges commented 11 years ago

In real life an IMU is a composite system including gyro-meters and accelerometers.

In Morse modelling IMU and gyroscope are two different components: IMU: http://www.openrobots.org/morse/doc/latest/user/code/morse.builder.html#morse.builder.sensors.IMU Gyroscope: http://www.openrobots.org/morse/doc/latest/user/code/morse.builder.html#morse.builder.sensors.Gyroscope and there is no inclusion of Gyroscope in IMU.

The publication by IMU on ROS ( http://www.openrobots.org/morse/doc/latest/_modules/morse/middleware/ros/imu.html#ImuPublisher ) corresponds to an angular velocity and a linear acceleration only in a sensor_msgs/Imu.msg . The publication by Gyroscope on ROS in a std_msgs/String.msg is not documented but observed empirically. May be it is a side effect of the programming (there is no GyroscopePublisher, may be a default StringPublisher is used by a base class in Morse or a default String message is assumed in Rospy). To be checked with Pierrick.

The issue is that we have to deal with Morse as it is and not as we think it should be.

May be this is the case we have to declare a Native sensor component with the name to be found by the generator somewhere in the model.

sensorInstanceNameFoundInTheModel = Sensor('sensorTypeFoundElsewereInTheModel')

instead of

sensorInstanceNameFoundInTheModel = Sensor('sensorTypeDeducedFromSpecificSensorStereotype')

for a non Native sensor.

sdhouib commented 11 years ago

I added Gyroscope stereotype to the profile

patinusb commented 11 years ago

Saadia, this issue is now reopened as the stereotype does not appear in the palette. You can use http://www.google.fr/imgres?safe=off&sa=X&biw=1214&bih=655&tbm=isch&tbnid=w-ahb3jQ_pjlwM:&imgrefurl=http://www.amazon.fr/Apple-iPod-Touch-16-Noir/dp/B009A77WOQ&docid=LjvBStHZgTi-kM&imgurl=http://g-ecx.images-amazon.com/images/G/08/products/electronics/mix/page-produits/ICONE4GIRO.png&w=108&h=110&ei=Cge_UdLTOYn_ObHagfgP&zoom=1&iact=hc&vpx=114&vpy=281&dur=1604&hovh=88&hovw=86&tx=81&ty=38&page=1&tbnh=88&tbnw=82&start=0&ndsp=36&ved=1t:429,r:1,s:0,i:86 as the icon.

SergeStinckwich commented 11 years ago

Move to RobotML 1.3 milestone