visualize the commponents port connection

Dear Orocos users

I am reading and adapt a robot control and control programe which is
depends on the orocos and ros. All components are developed in the
orocos components form. I want to ask whether it is possible to
visualize the port connection like matlab doing, or we have to check
this port connection manually.

Best, Qiang

visualize the commponents port connection

maybe the rtt_dot_service is what you are looking for.

https://gitorious.org/rtt_dot_service

Cheers, Gianni.

On 12/09/2013 10:57 AM, Qiang Li wrote:
> Dear Orocos users
>
> I am reading and adapt a robot control and control programe which is
> depends on the orocos and ros. All components are developed in the
> orocos components form. I want to ask whether it is possible to
> visualize the port connection like matlab doing, or we have to check
> this port connection manually.
>
> Best, Qiang
>

visualize the commponents port connection

Dear Gianni

Thanks so quick message. I would like to following your advice to
manually load package and start the service in the deployer.
Because I am using orocos-ros-chain installation from
http://wiki.ros.org/orocos_toolchain_ros

rtt-dot package is missing. when I want to load it.
the deployer report that
Deployer [S]> import ("rtt_dot")
20.978 [ Info ][DeploymentComponent::import] Not a ros package: rtt_dot
20.979 [ ERROR ][DeploymentComponent::import] No such package or
directory found in search path: rtt_dot. Search path is:
20.980 [ ERROR ][DeploymentComponent::import]
/opt/ros/groovy/stacks/orocos_toolchain/install/lib/orocos:.
20.980 [ ERROR ][DeploymentComponent::import]
/opt/ros/groovy/stacks/orocos_toolchain/install/lib/orocos/rtt_dot
20.980 [ ERROR ][DeploymentComponent::import]
/opt/ros/groovy/stacks/orocos_toolchain/install/lib/orocos/gnulinux/rtt_dot
20.980 [ ERROR ][DeploymentComponent::import] ./rtt_dot
20.980 [ ERROR ][DeploymentComponent::import] ./gnulinux/rtt_do

where I can find and install this package. can it be used as other ros
package, like rtt_common_msgs, rtt_geometry, rtt_ros_comm etc?

Best, Qiang

On 12/09/2013 12:21 PM, Gianni Borghesan wrote:
>
>
> On 12/09/2013 12:10 PM, Qiang Li wrote:
>> Thanks, Gianni.
>>
>> It seems that this is the tool that I need. I check the rtt_dot_service
>> out and build it successfully.
>> But I do not know how to use it in my deployer file. I found the
>> instruction like following
>>
>> To use it, load the service in your Deployer component, e.g. in your
>> .ops script, add:
>>
>> {{{
>> import ("rtt_dot")
>> loadService("Deployer","dot")
>> }}}
>>
>> But I am using deployer form like
>>
>> <simple name="Import" type="string"><value>lwr_fri<value><simple>
>> <simple name="Import"
>> type="string"><value>lwr_impedance_controller<value><simple>
>>
>> <struct name="diagnostic" type="ConnPolicy">
>> <simple name="type" type="short"><value>0<value><simple>
>> <simple name="size" type="short"><value>1<value><simple>
>> <simple name="transport" type="short"><value>3<value><simple>
>> <simple name="name_id"
>> type="string"><value>/diagnostic<value><simple>
>> <struct>
>>
>> Apparently, it does not match, can you show me how I can adapt import
>> and loadService in my deployer form?
>
> i would suggest to do the other way around, because the xml stile is
> not used and unpractical, and most of the people use the ops or lua
> script for deploying.
> honestly i do not know how the load service is translated in the xml tag.
>
> anyway, .ops is only a set of command that are issued in the deployer.
> so you can call for the import, load the service in the deployer (you
> can also load in other component if you want to know local connection
> only) and trigger the generate().
> it will generate a dot file
> ("dot name_file.dot -Tps -O" will generate a ps from the dot.)
>
>>
>> Best, Qiang
>>
>> On 12/09/2013 11:08 AM, Gianni Borghesan wrote:
>>> maybe the rtt_dot_service is what you are looking for.
>>>
>>> https://gitorious.org/rtt_dot_service
>>>
>>>
>>> Cheers, Gianni.
>>>
>>> On 12/09/2013 10:57 AM, Qiang Li wrote:
>>>> Dear Orocos users
>>>>
>>>> I am reading and adapt a robot control and control programe which is
>>>> depends on the orocos and ros. All components are developed in the
>>>> orocos components form. I want to ask whether it is possible to
>>>> visualize the port connection like matlab doing, or we have to check
>>>> this port connection manually.
>>>>
>>>> Best, Qiang
>>>>
>>
>>
>

visualize the commponents port connection

check if you can roscd
roscd rtt_dot_service
if not it means that you have to put in your ros path.
Gianni.

On 12/09/2013 01:47 PM, Qiang Li wrote:
> Dear Gianni
>
> Thanks so quick message. I would like to following your advice to
> manually load package and start the service in the deployer.
> Because I am using orocos-ros-chain installation from
> http://wiki.ros.org/orocos_toolchain_ros
>
> rtt-dot package is missing. when I want to load it.
> the deployer report that
> Deployer [S]> import ("rtt_dot")
> 20.978 [ Info ][DeploymentComponent::import] Not a ros package: rtt_dot
> 20.979 [ ERROR ][DeploymentComponent::import] No such package or
> directory found in search path: rtt_dot. Search path is:
> 20.980 [ ERROR ][DeploymentComponent::import]
> /opt/ros/groovy/stacks/orocos_toolchain/install/lib/orocos:.
> 20.980 [ ERROR ][DeploymentComponent::import]
> /opt/ros/groovy/stacks/orocos_toolchain/install/lib/orocos/rtt_dot
> 20.980 [ ERROR ][DeploymentComponent::import]
> /opt/ros/groovy/stacks/orocos_toolchain/install/lib/orocos/gnulinux/rtt_dot
> 20.980 [ ERROR ][DeploymentComponent::import] ./rtt_dot
> 20.980 [ ERROR ][DeploymentComponent::import] ./gnulinux/rtt_do
>
>
> where I can find and install this package. can it be used as other ros
> package, like rtt_common_msgs, rtt_geometry, rtt_ros_comm etc?
>
> Best, Qiang
>
>
> On 12/09/2013 12:21 PM, Gianni Borghesan wrote:
>>
>>
>> On 12/09/2013 12:10 PM, Qiang Li wrote:
>>> Thanks, Gianni.
>>>
>>> It seems that this is the tool that I need. I check the rtt_dot_service
>>> out and build it successfully.
>>> But I do not know how to use it in my deployer file. I found the
>>> instruction like following
>>>
>>> To use it, load the service in your Deployer component, e.g. in your
>>> .ops script, add:
>>>
>>> {{{
>>> import ("rtt_dot")
>>> loadService("Deployer","dot")
>>> }}}
>>>
>>> But I am using deployer form like
>>>
>>> <simple name="Import" type="string"><value>lwr_fri<value><simple>
>>> <simple name="Import"
>>> type="string"><value>lwr_impedance_controller<value><simple>
>>>
>>> <struct name="diagnostic" type="ConnPolicy">
>>> <simple name="type" type="short"><value>0<value><simple>
>>> <simple name="size" type="short"><value>1<value><simple>
>>> <simple name="transport" type="short"><value>3<value><simple>
>>> <simple name="name_id"
>>> type="string"><value>/diagnostic<value><simple>
>>> <struct>
>>>
>>> Apparently, it does not match, can you show me how I can adapt import
>>> and loadService in my deployer form?
>>
>> i would suggest to do the other way around, because the xml stile is
>> not used and unpractical, and most of the people use the ops or lua
>> script for deploying.
>> honestly i do not know how the load service is translated in the xml tag.
>>
>> anyway, .ops is only a set of command that are issued in the deployer.
>> so you can call for the import, load the service in the deployer (you
>> can also load in other component if you want to know local connection
>> only) and trigger the generate().
>> it will generate a dot file
>> ("dot name_file.dot -Tps -O" will generate a ps from the dot.)
>>
>>>
>>> Best, Qiang
>>>
>>> On 12/09/2013 11:08 AM, Gianni Borghesan wrote:
>>>> maybe the rtt_dot_service is what you are looking for.
>>>>
>>>> https://gitorious.org/rtt_dot_service
>>>>
>>>>
>>>> Cheers, Gianni.
>>>>
>>>> On 12/09/2013 10:57 AM, Qiang Li wrote:
>>>>> Dear Orocos users
>>>>>
>>>>> I am reading and adapt a robot control and control programe which is
>>>>> depends on the orocos and ros. All components are developed in the
>>>>> orocos components form. I want to ask whether it is possible to
>>>>> visualize the port connection like matlab doing, or we have to check
>>>>> this port connection manually.
>>>>>
>>>>> Best, Qiang
>>>>>
>>>
>>>
>>
>
>

visualize the commponents port connection

Thanks, Gianni.

It seems that this is the tool that I need. I check the rtt_dot_service
out and build it successfully.
But I do not know how to use it in my deployer file. I found the
instruction like following

To use it, load the service in your Deployer component, e.g. in your
.ops script, add:

{{{
import ("rtt_dot")
loadService("Deployer","dot")
}}}

But I am using deployer form like

<simple name="Import" type="string"><value>lwr_fri<value><simple>
<simple name="Import"
type="string"><value>lwr_impedance_controller<value><simple>

<struct name="diagnostic" type="ConnPolicy">
<simple name="type" type="short"><value>0<value><simple>
<simple name="size" type="short"><value>1<value><simple>
<simple name="transport" type="short"><value>3<value><simple>
<simple name="name_id" type="string"><value>/diagnostic<value><simple>
<struct>

Apparently, it does not match, can you show me how I can adapt import
and loadService in my deployer form?

Best, Qiang

On 12/09/2013 11:08 AM, Gianni Borghesan wrote:
> maybe the rtt_dot_service is what you are looking for.
>
> https://gitorious.org/rtt_dot_service
>
>
> Cheers, Gianni.
>
> On 12/09/2013 10:57 AM, Qiang Li wrote:
>> Dear Orocos users
>>
>> I am reading and adapt a robot control and control programe which is
>> depends on the orocos and ros. All components are developed in the
>> orocos components form. I want to ask whether it is possible to
>> visualize the port connection like matlab doing, or we have to check
>> this port connection manually.
>>
>> Best, Qiang
>>

visualize the commponents port connection

On 12/09/2013 12:10 PM, Qiang Li wrote:
> Thanks, Gianni.
>
> It seems that this is the tool that I need. I check the rtt_dot_service
> out and build it successfully.
> But I do not know how to use it in my deployer file. I found the
> instruction like following
>
> To use it, load the service in your Deployer component, e.g. in your
> .ops script, add:
>
> {{{
> import ("rtt_dot")
> loadService("Deployer","dot")
> }}}
>
> But I am using deployer form like
>
> <simple name="Import" type="string"><value>lwr_fri<value><simple>
> <simple name="Import"
> type="string"><value>lwr_impedance_controller<value><simple>
>
> <struct name="diagnostic" type="ConnPolicy">
> <simple name="type" type="short"><value>0<value><simple>
> <simple name="size" type="short"><value>1<value><simple>
> <simple name="transport" type="short"><value>3<value><simple>
> <simple name="name_id" type="string"><value>/diagnostic<value><simple>
> <struct>
>
> Apparently, it does not match, can you show me how I can adapt import
> and loadService in my deployer form?

see: http://www.orocos.org/stable/documentation/ocl/v2.x/doc-xml/orocos-deplo...

<simple name="Import" type="string"><value>rtt_dot_service<value><simple>
and in the component you want to load it:
<simple name="dot" type="string"><value>dot<value><simple>

(btw, the package is called rtt_dot_service iso. rtt_dot)

but, you can do this in the taskbrowser (=when you are running the application) by just typing there the import and loadService statement
(don't forget that in a ROS environment the rtt_dot package should be in your ROS_PACKAGE_PATH env var)
and then calling the service:
dot.generate

the service has following operations:
dot.chan_args dot.comp_args dot.conn_args dot.dot_file dot.generate dot.getOwnerName

>
> Best, Qiang
>
> On 12/09/2013 11:08 AM, Gianni Borghesan wrote:
>> maybe the rtt_dot_service is what you are looking for.
>>
>> https://gitorious.org/rtt_dot_service
>>
>>
>> Cheers, Gianni.
>>
>> On 12/09/2013 10:57 AM, Qiang Li wrote:
>>> Dear Orocos users
>>>
>>> I am reading and adapt a robot control and control programe which is
>>> depends on the orocos and ros. All components are developed in the
>>> orocos components form. I want to ask whether it is possible to
>>> visualize the port connection like matlab doing, or we have to check
>>> this port connection manually.
>>>
>>> Best, Qiang
>>>
>
>

visualize the commponents port connection

Thanks, it is clear that
I should use

import ("rtt_dot_service")
loadService("Deployer","dot")

Now it works. I also can use dot.dot_file to generate the orograph.dot file.

following the command from instruction, I can use rosrun xdot xdot.py orograph.dot
to visualize this connection.
When I run it, I get the error that "No such file or directory: 'orograph.dot'"

Best, Qiang

On 12/09/2013 01:55 PM, Dominick Vanthienen wrote:
>
> On 12/09/2013 12:10 PM, Qiang Li wrote:
>> Thanks, Gianni.
>>
>> It seems that this is the tool that I need. I check the rtt_dot_service
>> out and build it successfully.
>> But I do not know how to use it in my deployer file. I found the
>> instruction like following
>>
>> To use it, load the service in your Deployer component, e.g. in your
>> .ops script, add:
>>
>> {{{
>> import ("rtt_dot")
>> loadService("Deployer","dot")
>> }}}
>>
>> But I am using deployer form like
>>
>> <simple name="Import" type="string"><value>lwr_fri<value><simple>
>> <simple name="Import"
>> type="string"><value>lwr_impedance_controller<value><simple>
>>
>> <struct name="diagnostic" type="ConnPolicy">
>> <simple name="type" type="short"><value>0<value><simple>
>> <simple name="size" type="short"><value>1<value><simple>
>> <simple name="transport" type="short"><value>3<value><simple>
>> <simple name="name_id" type="string"><value>/diagnostic<value><simple>
>> <struct>
>>
>> Apparently, it does not match, can you show me how I can adapt import
>> and loadService in my deployer form?
> see: http://www.orocos.org/stable/documentation/ocl/v2.x/doc-xml/orocos-deplo...
>
> <simple name="Import" type="string"><value>rtt_dot_service<value><simple>
> and in the component you want to load it:
> <simple name="dot" type="string"><value>dot<value><simple>
>
> (btw, the package is called rtt_dot_service iso. rtt_dot)
>
> but, you can do this in the taskbrowser (=when you are running the application) by just typing there the import and loadService statement
> (don't forget that in a ROS environment the rtt_dot package should be in your ROS_PACKAGE_PATH env var)
> and then calling the service:
> dot.generate
>
> the service has following operations:
> dot.chan_args dot.comp_args dot.conn_args dot.dot_file dot.generate dot.getOwnerName
>
>
>> Best, Qiang
>>
>> On 12/09/2013 11:08 AM, Gianni Borghesan wrote:
>>> maybe the rtt_dot_service is what you are looking for.
>>>
>>> https://gitorious.org/rtt_dot_service
>>>
>>>
>>> Cheers, Gianni.
>>>
>>> On 12/09/2013 10:57 AM, Qiang Li wrote:
>>>> Dear Orocos users
>>>>
>>>> I am reading and adapt a robot control and control programe which is
>>>> depends on the orocos and ros. All components are developed in the
>>>> orocos components form. I want to ask whether it is possible to
>>>> visualize the port connection like matlab doing, or we have to check
>>>> this port connection manually.
>>>>
>>>> Best, Qiang
>>>>
>>

visualize the commponents port connection

On 12/09/2013 02:17 PM, Qiang Li wrote:
> Thanks, it is clear that
> I should use
>
> import ("rtt_dot_service")
> loadService("Deployer","dot")
>
> Now it works. I also can use dot.dot_file to generate the orograph.dot file.
>
> following the command from instruction, I can use rosrun xdot xdot.py orograph.dot
> to visualize this connection.
> When I run it, I get the error that "No such file or directory: 'orograph.dot'"
make sure the file exists and you are executing the command from within the directory where orograph.dot is located (or put the correct path in the command)
>
> Best, Qiang
>
>
> On 12/09/2013 01:55 PM, Dominick Vanthienen wrote:
>>
>> On 12/09/2013 12:10 PM, Qiang Li wrote:
>>> Thanks, Gianni.
>>>
>>> It seems that this is the tool that I need. I check the rtt_dot_service
>>> out and build it successfully.
>>> But I do not know how to use it in my deployer file. I found the
>>> instruction like following
>>>
>>> To use it, load the service in your Deployer component, e.g. in your
>>> .ops script, add:
>>>
>>> {{{
>>> import ("rtt_dot")
>>> loadService("Deployer","dot")
>>> }}}
>>>
>>> But I am using deployer form like
>>>
>>> <simple name="Import" type="string"><value>lwr_fri<value><simple>
>>> <simple name="Import"
>>> type="string"><value>lwr_impedance_controller<value><simple>
>>>
>>> <struct name="diagnostic" type="ConnPolicy">
>>> <simple name="type" type="short"><value>0<value><simple>
>>> <simple name="size" type="short"><value>1<value><simple>
>>> <simple name="transport" type="short"><value>3<value><simple>
>>> <simple name="name_id" type="string"><value>/diagnostic<value><simple>
>>> <struct>
>>>
>>> Apparently, it does not match, can you show me how I can adapt import
>>> and loadService in my deployer form?
>> see: http://www.orocos.org/stable/documentation/ocl/v2.x/doc-xml/orocos-deplo...
>>
>> <simple name="Import" type="string"><value>rtt_dot_service<value><simple>
>> and in the component you want to load it:
>> <simple name="dot" type="string"><value>dot<value><simple>
>>
>> (btw, the package is called rtt_dot_service iso. rtt_dot)
>>
>> but, you can do this in the taskbrowser (=when you are running the application) by just typing there the import and loadService statement
>> (don't forget that in a ROS environment the rtt_dot package should be in your ROS_PACKAGE_PATH env var)
>> and then calling the service:
>> dot.generate
>>
>> the service has following operations:
>> dot.chan_args dot.comp_args dot.conn_args dot.dot_file dot.generate dot.getOwnerName
>>
>>
>>> Best, Qiang
>>>
>>> On 12/09/2013 11:08 AM, Gianni Borghesan wrote:
>>>> maybe the rtt_dot_service is what you are looking for.
>>>>
>>>> https://gitorious.org/rtt_dot_service
>>>>
>>>>
>>>> Cheers, Gianni.
>>>>
>>>> On 12/09/2013 10:57 AM, Qiang Li wrote:
>>>>> Dear Orocos users
>>>>>
>>>>> I am reading and adapt a robot control and control programe which is
>>>>> depends on the orocos and ros. All components are developed in the
>>>>> orocos components form. I want to ask whether it is possible to
>>>>> visualize the port connection like matlab doing, or we have to check
>>>>> this port connection manually.
>>>>>
>>>>> Best, Qiang
>>>>>
>>>
>
>

visualize the commponents port connection

On 12/09/2013 02:26 PM, Dominick Vanthienen wrote:
>
> On 12/09/2013 02:17 PM, Qiang Li wrote:
>> Thanks, it is clear that
>> I should use
>>
>> import ("rtt_dot_service")
>> loadService("Deployer","dot")
>>
>> Now it works. I also can use dot.dot_file to generate the orograph.dot file.
>>
>> following the command from instruction, I can use rosrun xdot xdot.py orograph.dot
>> to visualize this connection.
>> When I run it, I get the error that "No such file or directory: 'orograph.dot'"
> make sure the file exists and you are executing the command from within the directory where orograph.dot is located (or put the correct path in the command)
I am not quite sure where this file--orograph.dot. what I do is in the
started deployer taskbrowser
give the command

import ("rtt_dot_service")
loadService("Deployer","dot")

then

Deployer [S]> dot.dot_file
= orograph.dot

I can not start rosrun in this browser because the error is:
Deployer [S]> rosrun xdot xdot.py orograph.dot
No method "rosrun" registered for the object or task "Deployer".

so I start rosrun xdot xdot.py orograph.dot in another terminal, I am
not sure where is the orograph.dot

Best, Qiang

>> Best, Qiang
>>
>>
>> On 12/09/2013 01:55 PM, Dominick Vanthienen wrote:
>>> On 12/09/2013 12:10 PM, Qiang Li wrote:
>>>> Thanks, Gianni.
>>>>
>>>> It seems that this is the tool that I need. I check the rtt_dot_service
>>>> out and build it successfully.
>>>> But I do not know how to use it in my deployer file. I found the
>>>> instruction like following
>>>>
>>>> To use it, load the service in your Deployer component, e.g. in your
>>>> .ops script, add:
>>>>
>>>> {{{
>>>> import ("rtt_dot")
>>>> loadService("Deployer","dot")
>>>> }}}
>>>>
>>>> But I am using deployer form like
>>>>
>>>> <simple name="Import" type="string"><value>lwr_fri<value><simple>
>>>> <simple name="Import"
>>>> type="string"><value>lwr_impedance_controller<value><simple>
>>>>
>>>> <struct name="diagnostic" type="ConnPolicy">
>>>> <simple name="type" type="short"><value>0<value><simple>
>>>> <simple name="size" type="short"><value>1<value><simple>
>>>> <simple name="transport" type="short"><value>3<value><simple>
>>>> <simple name="name_id" type="string"><value>/diagnostic<value><simple>
>>>> <struct>
>>>>
>>>> Apparently, it does not match, can you show me how I can adapt import
>>>> and loadService in my deployer form?
>>> see: http://www.orocos.org/stable/documentation/ocl/v2.x/doc-xml/orocos-deplo...
>>>
>>> <simple name="Import" type="string"><value>rtt_dot_service<value><simple>
>>> and in the component you want to load it:
>>> <simple name="dot" type="string"><value>dot<value><simple>
>>>
>>> (btw, the package is called rtt_dot_service iso. rtt_dot)
>>>
>>> but, you can do this in the taskbrowser (=when you are running the application) by just typing there the import and loadService statement
>>> (don't forget that in a ROS environment the rtt_dot package should be in your ROS_PACKAGE_PATH env var)
>>> and then calling the service:
>>> dot.generate
>>>
>>> the service has following operations:
>>> dot.chan_args dot.comp_args dot.conn_args dot.dot_file dot.generate dot.getOwnerName
>>>
>>>
>>>> Best, Qiang
>>>>
>>>> On 12/09/2013 11:08 AM, Gianni Borghesan wrote:
>>>>> maybe the rtt_dot_service is what you are looking for.
>>>>>
>>>>> https://gitorious.org/rtt_dot_service
>>>>>
>>>>>
>>>>> Cheers, Gianni.
>>>>>
>>>>> On 12/09/2013 10:57 AM, Qiang Li wrote:
>>>>>> Dear Orocos users
>>>>>>
>>>>>> I am reading and adapt a robot control and control programe which is
>>>>>> depends on the orocos and ros. All components are developed in the
>>>>>> orocos components form. I want to ask whether it is possible to
>>>>>> visualize the port connection like matlab doing, or we have to check
>>>>>> this port connection manually.
>>>>>>
>>>>>> Best, Qiang
>>>>>>
>>

visualize the commponents port connection

On 12/09/2013 02:33 PM, Qiang Li wrote:
> On 12/09/2013 02:26 PM, Dominick Vanthienen wrote:
>>
>> On 12/09/2013 02:17 PM, Qiang Li wrote:
>>> Thanks, it is clear that
>>> I should use
>>>
>>> import ("rtt_dot_service")
>>> loadService("Deployer","dot")
>>>
>>> Now it works. I also can use dot.dot_file to generate the orograph.dot file.
>>>
>>> following the command from instruction, I can use rosrun xdot xdot.py orograph.dot
>>> to visualize this connection.
>>> When I run it, I get the error that "No such file or directory: 'orograph.dot'"
>> make sure the file exists and you are executing the command from within the directory where orograph.dot is located (or put the correct path in the command)
> I am not quite sure where this file--orograph.dot. what I do is in the started deployer taskbrowser
> give the command
>
> import ("rtt_dot_service")
> loadService("Deployer","dot")
>
> then
>
> Deployer [S]> dot.dot_file
> = orograph.dot
I think this is the property that contains the name of the file that will be generated
try dot.generate
>
> I can not start rosrun in this browser because the error is:
> Deployer [S]> rosrun xdot xdot.py orograph.dot
> No method "rosrun" registered for the object or task "Deployer".
no, the rosrun ... command should be executed in a terminal window, not in your taskbrowser: it is an external tool
>
> so I start rosrun xdot xdot.py orograph.dot in another terminal, I am not sure where is the orograph.dot
probably not generated, so non-existing
>
> Best, Qiang
>
>>> Best, Qiang
>>>
>>>
>>> On 12/09/2013 01:55 PM, Dominick Vanthienen wrote:
>>>> On 12/09/2013 12:10 PM, Qiang Li wrote:
>>>>> Thanks, Gianni.
>>>>>
>>>>> It seems that this is the tool that I need. I check the rtt_dot_service
>>>>> out and build it successfully.
>>>>> But I do not know how to use it in my deployer file. I found the
>>>>> instruction like following
>>>>>
>>>>> To use it, load the service in your Deployer component, e.g. in your
>>>>> .ops script, add:
>>>>>
>>>>> {{{
>>>>> import ("rtt_dot")
>>>>> loadService("Deployer","dot")
>>>>> }}}
>>>>>
>>>>> But I am using deployer form like
>>>>>
>>>>> <simple name="Import" type="string"><value>lwr_fri<value><simple>
>>>>> <simple name="Import"
>>>>> type="string"><value>lwr_impedance_controller<value><simple>
>>>>>
>>>>> <struct name="diagnostic" type="ConnPolicy">
>>>>> <simple name="type" type="short"><value>0<value><simple>
>>>>> <simple name="size" type="short"><value>1<value><simple>
>>>>> <simple name="transport" type="short"><value>3<value><simple>
>>>>> <simple name="name_id" type="string"><value>/diagnostic<value><simple>
>>>>> <struct>
>>>>>
>>>>> Apparently, it does not match, can you show me how I can adapt import
>>>>> and loadService in my deployer form?
>>>> see: http://www.orocos.org/stable/documentation/ocl/v2.x/doc-xml/orocos-deplo...
>>>>
>>>> <simple name="Import" type="string"><value>rtt_dot_service<value><simple>
>>>> and in the component you want to load it:
>>>> <simple name="dot" type="string"><value>dot<value><simple>
>>>>
>>>> (btw, the package is called rtt_dot_service iso. rtt_dot)
>>>>
>>>> but, you can do this in the taskbrowser (=when you are running the application) by just typing there the import and loadService statement
>>>> (don't forget that in a ROS environment the rtt_dot package should be in your ROS_PACKAGE_PATH env var)
>>>> and then calling the service:
>>>> dot.generate
>>>>
>>>> the service has following operations:
>>>> dot.chan_args dot.comp_args dot.conn_args dot.dot_file dot.generate dot.getOwnerName
>>>>
>>>>
>>>>> Best, Qiang
>>>>>
>>>>> On 12/09/2013 11:08 AM, Gianni Borghesan wrote:
>>>>>> maybe the rtt_dot_service is what you are looking for.
>>>>>>
>>>>>> https://gitorious.org/rtt_dot_service
>>>>>>
>>>>>>
>>>>>> Cheers, Gianni.
>>>>>>
>>>>>> On 12/09/2013 10:57 AM, Qiang Li wrote:
>>>>>>> Dear Orocos users
>>>>>>>
>>>>>>> I am reading and adapt a robot control and control programe which is
>>>>>>> depends on the orocos and ros. All components are developed in the
>>>>>>> orocos components form. I want to ask whether it is possible to
>>>>>>> visualize the port connection like matlab doing, or we have to check
>>>>>>> this port connection manually.
>>>>>>>
>>>>>>> Best, Qiang
>>>>>>>
>>>
>
>

visualize the commponents port connection

On 12/09/2013 02:36 PM, Dominick Vanthienen wrote:
>
>
> On 12/09/2013 02:33 PM, Qiang Li wrote:
>> On 12/09/2013 02:26 PM, Dominick Vanthienen wrote:
>>>
>>> On 12/09/2013 02:17 PM, Qiang Li wrote:
>>>> Thanks, it is clear that
>>>> I should use
>>>>
>>>> import ("rtt_dot_service")
>>>> loadService("Deployer","dot")
>>>>
>>>> Now it works. I also can use dot.dot_file to generate the
>>>> orograph.dot file.
>>>>
>>>> following the command from instruction, I can use rosrun xdot
>>>> xdot.py orograph.dot
>>>> to visualize this connection.
>>>> When I run it, I get the error that "No such file or directory:
>>>> 'orograph.dot'"
>>> make sure the file exists and you are executing the command from
>>> within the directory where orograph.dot is located (or put the
>>> correct path in the command)
>> I am not quite sure where this file--orograph.dot. what I do is in
>> the started deployer taskbrowser
>> give the command
>>
>> import ("rtt_dot_service")
>> loadService("Deployer","dot")
>>
>> then
>>
>> Deployer [S]> dot.dot_file
>> = orograph.dot
> I think this is the property that contains the name of the file that
> will be generated
> try dot.generate

Sorry, Dominick, I did not get your point. What I want to do is
visualize the connection. (like matlab/simulink).
when I try dot.generate, it produce a text to show the connection case.
I found in the rtt_dot_service instruciton description like

To use it, load the service in your Deployer component, e.g. in your
.ops script, add:

{{{
import ("rtt_dot")
loadService("Deployer","dot")
}}}

The service has a property, dot_file, which you can adjust to the
file you like to be generated. The way components, connections and
channels can be plotted can be tuned using the comp_args, conn_args and
chan_args properties. Visualisation of the dot file is possible, e.g.
with the ROS xdot tool:

{{{
rosrun xdot xdot.py orograph.dot
}}}

Colors are used to display the component's current state:

  • Init - white
  • PreOperational - orange
  • FatalError, Exception, RunTimeError - red
  • Stopped - lightblue
  • Running - green

So that is why I am using dot.dot_file to generate orograph.dot, I had
thought it is possible to use rosrun xdot xdot.py orograph.dot
to visualize the connection. Maybe something I am missing, please let me
know.

Best, Qiang

>>
>> I can not start rosrun in this browser because the error is:
>> Deployer [S]> rosrun xdot xdot.py orograph.dot
>> No method "rosrun" registered for the object or task "Deployer".
> no, the rosrun ... command should be executed in a terminal window,
> not in your taskbrowser: it is an external tool
>>
>> so I start rosrun xdot xdot.py orograph.dot in another terminal, I am
>> not sure where is the orograph.dot
> probably not generated, so non-existing
>>
>> Best, Qiang
>>
>>>> Best, Qiang
>>>>
>>>>
>>>> On 12/09/2013 01:55 PM, Dominick Vanthienen wrote:
>>>>> On 12/09/2013 12:10 PM, Qiang Li wrote:
>>>>>> Thanks, Gianni.
>>>>>>
>>>>>> It seems that this is the tool that I need. I check the
>>>>>> rtt_dot_service
>>>>>> out and build it successfully.
>>>>>> But I do not know how to use it in my deployer file. I found the
>>>>>> instruction like following
>>>>>>
>>>>>> To use it, load the service in your Deployer component, e.g. in your
>>>>>> .ops script, add:
>>>>>>
>>>>>> {{{
>>>>>> import ("rtt_dot")
>>>>>> loadService("Deployer","dot")
>>>>>> }}}
>>>>>>
>>>>>> But I am using deployer form like
>>>>>>
>>>>>> <simple name="Import" type="string"><value>lwr_fri<value><simple>
>>>>>> <simple name="Import"
>>>>>> type="string"><value>lwr_impedance_controller<value><simple>
>>>>>>
>>>>>> <struct name="diagnostic" type="ConnPolicy">
>>>>>> <simple name="type" type="short"><value>0<value><simple>
>>>>>> <simple name="size" type="short"><value>1<value><simple>
>>>>>> <simple name="transport"
>>>>>> type="short"><value>3<value><simple>
>>>>>> <simple name="name_id"
>>>>>> type="string"><value>/diagnostic<value><simple>
>>>>>> <struct>
>>>>>>
>>>>>> Apparently, it does not match, can you show me how I can adapt
>>>>>> import
>>>>>> and loadService in my deployer form?
>>>>> see:
>>>>> http://www.orocos.org/stable/documentation/ocl/v2.x/doc-xml/orocos-deplo...
>>>>>
>>>>> <simple name="Import"
>>>>> type="string"><value>rtt_dot_service<value><simple>
>>>>> and in the component you want to load it:
>>>>> <simple name="dot" type="string"><value>dot<value><simple>
>>>>>
>>>>> (btw, the package is called rtt_dot_service iso. rtt_dot)
>>>>>
>>>>> but, you can do this in the taskbrowser (=when you are running the
>>>>> application) by just typing there the import and loadService
>>>>> statement
>>>>> (don't forget that in a ROS environment the rtt_dot package should
>>>>> be in your ROS_PACKAGE_PATH env var)
>>>>> and then calling the service:
>>>>> dot.generate
>>>>>
>>>>> the service has following operations:
>>>>> dot.chan_args dot.comp_args dot.conn_args
>>>>> dot.dot_file dot.generate dot.getOwnerName
>>>>>
>>>>>
>>>>>> Best, Qiang
>>>>>>
>>>>>> On 12/09/2013 11:08 AM, Gianni Borghesan wrote:
>>>>>>> maybe the rtt_dot_service is what you are looking for.
>>>>>>>
>>>>>>> https://gitorious.org/rtt_dot_service
>>>>>>>
>>>>>>>
>>>>>>> Cheers, Gianni.
>>>>>>>
>>>>>>> On 12/09/2013 10:57 AM, Qiang Li wrote:
>>>>>>>> Dear Orocos users
>>>>>>>>
>>>>>>>> I am reading and adapt a robot control and control programe
>>>>>>>> which is
>>>>>>>> depends on the orocos and ros. All components are developed in the
>>>>>>>> orocos components form. I want to ask whether it is possible to
>>>>>>>> visualize the port connection like matlab doing, or we have to
>>>>>>>> check
>>>>>>>> this port connection manually.
>>>>>>>>
>>>>>>>> Best, Qiang
>>>>>>>>
>>>>
>>
>>

visualize the commponents port connection

hi

On 12/09/2013 02:52 PM, Qiang Li wrote:
> On 12/09/2013 02:36 PM, Dominick Vanthienen wrote:
>>
>>
>> On 12/09/2013 02:33 PM, Qiang Li wrote:
>>> On 12/09/2013 02:26 PM, Dominick Vanthienen wrote:
>>>>
>>>> On 12/09/2013 02:17 PM, Qiang Li wrote:
>>>>> Thanks, it is clear that
>>>>> I should use
>>>>>
>>>>> import ("rtt_dot_service")
>>>>> loadService("Deployer","dot")
>>>>>
>>>>> Now it works. I also can use dot.dot_file to generate the orograph.dot file.
>>>>>
>>>>> following the command from instruction, I can use rosrun xdot xdot.py orograph.dot
>>>>> to visualize this connection.
>>>>> When I run it, I get the error that "No such file or directory: 'orograph.dot'"
>>>> make sure the file exists and you are executing the command from within the directory where orograph.dot is located (or put the correct path in the command)
>>> I am not quite sure where this file--orograph.dot. what I do is in the started deployer taskbrowser
>>> give the command
>>>
>>> import ("rtt_dot_service")
>>> loadService("Deployer","dot")
>>>
>>> then
>>>
>>> Deployer [S]> dot.dot_file
>>> = orograph.dot
>> I think this is the property that contains the name of the file that will be generated
>> try dot.generate
>
> Sorry, Dominick, I did not get your point. What I want to do is visualize the connection. (like matlab/simulink).
> when I try dot.generate, it produce a text to show the connection case.
no problem:
The dot service generates a 'dot' file:
*when you load the dot service loadService("Deployer","dot")
*when you do dot.generate in the taskbrowser (after the dot service is loaded)

this 'dot file orograph.dot is a file in the dot language: http://en.wikipedia.org/wiki/DOT_%28graph_description_language%29 , that can be interpreted by the xdot tool,
which visualises the data of the 'dot' file

the generated orograph.dot file is located at the point where you executed orocos: normally this is just the place where you did rosrun ocl deployer-gnulinux ... or similar
if you run orocos from a launch file, then it is probably in the ~/.ros directory

try to locate orograph.dot after you loaded the dot service, by for example (in a terminal):
$locate orograph.dot

> I found in the rtt_dot_service instruciton description like
>
> To use it, load the service in your Deployer component, e.g. in your .ops script, add:
>
> {{{
> import ("rtt_dot")
> loadService("Deployer","dot")
> }}}
>
> The service has a property, dot_file, which you can adjust to the file you like to be generated.
in other words: with this property you change the name of the generated file, for example you can generate "f.dot" instead of "orograph.dot" by
dot.dot_file="f.dot"
dot.generate
> The way components, connections and channels can be plotted can be
> tuned using the comp_args, conn_args and chan_args properties. Visualisation of the dot file is possible, e.g. with the ROS xdot tool:
>
> {{{
> rosrun xdot xdot.py orograph.dot
> }}}
>
> Colors are used to display the component's current state:
>

    >
  • Init - white
  • >

  • PreOperational - orange
  • >

  • FatalError, Exception, RunTimeError - red
  • >

  • Stopped - lightblue
  • >

  • Running - green
  • >

>
> So that is why I am using dot.dot_file to generate orograph.dot, I had thought it is possible to use rosrun xdot xdot.py orograph.dot
> to visualize the connection. Maybe something I am missing, please let me know.
>
> Best, Qiang
>
>>>
>>> I can not start rosrun in this browser because the error is:
>>> Deployer [S]> rosrun xdot xdot.py orograph.dot
>>> No method "rosrun" registered for the object or task "Deployer".
>> no, the rosrun ... command should be executed in a terminal window, not in your taskbrowser: it is an external tool
>>>
>>> so I start rosrun xdot xdot.py orograph.dot in another terminal, I am not sure where is the orograph.dot
>> probably not generated, so non-existing
>>>
>>> Best, Qiang
>>>
>>>>> Best, Qiang
>>>>>
>>>>>
>>>>> On 12/09/2013 01:55 PM, Dominick Vanthienen wrote:
>>>>>> On 12/09/2013 12:10 PM, Qiang Li wrote:
>>>>>>> Thanks, Gianni.
>>>>>>>
>>>>>>> It seems that this is the tool that I need. I check the rtt_dot_service
>>>>>>> out and build it successfully.
>>>>>>> But I do not know how to use it in my deployer file. I found the
>>>>>>> instruction like following
>>>>>>>
>>>>>>> To use it, load the service in your Deployer component, e.g. in your
>>>>>>> .ops script, add:
>>>>>>>
>>>>>>> {{{
>>>>>>> import ("rtt_dot")
>>>>>>> loadService("Deployer","dot")
>>>>>>> }}}
>>>>>>>
>>>>>>> But I am using deployer form like
>>>>>>>
>>>>>>> <simple name="Import" type="string"><value>lwr_fri<value><simple>
>>>>>>> <simple name="Import"
>>>>>>> type="string"><value>lwr_impedance_controller<value><simple>
>>>>>>>
>>>>>>> <struct name="diagnostic" type="ConnPolicy">
>>>>>>> <simple name="type" type="short"><value>0<value><simple>
>>>>>>> <simple name="size" type="short"><value>1<value><simple>
>>>>>>> <simple name="transport" type="short"><value>3<value><simple>
>>>>>>> <simple name="name_id" type="string"><value>/diagnostic<value><simple>
>>>>>>> <struct>
>>>>>>>
>>>>>>> Apparently, it does not match, can you show me how I can adapt import
>>>>>>> and loadService in my deployer form?
>>>>>> see: http://www.orocos.org/stable/documentation/ocl/v2.x/doc-xml/orocos-deplo...
>>>>>>
>>>>>> <simple name="Import" type="string"><value>rtt_dot_service<value><simple>
>>>>>> and in the component you want to load it:
>>>>>> <simple name="dot" type="string"><value>dot<value><simple>
>>>>>>
>>>>>> (btw, the package is called rtt_dot_service iso. rtt_dot)
>>>>>>
>>>>>> but, you can do this in the taskbrowser (=when you are running the application) by just typing there the import and loadService statement
>>>>>> (don't forget that in a ROS environment the rtt_dot package should be in your ROS_PACKAGE_PATH env var)
>>>>>> and then calling the service:
>>>>>> dot.generate
>>>>>>
>>>>>> the service has following operations:
>>>>>> dot.chan_args dot.comp_args dot.conn_args dot.dot_file dot.generate dot.getOwnerName
>>>>>>
>>>>>>
>>>>>>> Best, Qiang
>>>>>>>
>>>>>>> On 12/09/2013 11:08 AM, Gianni Borghesan wrote:
>>>>>>>> maybe the rtt_dot_service is what you are looking for.
>>>>>>>>
>>>>>>>> https://gitorious.org/rtt_dot_service
>>>>>>>>
>>>>>>>>
>>>>>>>> Cheers, Gianni.
>>>>>>>>
>>>>>>>> On 12/09/2013 10:57 AM, Qiang Li wrote:
>>>>>>>>> Dear Orocos users
>>>>>>>>>
>>>>>>>>> I am reading and adapt a robot control and control programe which is
>>>>>>>>> depends on the orocos and ros. All components are developed in the
>>>>>>>>> orocos components form. I want to ask whether it is possible to
>>>>>>>>> visualize the port connection like matlab doing, or we have to check
>>>>>>>>> this port connection manually.
>>>>>>>>>
>>>>>>>>> Best, Qiang
>>>>>>>>>
>>>>>
>>>
>>>
>
>

visualize the commponents port connection

On 12/09/2013 03:25 PM, Dominick Vanthienen wrote:
> hi
>
> On 12/09/2013 02:52 PM, Qiang Li wrote:
>> On 12/09/2013 02:36 PM, Dominick Vanthienen wrote:
>>>
>>>
>>> On 12/09/2013 02:33 PM, Qiang Li wrote:
>>>> On 12/09/2013 02:26 PM, Dominick Vanthienen wrote:
>>>>>
>>>>> On 12/09/2013 02:17 PM, Qiang Li wrote:
>>>>>> Thanks, it is clear that
>>>>>> I should use
>>>>>>
>>>>>> import ("rtt_dot_service")
>>>>>> loadService("Deployer","dot")
>>>>>>
>>>>>> Now it works. I also can use dot.dot_file to generate the
>>>>>> orograph.dot file.
>>>>>>
>>>>>> following the command from instruction, I can use rosrun xdot
>>>>>> xdot.py orograph.dot
>>>>>> to visualize this connection.
>>>>>> When I run it, I get the error that "No such file or directory:
>>>>>> 'orograph.dot'"
>>>>> make sure the file exists and you are executing the command from
>>>>> within the directory where orograph.dot is located (or put the
>>>>> correct path in the command)
>>>> I am not quite sure where this file--orograph.dot. what I do is in
>>>> the started deployer taskbrowser
>>>> give the command
>>>>
>>>> import ("rtt_dot_service")
>>>> loadService("Deployer","dot")
>>>>
>>>> then
>>>>
>>>> Deployer [S]> dot.dot_file
>>>> = orograph.dot
>>> I think this is the property that contains the name of the file that
>>> will be generated
>>> try dot.generate
>>
>> Sorry, Dominick, I did not get your point. What I want to do is
>> visualize the connection. (like matlab/simulink).
>> when I try dot.generate, it produce a text to show the connection case.
> no problem:
> The dot service generates a 'dot' file:
> *when you load the dot service loadService("Deployer","dot")
> *when you do dot.generate in the taskbrowser (after the dot service is
> loaded)
>
> this 'dot file orograph.dot is a file in the dot language:
> http://en.wikipedia.org/wiki/DOT_%28graph_description_language%29 ,
> that can be interpreted by the xdot tool, which visualises the data of
> the 'dot' file
>
> the generated orograph.dot file is located at the point where you
> executed orocos: normally this is just the place where you did rosrun
> ocl deployer-gnulinux ... or similar
> if you run orocos from a launch file, then it is probably in the
> ~/.ros directory
>
> try to locate orograph.dot after you loaded the dot service, by for
> example (in a terminal):
> $locate orograph.dot

Thank you very much for your help, this problem is solved. When I try
change my deployer xml, there still is the problem.
Because I need visualize the relation of all components, I load the
service like you write

<simple name="Import" type="string"><value>rtt_dot_service<value><simple>
<simple name="dot" type="string"><value>dot<value><simple>

the error complain is:
2.258 [ ERROR ][DeploymentComponent::loadComponents] Can not initialize
Property from dot: incompatible type ( destination type: PropertyBag,
source type: string).
2.258 [ ERROR ][DeploymentComponent::loadComponents] RTT::Property
'dot' should be a struct, Include, Path or Import statement.
2.271 [ ERROR ][Logger] Failed to load a component: aborting kick-start.
Switched to : Deploye

do you have the suggestion?

Best, Qiang
>
>> I found in the rtt_dot_service instruciton description like
>>
>> To use it, load the service in your Deployer component, e.g. in your
>> .ops script, add:
>>
>> {{{
>> import ("rtt_dot")
>> loadService("Deployer","dot")
>> }}}
>>
>> The service has a property, dot_file, which you can adjust to
>> the file you like to be generated.
> in other words: with this property you change the name of the
> generated file, for example you can generate "f.dot" instead of
> "orograph.dot" by
> dot.dot_file="f.dot"
> dot.generate
>> The way components, connections and channels can be plotted can be
>> tuned using the comp_args, conn_args and chan_args properties.
>> Visualisation of the dot file is possible, e.g. with the ROS xdot tool:
>>
>> {{{
>> rosrun xdot xdot.py orograph.dot
>> }}}
>>
>> Colors are used to display the component's current state:
>>

    >>
  • Init - white
  • >>

  • PreOperational - orange
  • >>

  • FatalError, Exception, RunTimeError - red
  • >>

  • Stopped - lightblue
  • >>

  • Running - green
  • >>

>>
>> So that is why I am using dot.dot_file to generate orograph.dot, I
>> had thought it is possible to use rosrun xdot xdot.py orograph.dot
>> to visualize the connection. Maybe something I am missing, please let
>> me know.
>>
>> Best, Qiang
>>
>>>>
>>>> I can not start rosrun in this browser because the error is:
>>>> Deployer [S]> rosrun xdot xdot.py orograph.dot
>>>> No method "rosrun" registered for the object or task "Deployer".
>>> no, the rosrun ... command should be executed in a terminal window,
>>> not in your taskbrowser: it is an external tool
>>>>
>>>> so I start rosrun xdot xdot.py orograph.dot in another terminal, I
>>>> am not sure where is the orograph.dot
>>> probably not generated, so non-existing
>>>>
>>>> Best, Qiang
>>>>
>>>>>> Best, Qiang
>>>>>>
>>>>>>
>>>>>> On 12/09/2013 01:55 PM, Dominick Vanthienen wrote:
>>>>>>> On 12/09/2013 12:10 PM, Qiang Li wrote:
>>>>>>>> Thanks, Gianni.
>>>>>>>>
>>>>>>>> It seems that this is the tool that I need. I check the
>>>>>>>> rtt_dot_service
>>>>>>>> out and build it successfully.
>>>>>>>> But I do not know how to use it in my deployer file. I found the
>>>>>>>> instruction like following
>>>>>>>>
>>>>>>>> To use it, load the service in your Deployer component, e.g. in
>>>>>>>> your
>>>>>>>> .ops script, add:
>>>>>>>>
>>>>>>>> {{{
>>>>>>>> import ("rtt_dot")
>>>>>>>> loadService("Deployer","dot")
>>>>>>>> }}}
>>>>>>>>
>>>>>>>> But I am using deployer form like
>>>>>>>>
>>>>>>>> <simple name="Import"
>>>>>>>> type="string"><value>lwr_fri<value><simple>
>>>>>>>> <simple name="Import"
>>>>>>>> type="string"><value>lwr_impedance_controller<value><simple>
>>>>>>>>
>>>>>>>> <struct name="diagnostic" type="ConnPolicy">
>>>>>>>> <simple name="type" type="short"><value>0<value><simple>
>>>>>>>> <simple name="size" type="short"><value>1<value><simple>
>>>>>>>> <simple name="transport"
>>>>>>>> type="short"><value>3<value><simple>
>>>>>>>> <simple name="name_id"
>>>>>>>> type="string"><value>/diagnostic<value><simple>
>>>>>>>> <struct>
>>>>>>>>
>>>>>>>> Apparently, it does not match, can you show me how I can adapt
>>>>>>>> import
>>>>>>>> and loadService in my deployer form?
>>>>>>> see:
>>>>>>> http://www.orocos.org/stable/documentation/ocl/v2.x/doc-xml/orocos-deplo...
>>>>>>>
>>>>>>> <simple name="Import"
>>>>>>> type="string"><value>rtt_dot_service<value><simple>
>>>>>>> and in the component you want to load it:
>>>>>>> <simple name="dot" type="string"><value>dot<value><simple>
>>>>>>>
>>>>>>> (btw, the package is called rtt_dot_service iso. rtt_dot)
>>>>>>>
>>>>>>> but, you can do this in the taskbrowser (=when you are running
>>>>>>> the application) by just typing there the import and loadService
>>>>>>> statement
>>>>>>> (don't forget that in a ROS environment the rtt_dot package
>>>>>>> should be in your ROS_PACKAGE_PATH env var)
>>>>>>> and then calling the service:
>>>>>>> dot.generate
>>>>>>>
>>>>>>> the service has following operations:
>>>>>>> dot.chan_args dot.comp_args dot.conn_args
>>>>>>> dot.dot_file dot.generate dot.getOwnerName
>>>>>>>
>>>>>>>
>>>>>>>> Best, Qiang
>>>>>>>>
>>>>>>>> On 12/09/2013 11:08 AM, Gianni Borghesan wrote:
>>>>>>>>> maybe the rtt_dot_service is what you are looking for.
>>>>>>>>>
>>>>>>>>> https://gitorious.org/rtt_dot_service
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Cheers, Gianni.
>>>>>>>>>
>>>>>>>>> On 12/09/2013 10:57 AM, Qiang Li wrote:
>>>>>>>>>> Dear Orocos users
>>>>>>>>>>
>>>>>>>>>> I am reading and adapt a robot control and control programe
>>>>>>>>>> which is
>>>>>>>>>> depends on the orocos and ros. All components are developed
>>>>>>>>>> in the
>>>>>>>>>> orocos components form. I want to ask whether it is possible to
>>>>>>>>>> visualize the port connection like matlab doing, or we have
>>>>>>>>>> to check
>>>>>>>>>> this port connection manually.
>>>>>>>>>>
>>>>>>>>>> Best, Qiang
>>>>>>>>>>
>>>>>>
>>>>
>>>>
>>
>>

visualize the commponents port connection

On 12/09/2013 03:47 PM, Qiang Li wrote:
> On 12/09/2013 03:25 PM, Dominick Vanthienen wrote:
>> hi
>>
>> On 12/09/2013 02:52 PM, Qiang Li wrote:
>>> On 12/09/2013 02:36 PM, Dominick Vanthienen wrote:
>>>>
>>>>
>>>> On 12/09/2013 02:33 PM, Qiang Li wrote:
>>>>> On 12/09/2013 02:26 PM, Dominick Vanthienen wrote:
>>>>>>
>>>>>> On 12/09/2013 02:17 PM, Qiang Li wrote:
>>>>>>> Thanks, it is clear that
>>>>>>> I should use
>>>>>>>
>>>>>>> import ("rtt_dot_service")
>>>>>>> loadService("Deployer","dot")
>>>>>>>
>>>>>>> Now it works. I also can use dot.dot_file to generate the orograph.dot file.
>>>>>>>
>>>>>>> following the command from instruction, I can use rosrun xdot xdot.py orograph.dot
>>>>>>> to visualize this connection.
>>>>>>> When I run it, I get the error that "No such file or directory: 'orograph.dot'"
>>>>>> make sure the file exists and you are executing the command from within the directory where orograph.dot is located (or put the correct path in the command)
>>>>> I am not quite sure where this file--orograph.dot. what I do is in the started deployer taskbrowser
>>>>> give the command
>>>>>
>>>>> import ("rtt_dot_service")
>>>>> loadService("Deployer","dot")
>>>>>
>>>>> then
>>>>>
>>>>> Deployer [S]> dot.dot_file
>>>>> = orograph.dot
>>>> I think this is the property that contains the name of the file that will be generated
>>>> try dot.generate
>>>
>>> Sorry, Dominick, I did not get your point. What I want to do is visualize the connection. (like matlab/simulink).
>>> when I try dot.generate, it produce a text to show the connection case.
>> no problem:
>> The dot service generates a 'dot' file:
>> *when you load the dot service loadService("Deployer","dot")
>> *when you do dot.generate in the taskbrowser (after the dot service is loaded)
>>
>> this 'dot file orograph.dot is a file in the dot language: http://en.wikipedia.org/wiki/DOT_%28graph_description_language%29 , that can be interpreted by the xdot tool,
>> which visualises the data of the 'dot' file
>>
>> the generated orograph.dot file is located at the point where you executed orocos: normally this is just the place where you did rosrun ocl deployer-gnulinux ... or similar
>> if you run orocos from a launch file, then it is probably in the ~/.ros directory
>>
>> try to locate orograph.dot after you loaded the dot service, by for example (in a terminal):
>> $locate orograph.dot
>
> Thank you very much for your help, this problem is solved. When I try change my deployer xml, there still is the problem.
> Because I need visualize the relation of all components, I load the service like you write
>
> <simple name="Import" type="string"><value>rtt_dot_service<value><simple>
<struct name="..." type="...">
> <simple name="dot" type="string"><value>dot<value><simple>
<struct>
the last line should be within a component struct: see reference manual on deployment

>
> the error complain is:
> 2.258 [ ERROR ][DeploymentComponent::loadComponents] Can not initialize Property from dot: incompatible type ( destination type: PropertyBag, source type: string).
> 2.258 [ ERROR ][DeploymentComponent::loadComponents] RTT::Property 'dot' should be a struct, Include, Path or Import statement.
> 2.271 [ ERROR ][Logger] Failed to load a component: aborting kick-start.
> Switched to : Deploye
>
> do you have the suggestion?
>
> Best, Qiang
>>
>>> I found in the rtt_dot_service instruciton description like
>>>
>>> To use it, load the service in your Deployer component, e.g. in your .ops script, add:
>>>
>>> {{{
>>> import ("rtt_dot")
>>> loadService("Deployer","dot")
>>> }}}
>>>
>>> The service has a property, dot_file, which you can adjust to the file you like to be generated.
>> in other words: with this property you change the name of the generated file, for example you can generate "f.dot" instead of "orograph.dot" by
>> dot.dot_file="f.dot"
>> dot.generate
>>> The way components, connections and channels can be plotted can be
>>> tuned using the comp_args, conn_args and chan_args properties. Visualisation of the dot file is possible, e.g. with the ROS xdot tool:
>>>
>>> {{{
>>> rosrun xdot xdot.py orograph.dot
>>> }}}
>>>
>>> Colors are used to display the component's current state:
>>>

    >>>
  • Init - white
  • >>>

  • PreOperational - orange
  • >>>

  • FatalError, Exception, RunTimeError - red
  • >>>

  • Stopped - lightblue
  • >>>

  • Running - green
  • >>>

>>>
>>> So that is why I am using dot.dot_file to generate orograph.dot, I had thought it is possible to use rosrun xdot xdot.py orograph.dot
>>> to visualize the connection. Maybe something I am missing, please let me know.
>>>
>>> Best, Qiang
>>>
>>>>>
>>>>> I can not start rosrun in this browser because the error is:
>>>>> Deployer [S]> rosrun xdot xdot.py orograph.dot
>>>>> No method "rosrun" registered for the object or task "Deployer".
>>>> no, the rosrun ... command should be executed in a terminal window, not in your taskbrowser: it is an external tool
>>>>>
>>>>> so I start rosrun xdot xdot.py orograph.dot in another terminal, I am not sure where is the orograph.dot
>>>> probably not generated, so non-existing
>>>>>
>>>>> Best, Qiang
>>>>>
>>>>>>> Best, Qiang
>>>>>>>
>>>>>>>
>>>>>>> On 12/09/2013 01:55 PM, Dominick Vanthienen wrote:
>>>>>>>> On 12/09/2013 12:10 PM, Qiang Li wrote:
>>>>>>>>> Thanks, Gianni.
>>>>>>>>>
>>>>>>>>> It seems that this is the tool that I need. I check the rtt_dot_service
>>>>>>>>> out and build it successfully.
>>>>>>>>> But I do not know how to use it in my deployer file. I found the
>>>>>>>>> instruction like following
>>>>>>>>>
>>>>>>>>> To use it, load the service in your Deployer component, e.g. in your
>>>>>>>>> .ops script, add:
>>>>>>>>>
>>>>>>>>> {{{
>>>>>>>>> import ("rtt_dot")
>>>>>>>>> loadService("Deployer","dot")
>>>>>>>>> }}}
>>>>>>>>>
>>>>>>>>> But I am using deployer form like
>>>>>>>>>
>>>>>>>>> <simple name="Import" type="string"><value>lwr_fri<value><simple>
>>>>>>>>> <simple name="Import"
>>>>>>>>> type="string"><value>lwr_impedance_controller<value><simple>
>>>>>>>>>
>>>>>>>>> <struct name="diagnostic" type="ConnPolicy">
>>>>>>>>> <simple name="type" type="short"><value>0<value><simple>
>>>>>>>>> <simple name="size" type="short"><value>1<value><simple>
>>>>>>>>> <simple name="transport" type="short"><value>3<value><simple>
>>>>>>>>> <simple name="name_id" type="string"><value>/diagnostic<value><simple>
>>>>>>>>> <struct>
>>>>>>>>>
>>>>>>>>> Apparently, it does not match, can you show me how I can adapt import
>>>>>>>>> and loadService in my deployer form?
>>>>>>>> see: http://www.orocos.org/stable/documentation/ocl/v2.x/doc-xml/orocos-deplo...
>>>>>>>>
>>>>>>>> <simple name="Import" type="string"><value>rtt_dot_service<value><simple>
>>>>>>>> and in the component you want to load it:
>>>>>>>> <simple name="dot" type="string"><value>dot<value><simple>
>>>>>>>>
>>>>>>>> (btw, the package is called rtt_dot_service iso. rtt_dot)
>>>>>>>>
>>>>>>>> but, you can do this in the taskbrowser (=when you are running the application) by just typing there the import and loadService statement
>>>>>>>> (don't forget that in a ROS environment the rtt_dot package should be in your ROS_PACKAGE_PATH env var)
>>>>>>>> and then calling the service:
>>>>>>>> dot.generate
>>>>>>>>
>>>>>>>> the service has following operations:
>>>>>>>> dot.chan_args dot.comp_args dot.conn_args dot.dot_file dot.generate dot.getOwnerName
>>>>>>>>
>>>>>>>>
>>>>>>>>> Best, Qiang
>>>>>>>>>
>>>>>>>>> On 12/09/2013 11:08 AM, Gianni Borghesan wrote:
>>>>>>>>>> maybe the rtt_dot_service is what you are looking for.
>>>>>>>>>>
>>>>>>>>>> https://gitorious.org/rtt_dot_service
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Cheers, Gianni.
>>>>>>>>>>
>>>>>>>>>> On 12/09/2013 10:57 AM, Qiang Li wrote:
>>>>>>>>>>> Dear Orocos users
>>>>>>>>>>>
>>>>>>>>>>> I am reading and adapt a robot control and control programe which is
>>>>>>>>>>> depends on the orocos and ros. All components are developed in the
>>>>>>>>>>> orocos components form. I want to ask whether it is possible to
>>>>>>>>>>> visualize the port connection like matlab doing, or we have to check
>>>>>>>>>>> this port connection manually.
>>>>>>>>>>>
>>>>>>>>>>> Best, Qiang
>>>>>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>
>>>
>
>

visualize the commponents port connection

Dear Dominick

On 12/09/2013 03:54 PM, Dominick Vanthienen wrote:
>
>
> On 12/09/2013 03:47 PM, Qiang Li wrote:
>> On 12/09/2013 03:25 PM, Dominick Vanthienen wrote:
>>> hi
>>>
>>> On 12/09/2013 02:52 PM, Qiang Li wrote:
>>>> On 12/09/2013 02:36 PM, Dominick Vanthienen wrote:
>>>>>
>>>>>
>>>>> On 12/09/2013 02:33 PM, Qiang Li wrote:
>>>>>> On 12/09/2013 02:26 PM, Dominick Vanthienen wrote:
>>>>>>>
>>>>>>> On 12/09/2013 02:17 PM, Qiang Li wrote:
>>>>>>>> Thanks, it is clear that
>>>>>>>> I should use
>>>>>>>>
>>>>>>>> import ("rtt_dot_service")
>>>>>>>> loadService("Deployer","dot")
>>>>>>>>
>>>>>>>> Now it works. I also can use dot.dot_file to generate the
>>>>>>>> orograph.dot file.
>>>>>>>>
>>>>>>>> following the command from instruction, I can use rosrun xdot
>>>>>>>> xdot.py orograph.dot
>>>>>>>> to visualize this connection.
>>>>>>>> When I run it, I get the error that "No such file or directory:
>>>>>>>> 'orograph.dot'"
>>>>>>> make sure the file exists and you are executing the command from
>>>>>>> within the directory where orograph.dot is located (or put the
>>>>>>> correct path in the command)
>>>>>> I am not quite sure where this file--orograph.dot. what I do is
>>>>>> in the started deployer taskbrowser
>>>>>> give the command
>>>>>>
>>>>>> import ("rtt_dot_service")
>>>>>> loadService("Deployer","dot")
>>>>>>
>>>>>> then
>>>>>>
>>>>>> Deployer [S]> dot.dot_file
>>>>>> = orograph.dot
>>>>> I think this is the property that contains the name of the file
>>>>> that will be generated
>>>>> try dot.generate
>>>>
>>>> Sorry, Dominick, I did not get your point. What I want to do is
>>>> visualize the connection. (like matlab/simulink).
>>>> when I try dot.generate, it produce a text to show the connection
>>>> case.
>>> no problem:
>>> The dot service generates a 'dot' file:
>>> *when you load the dot service loadService("Deployer","dot")
>>> *when you do dot.generate in the taskbrowser (after the dot service
>>> is loaded)
>>>
>>> this 'dot file orograph.dot is a file in the dot language:
>>> http://en.wikipedia.org/wiki/DOT_%28graph_description_language%29 ,
>>> that can be interpreted by the xdot tool,
>>> which visualises the data of the 'dot' file
>>>
>>> the generated orograph.dot file is located at the point where you
>>> executed orocos: normally this is just the place where you did
>>> rosrun ocl deployer-gnulinux ... or similar
>>> if you run orocos from a launch file, then it is probably in the
>>> ~/.ros directory
>>>
>>> try to locate orograph.dot after you loaded the dot service, by for
>>> example (in a terminal):
>>> $locate orograph.dot
>>
>> Thank you very much for your help, this problem is solved. When I try
>> change my deployer xml, there still is the problem.
>> Because I need visualize the relation of all components, I load the
>> service like you write
>>
>> <simple name="Import"
>> type="string"><value>rtt_dot_service<value><simple>
> <struct name="..." type="...">
>> <simple name="dot" type="string"><value>dot<value><simple>
> <struct>
> the last line should be within a component struct: see reference
> manual on deployment
Yes, this is the first I try, my xml structure like
<struct name="JointStatePublisher" type="JointStatePublisher">
<struct name="Activity" type="PeriodicActivity">
<simple name="Period" type="double"><value>0.01<value><simple>
<simple name="Priority" type="short"><value>2<value><simple>
<simple name="Scheduler"
type="string"><value>ORO_SCHED_RT<value><simple>
<struct>

<simple name="AutoConf" type="boolean"><value>1<value><simple>
<simple name="AutoStart" type="boolean"><value>0<value><simple>

*<simple name="dot" type="string"><value>dot<value><simple> *

<struct name="Properties" type="PropertyBag">
<simple name="number_of_joints" type="long"><value>7<value><simple>
<simple name="joint0_name"
type="string"><value>lwr_arm_0_joint<value><simple>
<simple name="joint1_name"
type="string"><value>lwr_arm_1_joint<value><simple>
<simple name="joint2_name"
type="string"><value>lwr_arm_2_joint<value><simple>
<simple name="joint3_name"
type="string"><value>lwr_arm_3_joint<value><simple>
<simple name="joint4_name"
type="string"><value>lwr_arm_4_joint<value><simple>
<simple name="joint5_name"
type="string"><value>lwr_arm_5_joint<value><simple>
<simple name="joint6_name"
type="string"><value>lwr_arm_6_joint<value><simple>
<struct>

<struct name="Ports" type="PropertyBag">
<simple name="msrJntPos"
type="string"><value>JointPosition<value><simple>
<simple name="joints_state"
type="string"><value>joints_state<value><simple>

<struct>
<struct>

Deployer complains that
2.271 [ ERROR ][DeploymentComponent::loadComponents] Unknown type
syntax: 'dot' in component struct JointStatePublisher

Best, Qiang

>
>>
>> the error complain is:
>> 2.258 [ ERROR ][DeploymentComponent::loadComponents] Can not
>> initialize Property from dot: incompatible type ( destination type:
>> PropertyBag, source type: string).
>> 2.258 [ ERROR ][DeploymentComponent::loadComponents] RTT::Property
>> 'dot' should be a struct, Include, Path or Import statement.
>> 2.271 [ ERROR ][Logger] Failed to load a component: aborting
>> kick-start.
>> Switched to : Deploye
>>
>> do you have the suggestion?
>>
>> Best, Qiang
>>>
>>>> I found in the rtt_dot_service instruciton description like
>>>>
>>>> To use it, load the service in your Deployer component, e.g. in
>>>> your .ops script, add:
>>>>
>>>> {{{
>>>> import ("rtt_dot")
>>>> loadService("Deployer","dot")
>>>> }}}
>>>>
>>>> The service has a property, dot_file, which you can adjust to
>>>> the file you like to be generated.
>>> in other words: with this property you change the name of the
>>> generated file, for example you can generate "f.dot" instead of
>>> "orograph.dot" by
>>> dot.dot_file="f.dot"
>>> dot.generate
>>>> The way components, connections and channels can be plotted can be
>>>> tuned using the comp_args, conn_args and chan_args properties.
>>>> Visualisation of the dot file is possible, e.g. with the ROS xdot
>>>> tool:
>>>>
>>>> {{{
>>>> rosrun xdot xdot.py orograph.dot
>>>> }}}
>>>>
>>>> Colors are used to display the component's current state:
>>>>

    >>>>
  • Init - white
  • >>>>

  • PreOperational - orange
  • >>>>

  • FatalError, Exception, RunTimeError - red
  • >>>>

  • Stopped - lightblue
  • >>>>

  • Running - green
  • >>>>

>>>>
>>>> So that is why I am using dot.dot_file to generate orograph.dot, I
>>>> had thought it is possible to use rosrun xdot xdot.py orograph.dot
>>>> to visualize the connection. Maybe something I am missing, please
>>>> let me know.
>>>>
>>>> Best, Qiang
>>>>
>>>>>>
>>>>>> I can not start rosrun in this browser because the error is:
>>>>>> Deployer [S]> rosrun xdot xdot.py orograph.dot
>>>>>> No method "rosrun" registered for the object or task "Deployer".
>>>>> no, the rosrun ... command should be executed in a terminal
>>>>> window, not in your taskbrowser: it is an external tool
>>>>>>
>>>>>> so I start rosrun xdot xdot.py orograph.dot in another terminal,
>>>>>> I am not sure where is the orograph.dot
>>>>> probably not generated, so non-existing
>>>>>>
>>>>>> Best, Qiang
>>>>>>
>>>>>>>> Best, Qiang
>>>>>>>>
>>>>>>>>
>>>>>>>> On 12/09/2013 01:55 PM, Dominick Vanthienen wrote:
>>>>>>>>> On 12/09/2013 12:10 PM, Qiang Li wrote:
>>>>>>>>>> Thanks, Gianni.
>>>>>>>>>>
>>>>>>>>>> It seems that this is the tool that I need. I check the
>>>>>>>>>> rtt_dot_service
>>>>>>>>>> out and build it successfully.
>>>>>>>>>> But I do not know how to use it in my deployer file. I found the
>>>>>>>>>> instruction like following
>>>>>>>>>>
>>>>>>>>>> To use it, load the service in your Deployer component, e.g.
>>>>>>>>>> in your
>>>>>>>>>> .ops script, add:
>>>>>>>>>>
>>>>>>>>>> {{{
>>>>>>>>>> import ("rtt_dot")
>>>>>>>>>> loadService("Deployer","dot")
>>>>>>>>>> }}}
>>>>>>>>>>
>>>>>>>>>> But I am using deployer form like
>>>>>>>>>>
>>>>>>>>>> <simple name="Import"
>>>>>>>>>> type="string"><value>lwr_fri<value><simple>
>>>>>>>>>> <simple name="Import"
>>>>>>>>>> type="string"><value>lwr_impedance_controller<value><simple>
>>>>>>>>>>
>>>>>>>>>> <struct name="diagnostic" type="ConnPolicy">
>>>>>>>>>> <simple name="type" type="short"><value>0<value><simple>
>>>>>>>>>> <simple name="size" type="short"><value>1<value><simple>
>>>>>>>>>> <simple name="transport"
>>>>>>>>>> type="short"><value>3<value><simple>
>>>>>>>>>> <simple name="name_id"
>>>>>>>>>> type="string"><value>/diagnostic<value><simple>
>>>>>>>>>> <struct>
>>>>>>>>>>
>>>>>>>>>> Apparently, it does not match, can you show me how I can
>>>>>>>>>> adapt import
>>>>>>>>>> and loadService in my deployer form?
>>>>>>>>> see:
>>>>>>>>> http://www.orocos.org/stable/documentation/ocl/v2.x/doc-xml/orocos-deplo...
>>>>>>>>>
>>>>>>>>> <simple name="Import"
>>>>>>>>> type="string"><value>rtt_dot_service<value><simple>
>>>>>>>>> and in the component you want to load it:
>>>>>>>>> <simple name="dot" type="string"><value>dot<value><simple>
>>>>>>>>>
>>>>>>>>> (btw, the package is called rtt_dot_service iso. rtt_dot)
>>>>>>>>>
>>>>>>>>> but, you can do this in the taskbrowser (=when you are running
>>>>>>>>> the application) by just typing there the import and
>>>>>>>>> loadService statement
>>>>>>>>> (don't forget that in a ROS environment the rtt_dot package
>>>>>>>>> should be in your ROS_PACKAGE_PATH env var)
>>>>>>>>> and then calling the service:
>>>>>>>>> dot.generate
>>>>>>>>>
>>>>>>>>> the service has following operations:
>>>>>>>>> dot.chan_args dot.comp_args dot.conn_args
>>>>>>>>> dot.dot_file dot.generate dot.getOwnerName
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Best, Qiang
>>>>>>>>>>
>>>>>>>>>> On 12/09/2013 11:08 AM, Gianni Borghesan wrote:
>>>>>>>>>>> maybe the rtt_dot_service is what you are looking for.
>>>>>>>>>>>
>>>>>>>>>>> https://gitorious.org/rtt_dot_service
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Cheers, Gianni.
>>>>>>>>>>>
>>>>>>>>>>> On 12/09/2013 10:57 AM, Qiang Li wrote:
>>>>>>>>>>>> Dear Orocos users
>>>>>>>>>>>>
>>>>>>>>>>>> I am reading and adapt a robot control and control programe
>>>>>>>>>>>> which is
>>>>>>>>>>>> depends on the orocos and ros. All components are developed
>>>>>>>>>>>> in the
>>>>>>>>>>>> orocos components form. I want to ask whether it is
>>>>>>>>>>>> possible to
>>>>>>>>>>>> visualize the port connection like matlab doing, or we have
>>>>>>>>>>>> to check
>>>>>>>>>>>> this port connection manually.
>>>>>>>>>>>>
>>>>>>>>>>>> Best, Qiang
>>>>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>
>>