在树莓派4b上安装 ROS MELODIC 源码安装
按照以下步骤照做就可以了,很简单的,就是浪费一点点时间罢了。也可以退而求其次,买个树莓派3B+来玩,哈哈。
Step 1: Install Dependecies and Download the Packages
Let’s start by setting up the repositories and installing the necessary dependencies
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt-get update
sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
Then initialize rosdep and update it
sudo rosdep init
rosdep update
When that’s done let’s create a dedicated catkin workspace for building ROS and move to that directory.
mkdir ~/ros_catkin_ws
cd ~/ros_catkin_ws
Now you have two choices:
ROS-Comm: (Bare Bones) installation – might be preferred choice for Raspberry Pi, since you probably will be running it headless anyway, if you are using it for a robot. Doesn’t include RVIZ, which makes installation process shorter and less hassle.
Desktop Install: includes GUI tools, such as rqt, rviz, and robot-generic libraries.
I’ll go with installing Desktop Install here.
rosinstall_generator desktop --rosdistro melodic --deps --wet-only --tar > melodic-desktop-wet.rosinstall<br>wstool init -j8 src melodic-desktop-wet.rosinstall
The command will take a few minutes to download all of the core ROS packages into the src folder.
If wstool init fails or is interrupted, you can resume the download by running:
wstool update -j 4 -t src
Step 2: Fix the Issues

Let’s install the compatible version of Assimp (Open Asset Import Library) to fix collada_urdf dependency problem.
mkdir -p ~/ros_catkin_ws/external_src
cd ~/ros_catkin_ws/external_src
wget http://sourceforge.net/projects/assimp/files/assimp-3.1/assimp-3.1.1_no_test_models.zip/download -O assimp-3.1.1_no_test_models.zip
unzip assimp-3.1.1_no_test_models.zip
cd assimp-3.1.1
cmake .
make
sudo make install
Let’s also install OGRE for rviz
sudo apt-get install libogre-1.9-dev
Finally we’ll need to fix the issues with libboost. I’m using the solution from this post on stackoverflow:
“The errors during compilation are caused by the ‘boost::posix_time::milliseconds’ function which
in newer boost versions accepts only an integer argument, but the actionlib package in ROS, gives it a float on several places. You can list all files using that function:
find -type f -print0 | xargs -0 grep ‘boost::posix_time::milliseconds’ | cut -d: -f1 | sort -u
Open them in your text editor and search for the
‘boost::posix_time::milliseconds’ function call.
and replace calls like this:
boost::posix_time::milliseconds(loop_duration.toSec() * 1000.0f));
with:
boost::posix_time::milliseconds(int(loop_duration.toSec() * 1000.0f)));
and these:
boost::posix_time::milliseconds(1000.0f)
with:
boost::posix_time::milliseconds(1000)
I recommend you use nano text editor, which is simpler than VIM (这点作者的观点我并不认可), Ctrl+O is saving, Ctrl+X is exiting and Ctrl+W is searching.
Next we use the rosdep tool for installing all the rest of the dependencies:
rosdep install --from-paths src --ignore-src --rosdistro melodic -y
Add TipAsk QuestionCommentDownload
Step 3: Build and Source the Installation
Once it has completed downloading the packages and resolving the dependencies you are ready to build the catkin packages.
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic -j2
If the compilation process freezes(very likely, if you install the desktop version), you need to increase swap space available. By default it’s 100 MB, try increasing it to 2048 MB.
Good luck! The whole compilation process takes about 1 hour, so go make some tea.
Now ROS Melodic should be installed on your Raspberry Pi 4. We’ll source the new installation with following command:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
Try launching roscore to check if everything was successful.Add TipAsk QuestionCommentDownload
Step 4: Install RPLIDAR ROS Package

Let’s create a separate workspace for other packages, that are not part of core ROS.
From you home folder do:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
and source it to bashrc:
echo "source $HOME/catkin_ws/devel/setup.bash" >> ~/.bashrc
Okay, we’re ready to start installing RPLIDAR ROS package.
cd src
sudo git clone https://github.com/Slamtec/rplidar_ros.git
catkin_make
Wait for the package compilation to finish. Try launching the package to see if the compilation was successful:
roslaunch rplidar_ros rplidar.launch
If it doesn’t output any errors, do a quick celebration dance(*optional).
Now only the last piece is missing – since you are probably running Raspberry Pi 4 in headless mode, we can’t visualize lidar messages. For that we’ll need to set-up ROS to run on multiple machines.Add TipAsk QuestionCommentDownload
Step 5: Set Up ROS to Run on Multiple Machines

For this part you will need a Ubuntu 18.04 computer with ROS Melodic installed. Since it’s Ubuntu ROS can be simply installed using apt-get as described in this tutorial.
After you have working ROS installation both on Raspberry Pi and your desktop machine, check the IP addresses of both machines. They need to be on the same network!
Run roscore on your desktop computer and export ROS_MASTER_URI
roscore
export ROS_MASTER_URI=http://[your-desktop-machine-ip]:11311
Next on Raspberry PI execute
export ROS_MASTER_URI=http://[your-desktop-machine-ip]:11311
export ROS_IP=[your-desktop-machine-ip]
and launch RPILIDAR launch file
roslaunch rplidar_ros rplidar.launch
If it launches successfully, check the topics present on your desktop machine with rostopic list
If you can see / scan mesages, everything works as it supposed to work. Then launch RVIZ on your desktop machine, add Laser Scan messages and choose /scan topic. You will also need to change fixed frame to /laser.
Voila!Add TipAsk QuestionCommentDownload
Step 6: Done!


This guide can be a first step towards building your ROS robot on top of new Raspberry Pi 4. We have installed ROS Melodic and prepared the installation for running headless and connecting to our desktop machine over wireless network for remote control.
Next steps are dependent on what type of robot you want to build. You can add motors and encoders for odometry, stereo camera for Visual SLAM and all sorts of other exciting and useful things.
在树莓派4b上安装 ROS MELODIC 源码安装的更多相关文章
- 在ConoHa上Centos7环境下源码安装部署LNMP
本文记录了从源码,在Centos 7上手动部署LNMP环境的过程,为了方便以后对nginx和mariadb进行升级,这里采用yum的方式进行安装. 1.建立运行网站和数据库的用户和组 groupadd ...
- 004-nginx简介、安装配置【源码安装和mac安装】、基本使用
一.概述 1.1.Nginx是什么 Nginx是一款轻量级的Web服务器,也是一款轻量级的反向代理服务器[常用]. 1.2.Nginx能干什么 Nginx能干的事情很多,这里简要罗列一些: 1:直接支 ...
- Redis for linux安装配置之—-源码安装
一‘redis单实例安装配置1.下载redis源码压缩包,并将其上传至服务器/usr/local2.解压redis源码压缩包 # tar -xzvf redis-3.2.12.tar.gz3.进入r ...
- nginx安装,手动源码安装
什么是Nginx? Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ra ...
- Mysql for Linux安装配置之—— 源码安装
1.安装 --假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源码压缩文件1)先安装cmake(mysql5.5以后是通过cmake来编译的) # ta ...
- 【SystemTap】 Linux下安装使用SystemTap源码安装SystemTap
转自 http://blog.csdn.net/zklth/article/details/6248558 文章 http://blog.csdn.net/zklth/archive/2010/09/ ...
- Red hat Linux 安装Node.js 源码安装
1. 下载源码包 http://nodejs.org/dist/v0.10.29/node-v0.10.29.tar.gz 2.准备安装环境,>python2.6, gcc, g++ pytho ...
- 【只需3步】Linux php的安装与配置[源码安装]
作者小波/QQ463431476欢迎转载! Linux:redhat 6/centos 6 继续上一篇笔记Apache的配置http://www.cnblogs.com/xiaobo-Linux/p/ ...
- 如何在CentOS 7中安装最新Git(源码安装)
如何在CentOS 7中安装最新Git 2017年05月20日 11:49:53 阅读数:1624 Git是在今天的软件开发行业一个非常有用的版本控制工具.我一直使用Git.于是为Linux公社的读者 ...
随机推荐
- Windows 10 下 Linux 子系统的安装和使用
介绍 适用于 Windows 的 Linux 子系统(英语:Windows Subsystem for Linux,简称 WSL)是一个为在 Windows 10 和 Windows Server 2 ...
- Window环境下使用多个Git账号(github,gitee,gitlab,gogs等)
个人电脑之前已经设置好github账号了,公司用的是gitlab私服,一直互不干扰,因为用的是不同的电脑,也就懒得配置git多账户环境.最近看了一下多年空空如也的码云,想着怎么的也会用到gitee来托 ...
- JDBC 学习复习10 编写自己的JDBC框架
首先万分感谢狼哥 孤傲苍狼 博客,整个jdbc学习的博客资料 链接为http://www.cnblogs.com/xdp-gacl/p/4006830.html 详细代码见狼哥博客,列出我学习过程中遇 ...
- Python函数知识点总结
1.函数的定义2.如何定义一个函数以及函数语法3.函数的调用4.函数的参数(形参,实参)以及参数的传递5.函数的返回值6.变量的作用域7.匿名函数8.嵌套函数和闭包9.装饰器10.函数思维导图 1.函 ...
- 用js原生加jquery实现下拉跳转至商品详情页,上拉回到商品简介
在做一个商城的项目时,做到商品详情页的时候需要实现这种下拉跳转到商品详情页加载许多图片,上拉回到商品简介的效果,并且需要用户在滑动时有一种费力的感觉.最初是通过iscroll插件实现的,但这个插件在使 ...
- C++ 容器一图以蔽之
读完C++ primary 容器相关章节,有必要总结一下容器的要点,一图说明. 其中的问题,以下是我的一些想法,欢迎交流. 问题1. STL源码剖析 · vector 问题2. STL源码剖析 · R ...
- 2019 GIAC-全球互联网架构大会课件
百度云:https://pan.baidu.com/s/1Lt40UTP3hCIVS7LhPl2bKw密码:ovrh
- crunch离线密码生成
Crunch是一种创建密码字典工具,按照指定的规则生成密码字典,可以灵活的制定自己的字典文件. 一.Crunch为kali自带工具之一在kali环境下进行,默认基于26个小写英文字母. 语法:cru ...
- web容器(weblogic、resin、tomcat、jboss对比)
WebLogic 12c Linux静默安装 weblogic11g 密码忘记解决方案 glassfish和tomcat各自的优势和劣势 Linux Resin4.0 安装配置(优质) 对比 . we ...
- Flutter——Stack组件(层叠组件)、Align组件、Positioned组件
Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局. Stack组件 常用于两个子元素. Stack ...