start-jsk / rtmros_hironx

hironx controller and applications using rtmros packages
http://wiki.ros.org/rtmros_hironx
10 stars 26 forks source link

Add VRML model file #213

Open 130s opened 9 years ago

130s commented 9 years ago

Right now the model file available in hironx_ros_bridge/models folder has 24-DOF. But the one inside of Hiro (Opensource version) is 15-DOF.

As far as I'm aware, the setting above confuses the result of getJointAngles(); the array returned contains 24 for the simulation and 15 with the real robot (example discussion).

If the VRML file used internal to the robot is available, we can provide an option to run the simulation with 15-DOF.

k-okada commented 9 years ago

one problem on vrml model of hiro is that is not opensourced yet. (but somehow collada model is opensoured). providing 15DOF version of collada model is nice.

130s commented 9 years ago

This will be beneficial to address other issues (eg. https://github.com/tork-a/rtmros_nextage/issues/135 in the downstream pkg).

@emijah How is this easy/hard?

YoheiKakiuchi commented 9 years ago

In the colladawriter, jointsid of fixed joint is set and it is more than 1000. https://github.com/fkanehiro/openhrp3/blob/master/server/ModelLoader/ColladaWriter.h#L610 So, you can change jointsid in collada model (reordering joint id may be needed).

BTW, I don't understand why this is working. Is it dirty hack? we should fix to parse jointsid in bodyinfocollada. https://github.com/fkanehiro/openhrp3/blob/master/server/ModelLoader/BodyInfoCollada_impl.cpp#L990

k-okada commented 9 years ago

BTW, I don't understand why this is working. Is it dirty hack?

do you mean whey this is running when DOF of wrl and collada are different? may be we forget to check that... https://github.com/start-jsk/rtmros_common/blob/master/hrpsys_ros_bridge/src/HrpsysSeqStateROSBridge.cpp#L380

130s commented 9 years ago

Can I ask the users and the roles of each model file format in Hiro-NXO system?

(main.* as the whole body representation)

Once I get an answer I'll update the diagram for the model relaitonship.

k-okada commented 9 years ago

In hironx, collada is the only modelfile which is publically available, so we use collada to start hrpsys system (read by ModelLoader and used in openhrp3 library which is used in hrpsys simulator). https://github.com/start-jsk/rtmros_hironx/blob/hydro-devel/hironx_ros_bridge/launch/hironx_startup.launch#L6

As for real robot, they have .wrl model in the robot, so .wrl is used in the hrpsys sytem (read by modelLoader and used in openhrp3 library which is used in rtcd (hrpsys)). https://github.com/start-jsk/rtmros_hironx/blob/hydro-devel/hironx_ros_bridge/launch/hironx_ros_bridge_real.launch#L4

I both cases, they uses collada model as robot_description and publish tf or others.

https://github.com/start-jsk/rtmros_hironx/blob/hydro-devel/hironx_ros_bridge/launch/hironx_ros_bridge_simulation.launch#L4

In the case of nextage wrl, is used for both https://github.com/tork-a/rtmros_nextage/blob/hydro-devel/nextage_ros_bridge/launch/nextage_startup.launch#L5 https://github.com/tork-a/rtmros_nextage/blob/hydro-devel/nextage_ros_bridge/launch/nextage_ros_bridge_real.launch#L4 , which means both simulation and real robot use wrl.

And collada is used in ros bridge systems https://github.com/tork-a/rtmros_nextage/blob/hydro-devel/nextage_ros_bridge/launch/nextage_ros_bridge_simulation.launch#L2

BTW, it seems hironx launch file uses without specifying nextage robot model, this means it uses nextage robot model in this case? https://github.com/tork-a/rtmros_nextage/blob/hydro-devel/nextage_ros_bridge/launch/nextage_ros_bridge_real.launch#L10

130s commented 8 years ago

BTW, it seems hironx launch file uses without specifying nextage robot model, this means it uses nextage robot model in this case? https://github.com/tork-a/rtmros_nextage/blob/hydro-devel/nextage_ros_bridge/launch/nextage_ros_bridge_real.launch#L10

(With a risk that I might not get your question) Nextage's launch passes the location of NEXTAGE model to hiro's launch, like the following. So I don't have any concern here:

In nextage_real.launch:

 4 <arg name="MODEL_FILE" default="/opt/jsk/etc/NEXTAGE/model/main.wrl" /> <!-- This shouldn't be changed unless you know what you're doing; this is the location of vrml file internal to the robot (on QNX OS). -->
:
10  <include file="$(find hironx_ros_bridge)/launch/hironx_ros_bridge_real.launch" >
11    <arg name="CONF_FILE_COLLISIONDETECT" value="$(arg CONF_FILE_COLLISIONDETECT)" />
12    <arg name="corbaport" value="$(arg corbaport)" />
13    <arg name="MODEL_FILE" value="$(arg MODEL_FILE)" />

Model file is passed to hironx_ros_bridge_real.launch:

 4  <arg name="MODEL_FILE" default="/opt/jsk/etc/HIRONX/model/main.wrl" /> <!-- This shouldn't be changed unless you know what you're doing -->
:
14  <include file="$(find hironx_ros_bridge)/launch/hironx_ros_bridge.launch" >
15    <arg name="CONF_FILE_COLLISIONDETECT" value="$(arg CONF_FILE_COLLISIONDETECT)" />
16    <arg name="corbaport" default="$(arg corbaport)" />
17    <arg name="MODEL_FILE" value="$(arg MODEL_FILE)" />