[ros-users] roscpp on embedded devices with ethernet?

Marcus Liebhardt marcus.liebhardt at yujinrobot.com
Thu Sep 13 00:26:54 UTC 2012


Hey guys,
I'd like to chime in as well. Here at Yujin we actually have both of the
mentioned embedded use cases. For the first - ROS running on a tiny Linux
on an (powerful) embedded device - Daniel started the development of
EmbeddedROS (http://www.ros.org/wiki/eros) some time ago. Target
microcontroller/-processor could be such like the ARM Cortex-A8/9 chips
(used on Beagleboard, Pandaboard etc.). In the second use case - let's say
ROS on bare-metal embedded devices - I am currently interested. My target
chip is the ARM Cortex-M3. In the long run I'd like to use this device to
link our CAN network with a SBC/PC via Ethernet. Also, this device should
act like a native ROS node, meaning that there should be a ROS driver
needed on the PC side.
I joined the SIG as well and am curious where we can push this!

Cheers,
Marcus


2012/9/13 Austin Hendrix <legotown at aol.com>

> I suspect that the hardest parts of getting roscpp to run on a bare-metal
> system will be dealing with boost, differences in how embedded vs Linux
> handle network sockets, and endianness problems that affect the
> serialization process.
>
> For a number of the embedded devices that I've seen with Ethernet, the
> device communicates over UDP or TCP to a ROS node on a Linux host; this
> includes the custom ethernet-attached cameras that we use on the PR2.
>
> -Austin
>
>
> On 09/12/2012 02:39 PM, Dave Curtis wrote:
>
>> Thanks Tully,
>>
>> If you have a pointer to some information on that project I'd like to
>> look at it.
>>
>> In the spirit of simply taking a shoe horn to roscpp, I spent a little
>> bit of time looking at the roscpp source, it wasn't clear just from
>> grep'ing the #include's if there are a lot of kernel dependencies.  OTOH, I
>> can certainly imagine a lot of dynamic memory allocation going on, which
>> can be painful on a system without virtual memory and only a limited amount
>> of SRAM to start with.
>>
>> -dave
>>
>> On Sep 12, 2012, at 2:22 PM, Tully Foote wrote:
>>
>>  Hi Dave,
>>>
>>> To answer your question directly I have seen a proof of concept with
>>> roscpp running on a bare metal arm chip.  I don't know exactly what went
>>> into making that work.
>>>
>>> Morgan,
>>>
>>> Thanks for taking the initiative to setup the SIG.  I've created a wiki
>>> page for the SIG at http://www.ros.org/wiki/SIG/**Embedded<http://www.ros.org/wiki/SIG/Embedded>
>>>
>>> Tully
>>>
>>> On Wed, Sep 12, 2012 at 1:56 PM, blackstag <blackstag at gmail.com> wrote:
>>> Hah ok will tell Paul to spell right. Is Ros serial using sockets for
>>> small embedded linux processors. It was implemented on the Vex Pro and
>>> Chumby in our testing.
>>>
>>>
>>> On Wed, Sep 12, 2012 at 2:58 PM, Dave Curtis <dave at dave-curtis.com>
>>> wrote:
>>> OK, so I see the rosserial_embeddedlinux package supports TCP, I didn't
>>> see that before.   But it does say "imbedded Linux", which is still
>>> considerably different from an MMU-less uCtlr.  So, is
>>> rosserial_embeddedlinux more light weight than its name would imply?
>>>
>>> -dave
>>>
>>> On Sep 12, 2012, at 11:43 AM, blackstag wrote:
>>>
>>>  Ros serial does have a TCP option now for wifi or ethernet.
>>>>
>>>> On Wed, Sep 12, 2012 at 1:14 PM, Dave Curtis <dave at dave-curtis.com>
>>>> wrote:
>>>> I've been searching the archives for info on this topic but everything
>>>> I turn up is pretty ancient.
>>>>
>>>> Suppose you have an embedded device that has an ethernet controller and
>>>> enough oomph to run a TCP stack and an RTOS, for instance an ARM Cortex-M3.
>>>>  Is it possible to run roscpp on the bare metal, or does roscpp depend on a
>>>> lot of Linux system services?  Of course, rosserial would be an option, but
>>>> if you have an ethernet controller on chip, that seems limiting.  Or is
>>>> there another light-weight ROS comms on TCP that I don't know about?
>>>>
>>>> -dave
>>>>
>>>> ______________________________**_________________
>>>> ros-users mailing list
>>>> ros-users at code.ros.org
>>>> https://code.ros.org/mailman/**listinfo/ros-users<https://code.ros.org/mailman/listinfo/ros-users>
>>>>
>>>> ______________________________**_________________
>>>> ros-users mailing list
>>>> ros-users at code.ros.org
>>>> https://code.ros.org/mailman/**listinfo/ros-users<https://code.ros.org/mailman/listinfo/ros-users>
>>>>
>>> ______________________________**_________________
>>> ros-users mailing list
>>> ros-users at code.ros.org
>>> https://code.ros.org/mailman/**listinfo/ros-users<https://code.ros.org/mailman/listinfo/ros-users>
>>>
>>>
>>> ______________________________**_________________
>>> ros-users mailing list
>>> ros-users at code.ros.org
>>> https://code.ros.org/mailman/**listinfo/ros-users<https://code.ros.org/mailman/listinfo/ros-users>
>>>
>>>
>>>
>>>
>>> --
>>> Tully Foote
>>> tfoote at willowgarage.com
>>> (650) 475-2827
>>> ______________________________**_________________
>>> ros-users mailing list
>>> ros-users at code.ros.org
>>> https://code.ros.org/mailman/**listinfo/ros-users<https://code.ros.org/mailman/listinfo/ros-users>
>>>
>> ______________________________**_________________
>> ros-users mailing list
>> ros-users at code.ros.org
>> https://code.ros.org/mailman/**listinfo/ros-users<https://code.ros.org/mailman/listinfo/ros-users>
>>
>
> ______________________________**_________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/**listinfo/ros-users<https://code.ros.org/mailman/listinfo/ros-users>
>
>
>


-- 
Marcus Liebhardt
Control Engineer
Yujin Robot
주소: 대한민국 서울시 금천구 가산동 345-30 남성프라자 #601, 153-023.
Address: Door #601, Namsung-Plaza, 345-30 Gasan-dong, Guemcheon-gu, Seoul,
153-023, Republic of Korea
Website: http://www.yujinrobot.com
Email: marcus.liebhardt at yujinrobot.com
Phone: +82-2-2104-0435
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20120913/5443441c/attachment-0004.html>


More information about the ros-users mailing list