http://wiki.ros.org/rosserial_embeddedlinux/Tutorials/Example%20Publisher
目标:交叉编译用于linux上运行的rosserial程序。与ros workstation配合工作。在ros workstation上运行rosserial_python作为代理。
方法:使用rosserial_embedded make_libraries.py制作ros_lib头文件目录
然后运行 g++ -o test HelloROS.cpp -lrt -I /home/ppeix/embeddedlinux/ros_lib/ 即可生成目标板上的执行文件。
运行过程中遇到问题:
1. 大量类相关错误。原来用的是gcc,改为g++即可。
2.如下错误,通过添加-lrt选项解决掉。
ppeix:HelloRos$ g++ -o test HelloROS.cpp -I /home/ppeix/embeddedlinux/ros_lib/
HelloROS.cpp:15:19: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
/tmp/ccUBSnsF.o: In function `EmbeddedLinuxHardware::init(char*)':
HelloROS.cpp:(.text._ZN21EmbeddedLinuxHardware4initEPc[EmbeddedLinuxHardware::init(char*)]+0x81): undefined reference to `clock_gettime'
/tmp/ccUBSnsF.o: In function `EmbeddedLinuxHardware::time()':
HelloROS.cpp:(.text._ZN21EmbeddedLinuxHardware4timeEv[EmbeddedLinuxHardware::time()]+0x18): undefined reference to `clock_gettime'
collect2: ld returned 1 exit status
其他问题考虑:
1. ros workstation 部署 x86容易得多。arm ubuntu上无gui,需摸索尝试。
2. embeddedlinux部署,可直接运行rosserial_python代理。看串口上是否有东西出来就行。
然后在运行roscore等。http://wiki.ros.org/rosserial_embeddedlinux/Tutorials/Example%20Publisher
Use Arduino Uno with pcDuino
http://www.pcduino.com/use-arduino-uno-with-pcduino/