can't convert lua number to uint16 variable

I tried installing the new 2.6 debs and ran into a problem.

I have an operation defined that takes a uint16 as an argument:
/**
this->provides("DataWarehouse")->addOperation("setUInt16", (void (RobonetMaster::*)(const std::string&, const uint16_t))&RobonetMaster::setUInt16, this, ClientThread)
.doc("Write a uint16_t to the given DataElement")
.arg("dataElementName","Name of the DataElement")
.arg("Value","The value to write");
**/

I try calling that operation from an rttlua deployment and got the following error:
/**
/opt/ros/fuerte/stacks/orocos_toolchain/install/bin/rttlua-gnulinux: ...e/stacks/orocos_toolchain/ocl/lua/modules/rttlib.lua:702: __lua_todsb: can't convert lua number to uint16 variable
**/

Not sure how to troubleshoot this.

I switched back to 2.5 and rebuilt all my libraries and things seem to work fine…

--
Dustin Gooding
NASA/JSC Robotics
IM: dgooding [..] ...<xmpp:dgooding [..] ...>

can't convert lua number to uint16 variable

Hi Dustin,

On Thu, Jan 3, 2013 at 4:10 PM, Gooding, Dustin R. (JSC-ER411) <
dustin [dot] r [dot] gooding [..] ...> wrote:

> I tried installing the new 2.6 debs and ran into a problem.
>
> I have an operation defined that takes a uint16 as an argument:
> /**
> this->provides("DataWarehouse")->addOperation("setUInt16", (void
> (RobonetMaster::*)(const std::string&, const
> uint16_t))&RobonetMaster::setUInt16, this, ClientThread)
> .doc("Write a uint16_t to the given DataElement")
> .arg("dataElementName","Name of the DataElement")
> .arg("Value","The value to write");
> **/
>
> I try calling that operation from an rttlua deployment and got the
> following error:
> /**
> /opt/ros/fuerte/stacks/orocos_toolchain/install/bin/rttlua-gnulinux:
> ...e/stacks/orocos_toolchain/ocl/lua/modules/rttlib.lua:702: __lua_todsb:
> can't convert lua number to uint16 variable
> **/
>

Now that shouldn't happen :-) Could you tell us which typekits you import
such that we can reproduce it quicker ? Just to be sure: there is not a
chance that a 2.5 typekit was included accidentally or that you have a
custom typekit implementation ?

>
> Not sure how to troubleshoot this.
>
> I switched back to 2.5 and rebuilt all my libraries and things seem to
> work fine…
>

Peter

can't convert lua number to uint16 variable

On Jan 3, 2013, at 10:01 AM, Peter Soetens <peter [..] ...peter [..] ...>> wrote:

Hi Dustin,

On Thu, Jan 3, 2013 at 4:10 PM, Gooding, Dustin R. (JSC-ER411) <dustin [dot] r [dot] gooding [..] ...dustin [dot] r [dot] gooding [..] ...>> wrote:
I tried installing the new 2.6 debs and ran into a problem.

I have an operation defined that takes a uint16 as an argument:
/**
this->provides("DataWarehouse")->addOperation("setUInt16", (void (RobonetMaster::*)(const std::string&, const uint16_t))&RobonetMaster::setUInt16, this, ClientThread)
.doc("Write a uint16_t to the given DataElement")
.arg("dataElementName","Name of the DataElement")
.arg("Value","The value to write");
**/

I try calling that operation from an rttlua deployment and got the following error:
/**
/opt/ros/fuerte/stacks/orocos_toolchain/install/bin/rttlua-gnulinux: ...e/stacks/orocos_toolchain/ocl/lua/modules/rttlib.lua:702: __lua_todsb: can't convert lua number to uint16 variable
**/

Now that shouldn't happen :-) Could you tell us which typekits you import such that we can reproduce it quicker ? Just to be sure: there is not a chance that a 2.5 typekit was included accidentally or that you have a custom typekit implementation ?

I hope I'm answering the question you've asked. ;)

This is displayed whether I'm using 2.5 or 2.6
/**
> rttlib.info()
services: marshalling scripting os LuaTLSF Lua print rosparam
typekits: rtt-types rtt-mqueue-transport rtt-corba-types OCLTypekit ros-primitives
rtt-ros-std_msgs-transport ros-std_msgs ros-rosgraph_msgs
rtt-ros-rosgraph_msgs-transport rtt-ros-geometry_msgs-transport
ros-geometry_msgs ros-r2_msgs rtt-ros-r2_msgs-transport
rtt-ros-trajectory_msgs-transport ros-trajectory_msgs
rtt-ros-sensor_msgs-transport ros-sensor_msgs ros-actionlib_msgs
rtt-ros-actionlib_msgs-transport rtt-ros-diagnostic_msgs-transport
ros-diagnostic_msgs

**/

r2_msgs is our custom set of ROS messages. We use .msg files and "rosbuild_genmsg()" in the r2_msgs package CMakeLists to parse them. Then our other packages have manifest.xml dependencies on rtt_r2_msgs. We don't use any other custom messages or types.

/opt/orocos is in my ROS_PACKAGE_PATH.

The process I'm using to switch between Orocos versions is:
$ sudo mv /opt/orocos /opt/orocos-2.5 # or back the other way
$ sudo apt-get install (all 5 orocos packages) # or remove

Then, in a new terminal:
$ rosmake --pre-clean (our top-level package)
$ rttlua -i (our launch file)

-dustin

Not sure how to troubleshoot this.

I switched back to 2.5 and rebuilt all my libraries and things seem to work fine…

Peter

can't convert lua number to uint16 variable

On Jan 3, 2013, at 11:07 AM, "Gooding, Dustin R. (JSC-ER411)" <dustin [dot] r [dot] gooding [..] ...dustin [dot] r [dot] gooding [..] ...>> wrote:

On Jan 3, 2013, at 10:01 AM, Peter Soetens <peter [..] ...peter [..] ...>> wrote:

Hi Dustin,

On Thu, Jan 3, 2013 at 4:10 PM, Gooding, Dustin R. (JSC-ER411) <dustin [dot] r [dot] gooding [..] ...dustin [dot] r [dot] gooding [..] ...>> wrote:
I tried installing the new 2.6 debs and ran into a problem.

I have an operation defined that takes a uint16 as an argument:
/**
this->provides("DataWarehouse")->addOperation("setUInt16", (void (RobonetMaster::*)(const std::string&, const uint16_t))&RobonetMaster::setUInt16, this, ClientThread)
.doc("Write a uint16_t to the given DataElement")
.arg("dataElementName","Name of the DataElement")
.arg("Value","The value to write");
**/

I try calling that operation from an rttlua deployment and got the following error:
/**
/opt/ros/fuerte/stacks/orocos_toolchain/install/bin/rttlua-gnulinux: ...e/stacks/orocos_toolchain/ocl/lua/modules/rttlib.lua:702: __lua_todsb: can't convert lua number to uint16 variable
**/

Now that shouldn't happen :-) Could you tell us which typekits you import such that we can reproduce it quicker ? Just to be sure: there is not a chance that a 2.5 typekit was included accidentally or that you have a custom typekit implementation ?

I hope I'm answering the question you've asked. ;)

This is displayed whether I'm using 2.5 or 2.6
/**
> rttlib.info()
services: marshalling scripting os LuaTLSF Lua print rosparam
typekits: rtt-types rtt-mqueue-transport rtt-corba-types OCLTypekit ros-primitives
rtt-ros-std_msgs-transport ros-std_msgs ros-rosgraph_msgs
rtt-ros-rosgraph_msgs-transport rtt-ros-geometry_msgs-transport
ros-geometry_msgs ros-r2_msgs rtt-ros-r2_msgs-transport
rtt-ros-trajectory_msgs-transport ros-trajectory_msgs
rtt-ros-sensor_msgs-transport ros-sensor_msgs ros-actionlib_msgs
rtt-ros-actionlib_msgs-transport rtt-ros-diagnostic_msgs-transport
ros-diagnostic_msgs

**/

r2_msgs is our custom set of ROS messages. We use .msg files and "rosbuild_genmsg()" in the r2_msgs package CMakeLists to parse them. Then our other packages have manifest.xml dependencies on rtt_r2_msgs. We don't use any other custom messages or types.

/opt/orocos is in my ROS_PACKAGE_PATH.

The process I'm using to switch between Orocos versions is:
$ sudo mv /opt/orocos /opt/orocos-2.5 # or back the other way
$ sudo apt-get install (all 5 orocos packages) # or remove

Then, in a new terminal:
$ rosmake --pre-clean (our top-level package)
$ rttlua -i (our launch file)

-dustin

Not sure how to troubleshoot this.

I switched back to 2.5 and rebuilt all my libraries and things seem to work fine…

Peter

Sorry to pester. Were you (or anyone else) able to recreate this issue? Is there more data I can provide?

-dustin

can't convert lua number to uint16 variable

On Thu, Jan 10, 2013 at 9:00 PM, Gooding, Dustin R. (JSC-ER411) <
dustin [dot] r [dot] gooding [..] ...> wrote:

> On Jan 3, 2013, at 11:07 AM, "Gooding, Dustin R. (JSC-ER411)" <
> dustin [dot] r [dot] gooding [..] ...> wrote:
>
> On Jan 3, 2013, at 10:01 AM, Peter Soetens <peter [..] ...>
> wrote:
>
> Hi Dustin,
>
>
> On Thu, Jan 3, 2013 at 4:10 PM, Gooding, Dustin R. (JSC-ER411) <
> dustin [dot] r [dot] gooding [..] ...> wrote:
>
>> I tried installing the new 2.6 debs and ran into a problem.
>>
>> I have an operation defined that takes a uint16 as an argument:
>> /**
>> this->provides("DataWarehouse")->addOperation("setUInt16", (void
>> (RobonetMaster::*)(const std::string&, const
>> uint16_t))&RobonetMaster::setUInt16, this, ClientThread)
>> .doc("Write a uint16_t to the given DataElement")
>> .arg("dataElementName","Name of the DataElement")
>> .arg("Value","The value to write");
>> **/
>>
>> I try calling that operation from an rttlua deployment and got the
>> following error:
>> /**
>> /opt/ros/fuerte/stacks/orocos_toolchain/install/bin/rttlua-gnulinux:
>> ...e/stacks/orocos_toolchain/ocl/lua/modules/rttlib.lua:702: __lua_todsb:
>> can't convert lua number to uint16 variable
>> **/
>>
>
> Now that shouldn't happen :-) Could you tell us which typekits you import
> such that we can reproduce it quicker ? Just to be sure: there is not a
> chance that a 2.5 typekit was included accidentally or that you have a
> custom typekit implementation ?
>
>
> I hope I'm answering the question you've asked. ;)
>
> This is displayed whether I'm using 2.5 or 2.6
> /**
> > rttlib.info()
> services: marshalling scripting os LuaTLSF Lua print rosparam
> typekits: rtt-types rtt-mqueue-transport rtt-corba-types OCLTypekit
> ros-primitives
> rtt-ros-std_msgs-transport ros-std_msgs ros-rosgraph_msgs
> rtt-ros-rosgraph_msgs-transport rtt-ros-geometry_msgs-transport
> ros-geometry_msgs ros-r2_msgs rtt-ros-r2_msgs-transport
> rtt-ros-trajectory_msgs-transport ros-trajectory_msgs
> rtt-ros-sensor_msgs-transport ros-sensor_msgs
> ros-actionlib_msgs
> rtt-ros-actionlib_msgs-transport
> rtt-ros-diagnostic_msgs-transport
> ros-diagnostic_msgs
> …
> **/
>
> r2_msgs is our custom set of ROS messages. We use .msg files and
> "rosbuild_genmsg()" in the r2_msgs package CMakeLists to parse them. Then
> our other packages have manifest.xml dependencies on rtt_r2_msgs. We don't
> use any other custom messages or types.
>
> /opt/orocos is in my ROS_PACKAGE_PATH.
>
> The process I'm using to switch between Orocos versions is:
> $ sudo mv /opt/orocos /opt/orocos-2.5 # or back the other way
> $ sudo apt-get install (all 5 orocos packages) # or remove
>
> Then, in a new terminal:
> $ rosmake --pre-clean (our top-level package)
> $ rttlua -i (our launch file)
>
> -dustin
>
>
>
>>
>> Not sure how to troubleshoot this.
>>
>> I switched back to 2.5 and rebuilt all my libraries and things seem to
>> work fine…
>>
>
> Peter
>
>
>
>
> Sorry to pester. Were you (or anyone else) able to recreate this issue?
> Is there more data I can provide?
>

No. I just reproduced it. I'll see if I can find it quickly...

Peter

can't convert lua number to uint16 variable

Hi Dustin,

The bug was in the Lua type info cache, which also cached 'null'/unknown
type info objects, even if they were imported later on.

The patch in attachment fixes this in OCL. If Markus reviews it and
approves it, we can push it to 2.6 and release new ROS packages.

A quick fix is to recompile OCL with the cmake setting : cmake
-DLUA_RTT_TYPEINFO_CACHING=OFF

But the patch is a much better long term solution in terms of performance &
real-time.

Peter

On Fri, Jan 11, 2013 at 3:09 PM, Peter Soetens <peter [..] ...>wrote:

> On Thu, Jan 10, 2013 at 9:00 PM, Gooding, Dustin R. (JSC-ER411) <
> dustin [dot] r [dot] gooding [..] ...> wrote:
>
>> On Jan 3, 2013, at 11:07 AM, "Gooding, Dustin R. (JSC-ER411)" <
>> dustin [dot] r [dot] gooding [..] ...> wrote:
>>
>> On Jan 3, 2013, at 10:01 AM, Peter Soetens <peter [..] ...>
>> wrote:
>>
>> Hi Dustin,
>>
>>
>> On Thu, Jan 3, 2013 at 4:10 PM, Gooding, Dustin R. (JSC-ER411) <
>> dustin [dot] r [dot] gooding [..] ...> wrote:
>>
>>> I tried installing the new 2.6 debs and ran into a problem.
>>>
>>> I have an operation defined that takes a uint16 as an argument:
>>> /**
>>> this->provides("DataWarehouse")->addOperation("setUInt16", (void
>>> (RobonetMaster::*)(const std::string&, const
>>> uint16_t))&RobonetMaster::setUInt16, this, ClientThread)
>>> .doc("Write a uint16_t to the given DataElement")
>>> .arg("dataElementName","Name of the DataElement")
>>> .arg("Value","The value to write");
>>> **/
>>>
>>> I try calling that operation from an rttlua deployment and got the
>>> following error:
>>> /**
>>> /opt/ros/fuerte/stacks/orocos_toolchain/install/bin/rttlua-gnulinux:
>>> ...e/stacks/orocos_toolchain/ocl/lua/modules/rttlib.lua:702: __lua_todsb:
>>> can't convert lua number to uint16 variable
>>> **/
>>>
>>
>> Now that shouldn't happen :-) Could you tell us which typekits you import
>> such that we can reproduce it quicker ? Just to be sure: there is not a
>> chance that a 2.5 typekit was included accidentally or that you have a
>> custom typekit implementation ?
>>
>>
>> I hope I'm answering the question you've asked. ;)
>>
>> This is displayed whether I'm using 2.5 or 2.6
>> /**
>> > rttlib.info()
>> services: marshalling scripting os LuaTLSF Lua print rosparam
>> typekits: rtt-types rtt-mqueue-transport rtt-corba-types OCLTypekit
>> ros-primitives
>> rtt-ros-std_msgs-transport ros-std_msgs ros-rosgraph_msgs
>> rtt-ros-rosgraph_msgs-transport
>> rtt-ros-geometry_msgs-transport
>> ros-geometry_msgs ros-r2_msgs rtt-ros-r2_msgs-transport
>> rtt-ros-trajectory_msgs-transport ros-trajectory_msgs
>> rtt-ros-sensor_msgs-transport ros-sensor_msgs
>> ros-actionlib_msgs
>> rtt-ros-actionlib_msgs-transport
>> rtt-ros-diagnostic_msgs-transport
>> ros-diagnostic_msgs
>> …
>> **/
>>
>> r2_msgs is our custom set of ROS messages. We use .msg files and
>> "rosbuild_genmsg()" in the r2_msgs package CMakeLists to parse them. Then
>> our other packages have manifest.xml dependencies on rtt_r2_msgs. We don't
>> use any other custom messages or types.
>>
>> /opt/orocos is in my ROS_PACKAGE_PATH.
>>
>> The process I'm using to switch between Orocos versions is:
>> $ sudo mv /opt/orocos /opt/orocos-2.5 # or back the other way
>> $ sudo apt-get install (all 5 orocos packages) # or remove
>>
>> Then, in a new terminal:
>> $ rosmake --pre-clean (our top-level package)
>> $ rttlua -i (our launch file)
>>
>> -dustin
>>
>>
>>
>>>
>>> Not sure how to troubleshoot this.
>>>
>>> I switched back to 2.5 and rebuilt all my libraries and things seem to
>>> work fine…
>>>
>>
>> Peter
>>
>>
>>
>>
>> Sorry to pester. Were you (or anyone else) able to recreate this issue?
>> Is there more data I can provide?
>>
>
> No. I just reproduced it. I'll see if I can find it quickly...
>
> Peter
>
>

can't convert lua number to uint16 variable

Hi guys,

On Fri, Jan 11, 2013 at 03:45:01PM +0100, Peter Soetens wrote:

> The bug was in the Lua type info cache, which also cached 'null'/unknown type
> info objects, even if they were imported later on.
>
> The patch in attachment fixes this in OCL. If Markus reviews it and approves
> it, we can push it to 2.6 and release new ROS packages.

Acked-by: Markus Klotzbuecher <markus [dot] klotzbuecher [..] ...>

> A quick fix is to recompile OCL with the cmake setting : cmake
> -DLUA_RTT_TYPEINFO_CACHING=OFF
>
> But the patch is a much better long term solution in terms of performance &
> real-time.

Thanks for fixing!
Markus

can't convert lua number to uint16 variable

On Fri, Jan 11, 2013 at 4:00 PM, Markus Klotzbuecher <
markus [dot] klotzbuecher [..] ...> wrote:

> Hi guys,
>
> On Fri, Jan 11, 2013 at 03:45:01PM +0100, Peter Soetens wrote:
>
> > The bug was in the Lua type info cache, which also cached 'null'/unknown
> type
> > info objects, even if they were imported later on.
> >
> > The patch in attachment fixes this in OCL. If Markus reviews it and
> approves
> > it, we can push it to 2.6 and release new ROS packages.
>
> Acked-by: Markus Klotzbuecher <markus [dot] klotzbuecher [..] ...>
>
> > A quick fix is to recompile OCL with the cmake setting : cmake
> > -DLUA_RTT_TYPEINFO_CACHING=OFF
> >
> > But the patch is a much better long term solution in terms of
> performance &
> > real-time.
>
> Thanks for fixing!
>

I've pushed everything to gitorious and I'm running a ROS fuerte release
now. If someone volunteers releasing for groovy... ?

Peter

can't convert lua number to uint16 variable

On Jan 11, 2013, at 9:42 AM, Peter Soetens <peter [..] ...peter [..] ...>> wrote:

On Fri, Jan 11, 2013 at 4:00 PM, Markus Klotzbuecher <markus [dot] klotzbuecher [..] ...markus [dot] klotzbuecher [..] ...>> wrote:
Hi guys,

On Fri, Jan 11, 2013 at 03:45:01PM +0100, Peter Soetens wrote:

> The bug was in the Lua type info cache, which also cached 'null'/unknown type
> info objects, even if they were imported later on.
>
> The patch in attachment fixes this in OCL. If Markus reviews it and approves
> it, we can push it to 2.6 and release new ROS packages.

Acked-by: Markus Klotzbuecher <markus [dot] klotzbuecher [..] ...markus [dot] klotzbuecher [..] ...>>

> A quick fix is to recompile OCL with the cmake setting : cmake
> -DLUA_RTT_TYPEINFO_CACHING=OFF
>
> But the patch is a much better long term solution in terms of performance &
> real-time.

Thanks for fixing!

I've pushed everything to gitorious and I'm running a ROS fuerte release now. If someone volunteers releasing for groovy... ?

Peter

How long does it generally take for packages to get from shadow-fixed to ros/public?

-dustin