4871| 2
|
[项目] 树莓派安装ROS填坑记录 |
被老黄拉下水,没办法,谁叫激光雷达是他送的,所以跟着一起填坑, 点云也可以出来了,被卡在图优化上,无奈数学老师传授的绝学早已不再。。 又被专业文档的各种算法搞得要吐。 因此被迫填坑ROS, ROS其实很强大,很早以前就有小伙伴在蘑菇云分享过,一直咩有入坑,如今在Question黄的怂恿下,跌入谷底。 虽然官方网站里面提到了这么多ROS的版本,但是真正在Raspberry Pi 3B+上运行的并没有, 最新的版本也只是跑在Raspberry Pi 3B上。 官方一堆教程,参考后发现目前树莓派操作系统的版本是stretch,因此最有可能安装成功的就是Kinetic的这个。 因此参考教程开始填坑。 本教程将介绍如何从Raspberry Pi 3B+上的源代码安装ROS Kinetic。说明大致和indigo的差不多。但是,Raspbian需要考虑一些依赖关系。 1先决条件 这些说明假设Raspbian被用作Raspberry Pi上的操作系统,而不是ubuntu,我记得树莓派是支持ubuntu 的mate,但是觉得那个系统好像咩有raspbian好用。 最新的操作系统去这里下载:http://www.raspberrypi.org/downloads/ 1.1设置ROS存储库如果是Raspbian Stretch :[mw_shl_code=applescript,true]$ sudo apt-get install dirmngr python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake[/mw_shl_code] [mw_shl_code=applescript,true]$ sudo apt-get update $ sudo apt-get upgrade[/mw_shl_code] 先安装dirmngr的软件包,然后更新,大概几分钟搞定。 1.2 初始化rosdep [mw_shl_code=applescript,true]$ sudo rosdep init $ rosdep update[/mw_shl_code] 2. 安装 接下来就是下载和安装构建ROS Kinetic。 2.1 创建一个catkin 工作空间 [mw_shl_code=applescript,true]$ mkdir -p ~/ros_catkin_ws $ cd ~/ros_catkin_ws[/mw_shl_code] 接下来需要下载核心包这样就可以构建他们了,中间可能要用到wstool,一个管理工具,类似svn? 官方推荐使用: [mw_shl_code=applescript,true]$ rosinstall_generator ros_comm --rosdistro kinetic --deps --wet-only --tar > kinetic-ros_comm-wet.rosinstall $ wstool init src kinetic-ros_comm-wet.rosinstall[/mw_shl_code] 如果你用桌面环境的话,下面这个包含ROS,rqt,rviz和robot-generic 库。 [mw_shl_code=applescript,true]$ rosinstall_generator desktop --rosdistro kinetic --deps --wet-only --tar > kinetic-desktop-wet.rosinstall $ wstool init src kinetic-desktop-wet.rosinstall[/mw_shl_code] 我按照官方推荐,使用上面的,因为我只需要ROS 包, 构建和通讯库不需要UI环境,这样可以减少空间需求量。 执行后会将catkin和wet包下载到~/ros_catkin_ws/src源码目录,根据网络状态时间长度可能不一。 目前只有两个变量在树莓派上的Kinetic上试过,更多的内容看下图,是REP 131 里面描述的,像什么robot, perception啥的其他的你们也可以试试。 如果针对机器人,例如: [mw_shl_code=applescript,true]$ rosinstall_generator robot --rosdistro kinetic --deps --wet-only --tar > kinetic-robot-wet.rosinstall $ wstool init src kinetic-robot-wet.rosinstall[/mw_shl_code] 如果执行过程中wstool 初始化失败了,你可以重复执行: [mw_shl_code=applescript,true]wstool update -j4 -t src[/mw_shl_code] 操作过程中如果有依赖报错,需要解决依赖的问题,可以: [mw_shl_code=applescript,true]$ cd ~/ros_catkin_ws $ rosdep install -y --from-paths src --ignore-src --rosdistro kinetic -r --os=debian:stretch[/mw_shl_code] 3.构建catkin Workspace 完成下载软件包并解决了依赖项之后,就可以构建catkin软件包了。 调用catkin_make_isolated: [mw_shl_code=applescript,true]$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic[/mw_shl_code] 这个过程可能会很长时间,也许会因为编译失败暂停, 编译很可能会因内存耗尽而导致“内部编译器错误”。 快速修复此问题的方法是将交换空间增加一些,然后重新编译。 如果错误仍然存在,请尝试使用-j2选项而不是默认的-j4选项进行构建,意思是2核跑,别4核,4核内存就吃不消了。 [mw_shl_code=applescript,true]$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic -j2[/mw_shl_code] 完成后,ROS就应该安装好了,记得用source命令来引用新的安装: [mw_shl_code=applescript,true]$ source /opt/ros/kinetic/setup.bash[/mw_shl_code] 或者直接写入到〜/ .bashrc里面,以便每次启动新shell时ROS环境变量自动添加到bash会话里面。 [mw_shl_code=applescript,true]$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc[/mw_shl_code] 至此,应该是可以使用ROS的环境了,下一步就是尝试将激光雷达点云的数据丢给ROS的API接口。 (想了解树莓派如何通过激光雷达获取点云,请参考大神黄老板的帖子: https://mc.dfrobot.com.cn/thread-275911-1-1.html 老黄,该你秀操作了。。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed