ROS下位机不只是stm32与arduino,嵌入式linux环境搭建与实现

最近在ros官网上发现rosserial支持embeddlinux,于是对这个产生了很大的兴趣,传统大家都是用arduino来做下位机,通过串口的形式来做控制的,但是有时候我们的下位机可能需要很大的计算量,这时候用普通的单片机可能性能就不是很够的了,因此我做这样一个教程,通过给树莓派编译rosserial_embeddedlinux,实现通过网络的形式给上位机发布消息。

首先我们要有一台运行Ubuntu的电脑,并安装好ROS和eclipse(编译的ide)

首先我们安装官方的教程,安装好rosserial或者使用:

sudo apt-get install ros-kinetic-rosserial_embeddedlinux
sudo apt-get install ros-kinetic-rosserial

然后切换到随便一个目录,创建libraries:

  cd <some_directory>
  rm -rf ros_lib examples
  rosrun rosserial_embeddedlinux make_libraries.py .

这时候我们便拥有了嵌入式linux文件的库文件,接下来就要把库文件加入到eclipse上:

在此之前,我们要去树莓派官方下载交叉编译工具:

参考链接:Linux主机上实现树莓派的交叉编译及文件传输,远程登陆

之后打开eclipse,创建c++项目

配置交叉编译链:

接下来便是添加ros的库文件了,在project->properties->c/c++ build->setting,给cross g++ compiler添加好库文件

至此,编译环境已经搭建完毕,接下来我编译一个简单的程序测试一下是否能正常运行;

在项目中新建一个cpp文件,然后把库文件里面的例子复制到cpp文件中:

其中要把ip地址改为ros主节点的IP地址,把程序复制到树莓派上,运行程序;

在电脑主机上输入:

rosrun rosserial_python serial_node.py tcp

猜你喜欢

转载自blog.csdn.net/zengqz123/article/details/86348748